00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 00024 // -- END LICENSE BLOCK ------------------------------------------------ 00025 00026 //---------------------------------------------------------------------- 00033 //---------------------------------------------------------------------- 00034 00035 #ifndef SICK_SAFETYSCANNERS_DATASTRUCTURE_DATAGRAMHEADER_H 00036 #define SICK_SAFETYSCANNERS_DATASTRUCTURE_DATAGRAMHEADER_H 00037 00038 #include <stdint.h> 00039 00040 namespace sick { 00041 namespace datastructure { 00042 00043 00048 class DatagramHeader 00049 { 00050 public: 00051 static const uint32_t HEADER_SIZE = 24; 00052 00056 DatagramHeader(); 00057 00063 uint32_t getDatagramMarker() const; 00069 void setDatagramMarker(const uint32_t& value); 00070 00076 uint16_t getProtocol() const; 00082 void setProtocol(const uint16_t& value); 00083 00089 uint8_t getMajorVersion() const; 00095 void setMajorVersion(const uint8_t& value); 00096 00102 uint8_t getMinorVersion() const; 00108 void setMinorVersion(const uint8_t& value); 00109 00117 uint32_t getTotalLength() const; 00123 void setTotalLength(const uint32_t& value); 00124 00134 uint32_t getIdentification() const; 00140 void setIdentification(const uint32_t& value); 00141 00150 uint32_t getFragmentOffset() const; 00156 void setFragmentOffset(const uint32_t& value); 00157 00158 private: 00159 uint32_t m_datagram_marker; 00160 uint16_t m_protocol; 00161 uint8_t m_major_version; 00162 uint8_t m_minor_version; 00163 uint32_t m_total_length; 00164 uint32_t m_identification; 00165 uint32_t m_fragment_offset; 00166 }; 00167 00168 } // namespace datastructure 00169 } // namespace sick 00170 00171 #endif // SICK_SAFETYSCANNERS_DATASTRUCTURE_DATAGRAMHEADER_H