3 #ifndef __ZMQ_PGM_RECEIVER_HPP_INCLUDED__
4 #define __ZMQ_PGM_RECEIVER_HPP_INCLUDED__
6 #if defined ZMQ_HAVE_OPENPGM
22 class pgm_receiver_t
ZMQ_FINAL :
public io_object_t,
public i_engine
25 pgm_receiver_t (zmq::io_thread_t *parent_,
const options_t &
options_);
28 int init (
bool udp_encapsulation_,
const char *network_);
31 bool has_handshake_stage () {
return false; };
34 bool restart_input ();
35 void restart_output ();
36 void zap_msg_available () {}
37 const endpoint_uri_pair_t &get_endpoint ()
const;
41 void timer_event (
int token);
49 int process_input (v1_decoder_t *
decoder);
53 void drop_subscriptions ();
61 const endpoint_uri_pair_t _empty_endpoint;
77 bool operator() (
const pgm_tsi_t <si,
const pgm_tsi_t &rtsi)
const
79 uint32_t ll[2], rl[2];
80 memcpy (ll, <si,
sizeof (ll));
81 memcpy (rl, &rtsi,
sizeof (rl));
82 return (ll[0] < rl[0]) || (ll[0] == rl[0] && ll[1] < rl[1]);
86 typedef std::map<pgm_tsi_t, peer_info_t, tsi_comp> peers_t;
90 pgm_socket_t pgm_socket;
98 const pgm_tsi_t *active_tsi;
104 const unsigned char *inpos;
107 handle_t socket_handle;
110 handle_t pipe_handle;