// Get receiver fds. recv_fd is from transport->recv_sock // waiting_pipe_fd is from transport->waiting_pipe [0] void zmq::pgm_socket_t::get_receiver_fds (int *receive_fd_, int *waiting_pipe_fd_) { zmq_assert (receive_fd_); zmq_assert (waiting_pipe_fd_); // recv_sock2 should not be used - check it. zmq_assert (transport->recv_sock2 == -1); // Check if transport can receive data and can not send. zmq_assert (transport->can_recv_data); zmq_assert (!transport->can_send_data); // Take FDs directly from transport. *receive_fd_ = pgm_transport_get_recv_fd (transport); *waiting_pipe_fd_ = pgm_transport_get_pending_fd (transport); }
// Get fds and store them into user allocated memory. // sender_fd is from pgm_transport->send_sock. // receive_fd_ is from transport->recv_sock. // rdata_notify_fd_ is from transport->rdata_notify (PGM2 only). void zmq::pgm_socket_t::get_sender_fds (int *send_fd_, int *receive_fd_, int *rdata_notify_fd_) { zmq_assert (send_fd_); zmq_assert (receive_fd_); zmq_assert (rdata_notify_fd_); // recv_sock2 should not be used - check it. zmq_assert (transport->recv_sock2 == -1); // Check if transport can send data and can not receive. zmq_assert (transport->can_send_data); zmq_assert (!transport->can_recv_data); // Take FDs directly from transport. *receive_fd_ = pgm_transport_get_recv_fd (transport); *rdata_notify_fd_ = pgm_transport_get_repair_fd (transport); *send_fd_ = pgm_transport_get_send_fd (transport); }