.. _program_listing_file__tmp_ws_src_sick_safetyscanners_base_include_sick_safetyscanners_base_data_processing_UDPPacketMerger.h: Program Listing for File UDPPacketMerger.h ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/UDPPacketMerger.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- // -- BEGIN LICENSE BLOCK ---------------------------------------------- // -- END LICENSE BLOCK ------------------------------------------------ //---------------------------------------------------------------------- //---------------------------------------------------------------------- #ifndef SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_UDPPACKETMERGER_H #define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_UDPPACKETMERGER_H #include "sick_safetyscanners_base/datastructure/PacketBuffer.h" #include "sick_safetyscanners_base/datastructure/ParsedPacketBuffer.h" #include "sick_safetyscanners_base/data_processing/ParseDatagramHeader.h" #include #include namespace sick { namespace data_processing { class UDPPacketMerger { public: UDPPacketMerger(); bool isComplete() const; bool addUDPPacket(const sick::datastructure::PacketBuffer& buffer); sick::datastructure::PacketBuffer getDeployedPacketBuffer(); private: bool m_is_complete; sick::datastructure::PacketBuffer m_deployed_packet_buffer; std::map m_parsed_packet_buffer_map; std::mutex m_buffer_mutex; bool addToMap(const sick::datastructure::PacketBuffer& buffer, const sick::datastructure::DatagramHeader& header); bool deployPacketIfComplete(datastructure::DatagramHeader& header); bool checkIfComplete(sick::datastructure::DatagramHeader& header); uint32_t calcualteCurrentLengthOfParsedPacketBuffer( const sick::datastructure::ParsedPacketBuffer::ParsedPacketBufferVector& vec); sick::datastructure::ParsedPacketBuffer::ParsedPacketBufferVector getSortedParsedPacketBufferForIdentification(const sick::datastructure::DatagramHeader& header); std::vector removeHeaderFromParsedPacketBuffer( const sick::datastructure::ParsedPacketBuffer::ParsedPacketBufferVector& vec); }; } // namespace data_processing } // namespace sick #endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_UDPPACKETMERGER_H