summaryrefslogtreecommitdiff
path: root/src/options.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2011-03-24 16:47:33 +0100
committerMartin Sustrik <sustrik@250bpm.com>2011-03-24 16:47:33 +0100
commitbc4a1ce3345f4e5904e4b13c618f90def21256a5 (patch)
tree0e95c952f0a5464f5edb515e7d16644e76515a85 /src/options.cpp
parent507718ee1a56e376c06389c513de3868297fec35 (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.cpp30
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: