ParseDatagramHeader.h
Go to the documentation of this file.
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_DATA_PROCESSING_PARSEDATAGRAMHEADER_H
00036 #define SICK_SAFETYSCANNERS_DATA_PROCESSING_PARSEDATAGRAMHEADER_H
00037 
00038 #include <sick_safetyscanners/datastructure/Data.h>
00039 #include <sick_safetyscanners/datastructure/DatagramHeader.h>
00040 #include <sick_safetyscanners/datastructure/PacketBuffer.h>
00041 
00042 #include <sick_safetyscanners/data_processing/ReadWriteHelper.h>
00043 
00044 namespace sick {
00045 namespace data_processing {
00046 
00053 class ParseDatagramHeader
00054 {
00055 public:
00059   ParseDatagramHeader();
00060 
00070   bool parseUDPSequence(const datastructure::PacketBuffer& buffer,
00071                         sick::datastructure::DatagramHeader& header) const;
00072 
00073 private:
00074   std::shared_ptr<sick::data_processing::ReadWriteHelper> m_reader_ptr;
00075 
00076   void setDataInHeader(const uint8_t*& data_ptr, datastructure::DatagramHeader& header) const;
00077 
00078   void setDatagramMarkerInHeader(const uint8_t*& data_ptr,
00079                                  datastructure::DatagramHeader& header) const;
00080   void setProtocolInHeader(const uint8_t*& data_ptr, datastructure::DatagramHeader& header) const;
00081   void setMajorVersionInHeader(const uint8_t*& data_ptr,
00082                                datastructure::DatagramHeader& header) const;
00083   void setMinorVersionInHeader(const uint8_t*& data_ptr,
00084                                datastructure::DatagramHeader& header) const;
00085   void setTotalLengthInHeader(const uint8_t*& data_ptr,
00086                               datastructure::DatagramHeader& header) const;
00087   void setIdentificationInHeader(const uint8_t*& data_ptr,
00088                                  datastructure::DatagramHeader& header) const;
00089   void setFragmentOffsetInHeader(const uint8_t*& data_ptr,
00090                                  datastructure::DatagramHeader& header) const;
00091 };
00092 
00093 } // namespace data_processing
00094 } // namespace sick
00095 
00096 #endif // SICK_SAFETYSCANNERS_DATA_PROCESSING_PARSEDATAGRAMHEADER_H


sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Tue May 7 2019 03:27:36