diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2011-07-11 09:57:59 +0200 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2011-07-11 09:57:59 +0200 |
commit | d7adc3f19a4c941e854552d6d7881950a69b0d23 (patch) | |
tree | efddd559463040a438a71d30a6c098b98c61d972 /src | |
parent | a154ef69da4e41d3a8ce5a3141fe8f052c7ea853 (diff) |
ZMQ_FILTER option removed
The filtering is now done depending on the socket type. SUB socket
filters the messages (end-to-end filtering) while XSUB relies
on upstream nodes to do (imprefect) filtering.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/options.cpp | 22 | ||||
-rw-r--r-- | src/options.hpp | 6 | ||||
-rw-r--r-- | src/sub.cpp | 4 |
3 files changed, 9 insertions, 23 deletions
diff --git a/src/options.cpp b/src/options.cpp index aa92f93..be7c4b5 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -38,12 +38,12 @@ zmq::options_t::options_t () : reconnect_ivl_max (0), backlog (100), maxmsgsize (-1), - filter (1), rcvtimeo (-1), sndtimeo (-1), immediate_connect (true), delay_on_close (true), - delay_on_disconnect (true) + delay_on_disconnect (true), + filter (false) { } @@ -177,15 +177,6 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, multicast_hops = *((int*) optval_); return 0; - case ZMQ_FILTER: - if (optvallen_ != sizeof (int) || (*((int*) optval_) != 0 && - *((int*) optval_) != 1)) { - errno = EINVAL; - return -1; - } - filter = *((int*) optval_); - return 0; - case ZMQ_RCVTIMEO: if (optvallen_ != sizeof (int)) { errno = EINVAL; @@ -347,15 +338,6 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_) *optvallen_ = sizeof (int); return 0; - case ZMQ_FILTER: - if (*optvallen_ < sizeof (int)) { - errno = EINVAL; - return -1; - } - *((int*) optval_) = filter; - *optvallen_ = sizeof (int); - return 0; - case ZMQ_RCVTIMEO: if (*optvallen_ < sizeof (int)) { errno = EINVAL; diff --git a/src/options.hpp b/src/options.hpp index 70144b2..a4a0bc6 100644 --- a/src/options.hpp +++ b/src/options.hpp @@ -75,9 +75,6 @@ namespace zmq // Maximal size of message to handle. int64_t maxmsgsize; - // If 1, (X)SUB socket should filter the messages. If 0, it should not. - int filter; - // The timeout for send/recv operations for this socket. int rcvtimeo; int sndtimeo; @@ -95,6 +92,9 @@ namespace zmq // If true, socket reads all the messages from the pipe and delivers // them to the user when the peer terminates. bool delay_on_disconnect; + + // If 1, (X)SUB socket should filter the messages. If 0, it should not. + bool filter; }; } diff --git a/src/sub.cpp b/src/sub.cpp index c8ffd2e..2a1454a 100644 --- a/src/sub.cpp +++ b/src/sub.cpp @@ -25,6 +25,10 @@ zmq::sub_t::sub_t (class ctx_t *parent_, uint32_t tid_) : xsub_t (parent_, tid_) { options.type = ZMQ_SUB; + + // Switch filtering messages on (as opposed to XSUB which where the + // filtering is off). + options.filter = true; } zmq::sub_t::~sub_t () |