44 zmq::send_flags flags ) {
45 zmq::send_result_t result;
48 result = socket.send(buf, flags);
50 }
catch (zmq::error_t
const& e) {
51 if (e.num() == EINTR) {
62 zmq::send_flags flags ) {
63 zmq::send_result_t result;
66 result = socket.send(msg, flags);
68 }
catch (zmq::error_t
const& e) {
69 if (e.num() == EINTR) {
80 zmq::send_flags flags ) {
86 zmq::recv_flags flags ) {
87 zmq::recv_buffer_result_t result;
90 result = socket.recv(buf, flags);
92 }
catch (zmq::error_t
const& e) {
93 if (e.num() == EINTR) {
104 zmq::recv_flags flags ) {
105 zmq::recv_result_t result;
108 result = socket.recv(msg, flags);
110 }
catch (zmq::error_t
const& e) {
111 if (e.num() == EINTR) {
120template CZZE_EXPORT zmq::send_result_t send_retry_on_eintr<zmq::socket_t>(
121 zmq::socket_t& socket, zmq::const_buffer
const& buf, zmq::send_flags flags = zmq::send_flags::none);
122template CZZE_EXPORT zmq::send_result_t send_retry_on_eintr<zmq::socket_t>(
123 zmq::socket_t& socket, zmq::message_t& msg, zmq::send_flags flags = zmq::send_flags::none);
124template CZZE_EXPORT zmq::send_result_t send_retry_on_eintr<zmq::socket_t>(
125 zmq::socket_t& socket, zmq::message_t&& msg, zmq::send_flags flags = zmq::send_flags::none);
126template CZZE_EXPORT zmq::recv_buffer_result_t recv_retry_on_eintr<zmq::socket_t>(
127 zmq::socket_t& socket, zmq::mutable_buffer
const& buf, zmq::recv_flags flags = zmq::recv_flags::none);
128template CZZE_EXPORT zmq::recv_result_t recv_retry_on_eintr<zmq::socket_t>(
129 zmq::socket_t& socket, zmq::message_t& msg, zmq::recv_flags flags = zmq::recv_flags::none);
131template CZZE_EXPORT zmq::send_result_t send_retry_on_eintr<zmq::socket_ref>(
132 zmq::socket_ref& socket, zmq::const_buffer
const& buf, zmq::send_flags flags = zmq::send_flags::none);
133template CZZE_EXPORT zmq::send_result_t send_retry_on_eintr<zmq::socket_ref>(
134 zmq::socket_ref& socket, zmq::message_t& msg, zmq::send_flags flags = zmq::send_flags::none);
135template CZZE_EXPORT zmq::send_result_t send_retry_on_eintr<zmq::socket_ref>(
136 zmq::socket_ref& socket, zmq::message_t&& msg, zmq::send_flags flags = zmq::send_flags::none);
137template CZZE_EXPORT zmq::recv_buffer_result_t recv_retry_on_eintr<zmq::socket_ref>(
138 zmq::socket_ref& socket, zmq::mutable_buffer
const& buf, zmq::recv_flags flags = zmq::recv_flags::none);
139template CZZE_EXPORT zmq::recv_result_t recv_retry_on_eintr<zmq::socket_ref>(
140 zmq::socket_ref& socket, zmq::message_t& msg, zmq::recv_flags flags = zmq::recv_flags::none);
Helper utilities for robust ZMQ message sending and receiving.
CZZE_EXPORT zmq::recv_buffer_result_t recv_retry_on_eintr(T &socket, zmq::mutable_buffer const &buf, zmq::recv_flags flags=zmq::recv_flags::none)
Receive data into a buffer with automatic retry on EINTR.
CZZE_EXPORT zmq::send_result_t send_retry_on_eintr(T &socket, zmq::const_buffer const &buf, zmq::send_flags flags=zmq::send_flags::none)
Send a message buffer with automatic retry on EINTR.