diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2011-03-24 16:47:33 +0100 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2011-03-24 16:47:33 +0100 |
commit | bc4a1ce3345f4e5904e4b13c618f90def21256a5 (patch) | |
tree | 0e95c952f0a5464f5edb515e7d16644e76515a85 /src/options.cpp | |
parent | 507718ee1a56e376c06389c513de3868297fec35 (diff) |
ZMQ_HWM split into ZMQ_SNDHWM and ZMQ_RCVHWM
These new options allow to control the maximum size of the
inbound and outbound message pipe separately.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src/options.cpp')
-rw-r--r-- | src/options.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/options.cpp b/src/options.cpp index 39f8984..556ffd8 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -26,7 +26,8 @@ #include "err.hpp" zmq::options_t::options_t () : - hwm (0), + sndhwm (0), + rcvhwm (0), affinity (0), rate (100), recovery_ivl (10000), @@ -49,12 +50,20 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, { switch (option_) { - case ZMQ_HWM: + case ZMQ_SNDHWM: if (optvallen_ != sizeof (int) || *((int*) optval_) < 0) { errno = EINVAL; return -1; } - hwm = *((int*) optval_); + sndhwm = *((int*) optval_); + return 0; + + case ZMQ_RCVHWM: + if (optvallen_ != sizeof (int) || *((int*) optval_) < 0) { + errno = EINVAL; + return -1; + } + rcvhwm = *((int*) optval_); return 0; case ZMQ_AFFINITY: @@ -168,13 +177,22 @@ int zmq::options_t::getsockopt (int option_, void *optval_, size_t *optvallen_) { switch (option_) { - case ZMQ_HWM: + case ZMQ_SNDHWM: if (*optvallen_ < sizeof (int)) { errno = EINVAL; return -1; } - *((int*) optval_) = hwm; - *optvallen_ = sizeof (uint64_t); + *((int*) optval_) = sndhwm; + *optvallen_ = sizeof (int); + return 0; + + case ZMQ_RCVHWM: + if (*optvallen_ < sizeof (int)) { + errno = EINVAL; + return -1; + } + *((int*) optval_) = rcvhwm; + *optvallen_ = sizeof (int); return 0; case ZMQ_AFFINITY: |