30 #ifndef __PGM_SOCKET_HPP_INCLUDED__ 31 #define __PGM_SOCKET_HPP_INCLUDED__ 33 #include "platform.hpp" 35 #if defined ZMQ_HAVE_OPENPGM 37 #ifdef ZMQ_HAVE_WINDOWS 39 #define __PGM_WININT_H__ 44 #if defined(ZMQ_HAVE_OSX) || defined(ZMQ_HAVE_NETBSD) 60 pgm_socket_t (
bool receiver_,
const options_t &options_);
66 int init (
bool udp_encapsulation_,
const char *network_);
69 static int init_address(
const char *network_,
struct pgm_addrinfo_t **addr, uint16_t *port_number);
72 void get_receiver_fds (
fd_t *receive_fd_,
fd_t *waiting_pipe_fd_);
76 void get_sender_fds (
fd_t *send_fd_,
fd_t *receive_fd_,
77 fd_t *rdata_notify_fd_,
fd_t *pending_notify_fd_);
80 size_t send (
unsigned char *data_,
size_t data_len_);
83 size_t get_max_tsdu_size ();
86 ssize_t
receive (
void **data_,
const pgm_tsi_t **tsi_);
88 long get_rx_timeout ();
89 long get_tx_timeout ();
93 void process_upstream ();
98 int compute_sqns (
int tpdu_);
103 int last_rx_status, last_tx_status;
113 pgm_msgv_t *pgm_msgv;
122 size_t nbytes_processed;
125 size_t pgm_msgv_processed;
int receive(void *socket)
static void receiver(void *socket)