8 #ifndef DRIPLINE_RECEIVER_HH_
9 #define DRIPLINE_RECEIVER_HH_
15 #include "cancelable.hh"
16 #include "concurrent_queue.hh"
17 #include "member_variables.hh"
20 #include <condition_variable>
107 mv_accessible(
unsigned, single_message_wait_ms );
109 mv_accessible(
unsigned, reply_listen_timeout_ms );
180 mv_referrable( scarab::concurrent_queue< message_ptr_t >, message_queue );
181 mv_referrable( std::thread, receiver_thread );
Receives and processes messages concurrently.
concurrent_receiver(const concurrent_receiver &)=delete
concurrent_receiver & operator=(const concurrent_receiver &)=delete
virtual void submit_message(message_ptr_t a_message)=0
A receiver is able to collect Dripline message chunks and reassemble them into a complete Dripline me...
virtual ~receiver()=default
receiver(const receiver &a_orig)=delete
receiver & operator=(const receiver &a_orig)=delete
receiver(receiver &&a_orig)=default
std::vector< amqp_message_ptr > amqp_split_message_ptrs
std::shared_ptr< message > message_ptr_t
std::shared_ptr< sent_msg_pkg > sent_msg_pkg_ptr
std::shared_ptr< msg_reply > reply_ptr_t
std::map< std::string, incoming_message_pack > incoming_message_map
AmqpClient::Envelope::ptr_t amqp_envelope_ptr
Stores the basic information about a set of message chunks that will eventually make a Dripline messa...
incoming_message_pack(const incoming_message_pack &)=delete
std::condition_variable f_conv
unsigned f_chunks_received
std::string f_routing_key
std::atomic< bool > f_processing
amqp_split_message_ptrs f_messages