Declare ZMQ_CONFLATE option

This commit is contained in:
danielkr 2013-08-17 22:59:07 +03:00
parent 4eac7e3e4f
commit d020dd677f
3 changed files with 27 additions and 1 deletions

View File

@ -278,6 +278,7 @@ ZMQ_EXPORT int zmq_msg_set (zmq_msg_t *msg, int option, int optval);
#define ZMQ_PROBE_ROUTER 51
#define ZMQ_REQ_REQUEST_IDS 52
#define ZMQ_REQ_STRICT 53
#define ZMQ_CONFLATE 54
/* Message options */
#define ZMQ_MORE 1

View File

@ -54,7 +54,8 @@ zmq::options_t::options_t () :
tcp_keepalive_intvl (-1),
mechanism (ZMQ_NULL),
as_server (0),
socket_id (0)
socket_id (0),
conflate (false)
{
}
@ -340,6 +341,16 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
}
break;
# endif
case ZMQ_CONFLATE:
if (is_int && (value == 0 || value == 1)) {
conflate = (value != 0);
return 0;
}
break;
default:
break;
}
errno = EINVAL;
return -1;
@ -596,6 +607,14 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
}
break;
# endif
case ZMQ_CONFLATE:
if (is_int) {
*value = conflate;
return 0;
}
break;
}
errno = EINVAL;
return -1;

View File

@ -142,6 +142,12 @@ namespace zmq
// ID of the socket.
int socket_id;
// If true, socket conflates outgoing/incoming messages.
// Applicable to dealer, push/pull, pub/sub socket types.
// Cannot receive multi-part messages.
// Ignores hwm
bool conflate;
};
}