Program Listing for File DatagramHeader.h

Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/datastructure/DatagramHeader.h)

// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-

// -- BEGIN LICENSE BLOCK ----------------------------------------------

// -- END LICENSE BLOCK ------------------------------------------------

//----------------------------------------------------------------------
//----------------------------------------------------------------------

#ifndef SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_DATAGRAMHEADER_H
#define SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_DATAGRAMHEADER_H

#include <stdint.h>

namespace sick {
namespace datastructure {


class DatagramHeader
{
public:
  static const uint32_t HEADER_SIZE = 24;

  DatagramHeader();

  uint32_t getDatagramMarker() const;
  void setDatagramMarker(const uint32_t& value);

  uint16_t getProtocol() const;
  void setProtocol(const uint16_t& value);

  uint8_t getMajorVersion() const;
  void setMajorVersion(const uint8_t& value);

  uint8_t getMinorVersion() const;
  void setMinorVersion(const uint8_t& value);

  uint32_t getTotalLength() const;
  void setTotalLength(const uint32_t& value);

  uint32_t getIdentification() const;
  void setIdentification(const uint32_t& value);

  uint32_t getFragmentOffset() const;
  void setFragmentOffset(const uint32_t& value);

private:
  uint32_t m_datagram_marker;
  uint16_t m_protocol;
  uint8_t m_major_version;
  uint8_t m_minor_version;
  uint32_t m_total_length;
  uint32_t m_identification;
  uint32_t m_fragment_offset;
};

} // namespace datastructure
} // namespace sick

#endif // SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_DATAGRAMHEADER_H