int zmq::ctx_t::get (int option_) { int rc = 0; if (option_ == ZMQ_MAX_SOCKETS) rc = max_sockets; else if (option_ == ZMQ_SOCKET_LIMIT) rc = clipped_maxsocket (65535); else if (option_ == ZMQ_IO_THREADS) rc = io_thread_count; else if (option_ == ZMQ_IPV6) rc = ipv6; else if (option_ == ZMQ_BLOCKY) rc = blocky; else if (option_ == ZMQ_MAX_MSGSZ) rc = max_msgsz; else { errno = EINVAL; rc = -1; } return rc; }
zmq::ctx_t::ctx_t () : tag (ZMQ_CTX_TAG_VALUE_GOOD), starting (true), terminating (false), reaper (NULL), slot_count (0), slots (NULL), max_sockets (clipped_maxsocket (ZMQ_MAX_SOCKETS_DFLT)), max_msgsz (INT_MAX), io_thread_count (ZMQ_IO_THREADS_DFLT), blocky (true), ipv6 (false), thread_priority (ZMQ_THREAD_PRIORITY_DFLT), thread_sched_policy (ZMQ_THREAD_SCHED_POLICY_DFLT) { #ifdef HAVE_FORK pid = getpid(); #endif #ifdef ZMQ_HAVE_VMCI vmci_fd = -1; vmci_family = -1; #endif crypto_sync.lock (); #if defined (ZMQ_USE_TWEETNACL) // allow opening of /dev/urandom unsigned char tmpbytes[4]; randombytes(tmpbytes, 4); #elif defined (ZMQ_USE_LIBSODIUM) int rc = sodium_init (); zmq_assert (rc != -1); #endif crypto_sync.unlock (); }
int zmq::ctx_t::set (int option_, int optval_) { int rc = 0; if (option_ == ZMQ_MAX_SOCKETS && optval_ >= 1 && optval_ == clipped_maxsocket (optval_)) { opt_sync.lock (); max_sockets = optval_; opt_sync.unlock (); } else if (option_ == ZMQ_IO_THREADS && optval_ >= 0) { opt_sync.lock (); io_thread_count = optval_; opt_sync.unlock (); } else if (option_ == ZMQ_IPV6 && optval_ >= 0) { opt_sync.lock (); ipv6 = (optval_ != 0); opt_sync.unlock (); } else { errno = EINVAL; rc = -1; } return rc; }
int zmq::ctx_t::get (int option_) { int rc = 0; if (option_ == ZMQ_MAX_SOCKETS) rc = _max_sockets; else if (option_ == ZMQ_SOCKET_LIMIT) rc = clipped_maxsocket (65535); else if (option_ == ZMQ_IO_THREADS) rc = _io_thread_count; else if (option_ == ZMQ_IPV6) rc = _ipv6; else if (option_ == ZMQ_BLOCKY) rc = _blocky; else if (option_ == ZMQ_MAX_MSGSZ) rc = _max_msgsz; else if (option_ == ZMQ_MSG_T_SIZE) rc = sizeof (zmq_msg_t); else if (option_ == ZMQ_ZERO_COPY_RECV) { rc = _zero_copy; } else { errno = EINVAL; rc = -1; } return rc; }
int zmq::ctx_t::set (int option_, int optval_) { int rc = 0; if (option_ == ZMQ_MAX_SOCKETS && optval_ >= 1 && optval_ == clipped_maxsocket (optval_)) { scoped_lock_t locker (_opt_sync); _max_sockets = optval_; } else if (option_ == ZMQ_IO_THREADS && optval_ >= 0) { scoped_lock_t locker (_opt_sync); _io_thread_count = optval_; } else if (option_ == ZMQ_IPV6 && optval_ >= 0) { scoped_lock_t locker (_opt_sync); _ipv6 = (optval_ != 0); } else if (option_ == ZMQ_BLOCKY && optval_ >= 0) { scoped_lock_t locker (_opt_sync); _blocky = (optval_ != 0); } else if (option_ == ZMQ_MAX_MSGSZ && optval_ >= 0) { scoped_lock_t locker (_opt_sync); _max_msgsz = optval_ < INT_MAX ? optval_ : INT_MAX; } else if (option_ == ZMQ_ZERO_COPY_RECV && optval_ >= 0) { scoped_lock_t locker (_opt_sync); _zero_copy = (optval_ != 0); } else { rc = thread_ctx_t::set (option_, optval_); } return rc; }
int zmq::ctx_t::set (int option_, int optval_) { int rc = 0; if (option_ == ZMQ_MAX_SOCKETS && optval_ >= 1 && optval_ == clipped_maxsocket (optval_)) { opt_sync.lock (); max_sockets = optval_; opt_sync.unlock (); } else if (option_ == ZMQ_IO_THREADS && optval_ >= 0) { opt_sync.lock (); io_thread_count = optval_; opt_sync.unlock (); } else if (option_ == ZMQ_IPV6 && optval_ >= 0) { opt_sync.lock (); ipv6 = (optval_ != 0); opt_sync.unlock (); } else if (option_ == ZMQ_THREAD_PRIORITY && optval_ >= 0) { opt_sync.lock(); thread_priority = optval_; opt_sync.unlock (); } else if (option_ == ZMQ_THREAD_SCHED_POLICY && optval_ >= 0) { opt_sync.lock(); thread_sched_policy = optval_; opt_sync.unlock (); } else if (option_ == ZMQ_BLOCKY && optval_ >= 0) { opt_sync.lock (); blocky = (optval_ != 0); opt_sync.unlock (); } else if (option_ == ZMQ_MAX_MSGSZ && optval_ >= 0) { opt_sync.lock (); max_msgsz = optval_ < INT_MAX? optval_: INT_MAX; opt_sync.unlock (); } else { errno = EINVAL; rc = -1; } return rc; }
zmq::ctx_t::ctx_t () : tag (ZMQ_CTX_TAG_VALUE_GOOD), starting (true), terminating (false), reaper (NULL), slot_count (0), slots (NULL), max_sockets (clipped_maxsocket (ZMQ_MAX_SOCKETS_DFLT)), io_thread_count (ZMQ_IO_THREADS_DFLT), ipv6 (false) { #ifdef HAVE_FORK pid = getpid(); #endif }
zmq::ctx_t::ctx_t () : tag (ZMQ_CTX_TAG_VALUE_GOOD), starting (true), terminating (false), reaper (NULL), slot_count (0), slots (NULL), max_sockets (clipped_maxsocket (ZMQ_MAX_SOCKETS_DFLT)), io_thread_count (ZMQ_IO_THREADS_DFLT), blocky (true), ipv6 (false), thread_priority (ZMQ_THREAD_PRIORITY_DFLT), thread_sched_policy (ZMQ_THREAD_SCHED_POLICY_DFLT) { #ifdef HAVE_FORK pid = getpid(); #endif }
zmq::ctx_t::ctx_t () : _tag (ZMQ_CTX_TAG_VALUE_GOOD), _starting (true), _terminating (false), _reaper (NULL), _max_sockets (clipped_maxsocket (ZMQ_MAX_SOCKETS_DFLT)), _max_msgsz (INT_MAX), _io_thread_count (ZMQ_IO_THREADS_DFLT), _blocky (true), _ipv6 (false), _zero_copy (true) { #ifdef HAVE_FORK _pid = getpid (); #endif #ifdef ZMQ_HAVE_VMCI _vmci_fd = -1; _vmci_family = -1; #endif // Initialise crypto library, if needed. zmq::random_open (); }