mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-19 00:46:05 +01:00
ZMQ_TYPE socket option added
This commit is contained in:
parent
6715f9b185
commit
87beaaa00d
1
.gitignore
vendored
1
.gitignore
vendored
@ -35,6 +35,7 @@ doc/*.7
|
||||
doc/*.html
|
||||
doc/*.xml
|
||||
src/libzmq.pc
|
||||
bin/
|
||||
lib/
|
||||
builds/msvc/*.suo
|
||||
builds/msvc/*/*.user
|
||||
|
@ -26,6 +26,19 @@ value stored in the buffer.
|
||||
The following options can be retrieved with the _zmq_getsockopt()_ function:
|
||||
|
||||
|
||||
ZMQ_TYPE: Retrieve socket type.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_TYPE option shall retrieve the socket type for the specified
|
||||
'socket'. The socket type is specified at socket creation time and
|
||||
cannot be modified afterwards.
|
||||
|
||||
[horizontal]
|
||||
Option value type:: int
|
||||
Option value unit:: N/A
|
||||
Default value:: N/A
|
||||
Applicable socket types:: all
|
||||
|
||||
|
||||
ZMQ_RCVMORE: More message parts to follow
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The 'ZMQ_RCVMORE' option shall return a boolean value indicating if the
|
||||
|
@ -179,6 +179,7 @@ ZMQ_EXPORT int zmq_term (void *context);
|
||||
#define ZMQ_RCVMORE 13
|
||||
#define ZMQ_FD 14
|
||||
#define ZMQ_EVENTS 15
|
||||
#define ZMQ_TYPE 16
|
||||
|
||||
/* Send/recv options. */
|
||||
#define ZMQ_NOBLOCK 1
|
||||
|
@ -33,6 +33,7 @@ zmq::options_t::options_t () :
|
||||
use_multicast_loop (true),
|
||||
sndbuf (0),
|
||||
rcvbuf (0),
|
||||
type (-1),
|
||||
requires_in (false),
|
||||
requires_out (false),
|
||||
immediate_connect (true)
|
||||
@ -137,6 +138,15 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_)
|
||||
{
|
||||
switch (option_) {
|
||||
|
||||
case ZMQ_TYPE:
|
||||
if (*optvallen_ < sizeof (int)) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
*((int*) optval_) = type;
|
||||
*optvallen_ = sizeof (int);
|
||||
return 0;
|
||||
|
||||
case ZMQ_HWM:
|
||||
if (*optvallen_ < sizeof (uint64_t)) {
|
||||
errno = EINVAL;
|
||||
|
@ -51,6 +51,9 @@ namespace zmq
|
||||
uint64_t sndbuf;
|
||||
uint64_t rcvbuf;
|
||||
|
||||
// Socket type.
|
||||
int type;
|
||||
|
||||
// These options are never set by the user directly. Instead they are
|
||||
// provided by the specific socket type.
|
||||
bool requires_in;
|
||||
|
@ -31,6 +31,7 @@ zmq::pair_t::pair_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
outpipe_alive (false),
|
||||
terminating (false)
|
||||
{
|
||||
options.type = ZMQ_PAIR;
|
||||
options.requires_in = true;
|
||||
options.requires_out = true;
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ zmq::pub_t::pub_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
active (0),
|
||||
terminating (false)
|
||||
{
|
||||
options.type = ZMQ_PUB;
|
||||
options.requires_in = false;
|
||||
options.requires_out = true;
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ zmq::pull_t::pull_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
socket_base_t (parent_, slot_),
|
||||
fq (this)
|
||||
{
|
||||
options.type = ZMQ_PULL;
|
||||
options.requires_in = true;
|
||||
options.requires_out = false;
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ zmq::push_t::push_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
socket_base_t (parent_, slot_),
|
||||
lb (this)
|
||||
{
|
||||
options.type = ZMQ_PUSH;
|
||||
options.requires_in = false;
|
||||
options.requires_out = true;
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ zmq::rep_t::rep_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
sending_reply (false),
|
||||
request_begins (true)
|
||||
{
|
||||
options.type = ZMQ_REP;
|
||||
}
|
||||
|
||||
zmq::rep_t::~rep_t ()
|
||||
|
@ -27,6 +27,7 @@ zmq::req_t::req_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
receiving_reply (false),
|
||||
message_begins (true)
|
||||
{
|
||||
options.type = ZMQ_REQ;
|
||||
}
|
||||
|
||||
zmq::req_t::~req_t ()
|
||||
|
@ -30,6 +30,7 @@ zmq::sub_t::sub_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
has_message (false),
|
||||
more (false)
|
||||
{
|
||||
options.type = ZMQ_SUB;
|
||||
options.requires_in = true;
|
||||
options.requires_out = false;
|
||||
zmq_msg_init (&message);
|
||||
|
@ -32,6 +32,7 @@ zmq::xrep_t::xrep_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
more_out (false),
|
||||
terminating (false)
|
||||
{
|
||||
options.type = ZMQ_XREP;
|
||||
options.requires_in = true;
|
||||
options.requires_out = true;
|
||||
|
||||
|
@ -27,6 +27,7 @@ zmq::xreq_t::xreq_t (class ctx_t *parent_, uint32_t slot_) :
|
||||
fq (this),
|
||||
lb (this)
|
||||
{
|
||||
options.type = ZMQ_XREQ;
|
||||
options.requires_in = true;
|
||||
options.requires_out = true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user