#ifndef ZMQRECVMODULE_H #define ZMQRECVMODULE_H #include #include "ZmqReceiver.hpp" #include "RingBuffer.hpp" class ZmqRecvModule { typedef std::unordered_map header_map; RingBuffer& ring_buffer_; const header_map& header_values_; std::atomic_bool is_receiving_; std::atomic_bool is_saving_; std::vector receiving_threads_; protected: void receive_thread( const std::string& connect_address); public: ZmqRecvModule( RingBuffer& ring_buffer, const header_map& header_values); virtual ~ZmqRecvModule(); void start_recv(const std::string& connect_address, const uint8_t n_receiving_threads); void stop_recv(); bool is_receiving(); void start_saving(); void stop_saving_and_clear_buffer(); }; #endif