143 lines
8.8 KiB
C++
143 lines
8.8 KiB
C++
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file is part of zmqpp.
|
|
* Copyright (c) 2011-2015 Contributors as noted in the AUTHORS file.
|
|
*/
|
|
|
|
/**
|
|
* \file
|
|
*
|
|
* \date 23 Sep 2011
|
|
* \author Ben Gray (\@benjamg)
|
|
*/
|
|
|
|
#ifndef ZMQPP_SOCKET_OPTIONS_HPP_
|
|
#define ZMQPP_SOCKET_OPTIONS_HPP_
|
|
|
|
namespace zmqpp
|
|
{
|
|
|
|
/** \todo Expand the information on the options to make it actually useful. */
|
|
/*!
|
|
* \brief possible Socket options in zmq
|
|
*/
|
|
|
|
ZMQPP_COMPARABLE_ENUM socket_option {
|
|
affinity = ZMQ_AFFINITY, /*!< I/O thread affinity */
|
|
identity = ZMQ_IDENTITY, /*!< Socket identity */
|
|
subscribe = ZMQ_SUBSCRIBE, /*!< Add topic subscription - set only */
|
|
unsubscribe = ZMQ_UNSUBSCRIBE, /*!< Remove topic subscription - set only */
|
|
rate = ZMQ_RATE, /*!< Multicast data rate */
|
|
send_buffer_size = ZMQ_SNDBUF, /*!< Kernel transmission buffer size */
|
|
receive_buffer_size = ZMQ_RCVBUF, /*!< Kernel receive buffer size */
|
|
receive_more = ZMQ_RCVMORE, /*!< Can receive more parts - get only */
|
|
file_descriptor = ZMQ_FD, /*!< Socket file descriptor - get only */
|
|
events = ZMQ_EVENTS, /*!< Socket event flags - get only */
|
|
type = ZMQ_TYPE, /*!< Socket type - get only */
|
|
linger = ZMQ_LINGER, /*!< Socket linger timeout */
|
|
backlog = ZMQ_BACKLOG, /*!< Maximum length of outstanding connections - get only */
|
|
reconnect_interval = ZMQ_RECONNECT_IVL, /*!< Reconnection interval */
|
|
reconnect_interval_max = ZMQ_RECONNECT_IVL_MAX, /*!< Maximum reconnection interval */
|
|
receive_timeout = ZMQ_RCVTIMEO, /*!< Maximum inbound block timeout */
|
|
send_timeout = ZMQ_SNDTIMEO, /*!< Maximum outbound block timeout */
|
|
|
|
#if (ZMQ_VERSION_MAJOR == 2)
|
|
// Note that this is inverse of the zmq names for version 2.x
|
|
recovery_interval_seconds = ZMQ_RECOVERY_IVL, /*!< Multicast recovery interval in seconds */
|
|
recovery_interval = ZMQ_RECOVERY_IVL_MSEC, /*!< Multicast recovery interval in milliseconds */
|
|
high_water_mark = ZMQ_HWM, /*!< High-water mark for all messages */
|
|
swap_size = ZMQ_SWAP, /*!< Maximum socket swap size in bytes */
|
|
multicast_loopback = ZMQ_MCAST_LOOP, /*!< Allow multicast packet loopback */
|
|
#else // version > 2
|
|
recovery_interval = ZMQ_RECOVERY_IVL, /*!< Multicast recovery interval in milliseconds */
|
|
max_messsage_size = ZMQ_MAXMSGSIZE, /*!< Maximum inbound message size */
|
|
send_high_water_mark = ZMQ_SNDHWM, /*!< High-water mark for outbound messages */
|
|
receive_high_water_mark = ZMQ_RCVHWM, /*!< High-water mark for inbound messages */
|
|
multicast_hops = ZMQ_MULTICAST_HOPS, /*!< Maximum number of multicast hops */
|
|
|
|
#if (ZMQ_VERSION_MAJOR > 3) || ((ZMQ_VERSION_MAJOR == 3) && (ZMQ_VERSION_MINOR >= 1))
|
|
ipv4_only = ZMQ_IPV4ONLY,
|
|
#endif
|
|
|
|
#if (ZMQ_VERSION_MAJOR > 3) || ((ZMQ_VERSION_MAJOR == 3) && (ZMQ_VERSION_MINOR >= 2))
|
|
#if ((ZMQ_VERSION_MAJOR == 3) && (ZMQ_VERSION_MINOR == 2))
|
|
delay_attach_on_connect = ZMQ_DELAY_ATTACH_ON_CONNECT, /*!< Delay buffer attachment until connect complete */
|
|
#else
|
|
// ZMQ_DELAY_ATTACH_ON_CONNECT is renamed in ZeroMQ starting 3.3.x
|
|
immediate = ZMQ_IMMEDIATE, /*!< Block message sending until connect complete */
|
|
#endif
|
|
last_endpoint = ZMQ_LAST_ENDPOINT, /*!< Last bound endpoint - get only */
|
|
router_mandatory = ZMQ_ROUTER_MANDATORY, /*!< Require routable messages - set only */
|
|
xpub_verbose = ZMQ_XPUB_VERBOSE, /*!< Pass on existing subscriptions - set only */
|
|
tcp_keepalive = ZMQ_TCP_KEEPALIVE, /*!< Enable TCP keepalives */
|
|
tcp_keepalive_idle = ZMQ_TCP_KEEPALIVE_IDLE, /*!< TCP keepalive idle count (generally retry count) */
|
|
tcp_keepalive_count = ZMQ_TCP_KEEPALIVE_CNT, /*!< TCP keepalive retry count */
|
|
tcp_keepalive_interval = ZMQ_TCP_KEEPALIVE_INTVL, /*!< TCP keepalive interval */
|
|
tcp_accept_filter = ZMQ_TCP_ACCEPT_FILTER, /*!< Filter inbound connections - set only */
|
|
#endif
|
|
|
|
#if (ZMQ_VERSION_MAJOR >= 4)
|
|
ipv6 = ZMQ_IPV6, /*!< IPv6 socket support status */
|
|
mechanism = ZMQ_MECHANISM, /*!< Socket security mechanism - get only */
|
|
plain_password = ZMQ_PLAIN_PASSWORD, /*!< PLAIN password */
|
|
plain_server = ZMQ_PLAIN_SERVER, /*!< PLAIN server role */
|
|
plain_username = ZMQ_PLAIN_USERNAME, /*!< PLAIN username */
|
|
zap_domain = ZMQ_ZAP_DOMAIN, /*!< RFC 27 authentication domain */
|
|
conflate = ZMQ_CONFLATE, /*!< Keep only last message - set only */
|
|
curve_public_key = ZMQ_CURVE_PUBLICKEY, /*!< CURVE public key */
|
|
curve_secret_key = ZMQ_CURVE_SECRETKEY, /*!< CURVE secret key */
|
|
curve_server_key = ZMQ_CURVE_SERVERKEY, /*!< CURVE server key */
|
|
curve_server = ZMQ_CURVE_SERVER, /*!< CURVE server role - set only */
|
|
probe_router = ZMQ_PROBE_ROUTER, /*!< Bootstrap connections to ROUTER sockets - set only */
|
|
request_correlate = ZMQ_REQ_CORRELATE, /*!< Match replies with requests - set only */
|
|
request_relaxed = ZMQ_REQ_RELAXED, /*!< Relax strict alternation between request and reply - set only */
|
|
router_raw = ZMQ_ROUTER_RAW, /*!< Switch ROUTER socket to raw mode - set only */
|
|
#endif
|
|
|
|
#if (ZMQ_VERSION_MAJOR > 4) || ((ZMQ_VERSION_MAJOR == 4) && (ZMQ_VERSION_MINOR >= 1))
|
|
handshake_interval = ZMQ_HANDSHAKE_IVL, /*!< Maximum handshake interval */
|
|
type_of_service = ZMQ_TOS, /*!< Type-of-Service socket override status */
|
|
connect_rid = ZMQ_CONNECT_RID, /*!< Assign the next outbound connection id - set only */
|
|
ipc_filter_gid = ZMQ_IPC_FILTER_GID, /*!< Group ID filters to allow new IPC connections - set only */
|
|
ipc_filter_pid = ZMQ_IPC_FILTER_PID, /*!< Process ID filters to allow new IPC connections - set only */
|
|
ipc_filter_uid = ZMQ_IPC_FILTER_UID, /*!< User ID filters to allow new IPC connections - set only */
|
|
router_handover = ZMQ_ROUTER_HANDOVER, /*!< Handle duplicate client identities on ROUTER sockets - set only */
|
|
#endif
|
|
#if (ZMQ_VERSION_MAJOR > 4) || ((ZMQ_VERSION_MAJOR == 4) && (ZMQ_VERSION_MINOR >= 2))
|
|
connect_timeout = ZMQ_CONNECT_TIMEOUT, /*< Connect system call timeout */
|
|
gssapi_plaintext = ZMQ_GSSAPI_PLAINTEXT, /*< GSSAPI plaintext (disabled) state */
|
|
gssapi_principal = ZMQ_GSSAPI_PRINCIPAL, /*< GSSAPI principal name */
|
|
gssapi_server = ZMQ_GSSAPI_SERVER, /*< GSSAPI server state */
|
|
gssapi_service_principal = ZMQ_GSSAPI_SERVICE_PRINCIPAL, /*< GSSAPI connected server principal name */
|
|
heartbeat_interval = ZMQ_HEARTBEAT_IVL, /*< Heartbeat interval for ZMPT - set only */
|
|
heartbeat_timeout = ZMQ_HEARTBEAT_TIMEOUT, /*< ZMPT heartbeat timeout - set only */
|
|
heartbeat_ttl = ZMQ_HEARTBEAT_TTL, /*< ZMPT heartbeat interval - set only */
|
|
invert_matching = ZMQ_INVERT_MATCHING, /*< ZMPT invert state for PUB/SUB message filters */
|
|
multicast_max_tpdu = ZMQ_MULTICAST_MAXTPDU, /*< Max size for multicast messages */
|
|
socks_proxy = ZMQ_SOCKS_PROXY, /*< SOCKS5 proxy address for routing tcp connections */
|
|
stream_notify = ZMQ_STREAM_NOTIFY, /*< Event state on connect/disconnection of peers */
|
|
tpc_max_retransmit = ZMQ_TCP_MAXRT, /*< Maximum retransmit timeout */
|
|
use_fd = ZMQ_USE_FD, /*!< Use a pre-allocated file descriptor instead of allocating a new one */
|
|
vmci_buffer_size = ZMQ_VMCI_BUFFER_SIZE, /*< VMCI buffer size */
|
|
vmci_buffer_min = ZMQ_VMCI_BUFFER_MIN_SIZE, /*< VMCI minimum buffer size */
|
|
vmci_buffer_max = ZMQ_VMCI_BUFFER_MAX_SIZE, /*< VMCI maximum buffer size */
|
|
vmci_connect_timeout = ZMQ_VMCI_CONNECT_TIMEOUT, /*< VMCI connection attempt timeout */
|
|
xpub_manual = ZMQ_XPUB_MANUAL,
|
|
xpub_nodrop = ZMQ_XPUB_NODROP,
|
|
xpub_verboser = ZMQ_XPUB_VERBOSER, /*!< Pass on existing (un)subscriptions - set only */
|
|
xpub_welcome_message = ZMQ_XPUB_WELCOME_MSG,
|
|
#endif
|
|
#endif // version > 2
|
|
|
|
#ifdef ZMQ_EXPERIMENTAL_LABELS
|
|
receive_label = ZMQ_RCVLABEL, /*!< Received label part - get only */
|
|
#endif
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* ZMQPP_SOCKET_OPTIONS_HPP_ */
|