Program Listing for File ParseData.h

Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/ParseData.h)

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

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

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

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

#ifndef SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEDATA_H
#define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEDATA_H

#include "sick_safetyscanners_base/datastructure/Data.h"
#include "sick_safetyscanners_base/datastructure/PacketBuffer.h"

#include "sick_safetyscanners_base/Logging.h"
#include "sick_safetyscanners_base/data_processing/ParseApplicationData.h"
#include "sick_safetyscanners_base/data_processing/ParseDataHeader.h"
#include "sick_safetyscanners_base/data_processing/ParseDerivedValues.h"
#include "sick_safetyscanners_base/data_processing/ParseGeneralSystemState.h"
#include "sick_safetyscanners_base/data_processing/ParseIntrusionData.h"
#include "sick_safetyscanners_base/data_processing/ParseMeasurementData.h"
#include "sick_safetyscanners_base/data_processing/ReadWriteHelper.hpp"


namespace sick {
namespace data_processing {

class ParseData
{
public:
  ParseData();

  sick::datastructure::Data parseUDPSequence(const sick::datastructure::PacketBuffer& buffer) const;
  bool parseTCPSequence(const datastructure::PacketBuffer& buffer,
                        sick::datastructure::Data& data) const;

private:
  std::shared_ptr<sick::data_processing::ParseDataHeader> m_data_header_parser_ptr;
  std::shared_ptr<sick::data_processing::ParseDerivedValues> m_derived_values_parser_ptr;
  std::shared_ptr<sick::data_processing::ParseMeasurementData> m_measurement_data_parser_ptr;
  std::shared_ptr<sick::data_processing::ParseGeneralSystemState> m_general_system_state_parser_ptr;
  std::shared_ptr<sick::data_processing::ParseIntrusionData> m_intrusion_data_parser_ptr;
  std::shared_ptr<sick::data_processing::ParseApplicationData> m_application_data_parser_ptr;


  void setDataBlocksInData(const datastructure::PacketBuffer& buffer,
                           datastructure::Data& data) const;
  void setDataHeaderInData(const datastructure::PacketBuffer& buffer,
                           datastructure::Data& data) const;
  void setDerivedValuesInData(const datastructure::PacketBuffer& buffer,
                              datastructure::Data& data) const;
  void setMeasurementDataInData(const datastructure::PacketBuffer& buffer,
                                datastructure::Data& data) const;
  void setGeneralSystemStateInData(const datastructure::PacketBuffer& buffer,
                                   datastructure::Data& data) const;
  void setIntrusionDataInData(const datastructure::PacketBuffer& buffer,
                              datastructure::Data& data) const;
  void setApplicationDataInData(const datastructure::PacketBuffer& buffer,
                                datastructure::Data& data) const;
};

} // namespace data_processing
} // namespace sick

#endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSEDATA_H