.. _program_listing_file__tmp_ws_src_sick_safetyscanners_base_include_sick_safetyscanners_base_data_processing_TCPPacketMerger.h: Program Listing for File TCPPacketMerger.h ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/TCPPacketMerger.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_TCPPACKETMERGER_H #define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_TCPPACKETMERGER_H #include "sick_safetyscanners_base/datastructure/PacketBuffer.h" #include "sick_safetyscanners_base/data_processing/ParseDatagramHeader.h" #include #include namespace sick { namespace data_processing { class TCPPacketMerger { public: TCPPacketMerger() = delete; TCPPacketMerger(std::size_t target_size); TCPPacketMerger(const TCPPacketMerger&) = delete; TCPPacketMerger& operator=(const TCPPacketMerger&) = delete; bool isComplete() const; bool isEmpty() const; bool addTCPPacket(const sick::datastructure::PacketBuffer& buffer); sick::datastructure::PacketBuffer getDeployedPacketBuffer(); std::size_t getTargetSize() const; void setTargetSize(std::size_t target_size); // void reset(); private: bool m_is_complete; sick::datastructure::PacketBuffer m_deployed_packet_buffer; std::vector m_buffer_vector; std::mutex m_buffer_mutex; std::size_t m_target_size; bool addToMap(const sick::datastructure::PacketBuffer& new_packet); bool deployPacketIfComplete(); std::size_t getCurrentSize(); bool deployPacket(); }; } // namespace data_processing } // namespace sick #endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_TCPPACKETMERGER_H