zmq.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MPL-2.0 */
2 /* *************************************************************************
3  NOTE to contributors. This file comprises the principal public contract
4  for ZeroMQ API users. Any change to this file supplied in a stable
5  release SHOULD not break existing applications.
6  In practice this means that the value of constants must not change, and
7  that old values may not be reused for new constants.
8  *************************************************************************
9 */
10 
11 #ifndef __ZMQ_H_INCLUDED__
12 #define __ZMQ_H_INCLUDED__
13 
14 /* Version macros for compile-time API version detection */
15 #define ZMQ_VERSION_MAJOR 4
16 #define ZMQ_VERSION_MINOR 3
17 #define ZMQ_VERSION_PATCH 6
18 
19 #define ZMQ_MAKE_VERSION(major, minor, patch) \
20  ((major) *10000 + (minor) *100 + (patch))
21 #define ZMQ_VERSION \
22  ZMQ_MAKE_VERSION (ZMQ_VERSION_MAJOR, ZMQ_VERSION_MINOR, ZMQ_VERSION_PATCH)
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #if !defined _WIN32_WCE
29 #include <errno.h>
30 #endif
31 #include <stddef.h>
32 #include <stdio.h>
33 
34 /* Handle DSO symbol visibility */
35 #if defined ZMQ_NO_EXPORT
36 #define ZMQ_EXPORT
37 #else
38 #if defined _WIN32
39 #if defined ZMQ_STATIC
40 #define ZMQ_EXPORT
41 #elif defined DLL_EXPORT
42 #define ZMQ_EXPORT __declspec(dllexport)
43 #else
44 #define ZMQ_EXPORT __declspec(dllimport)
45 #endif
46 #else
47 #if defined __SUNPRO_C || defined __SUNPRO_CC
48 #define ZMQ_EXPORT __global
49 #elif (defined __GNUC__ && __GNUC__ >= 4) || defined __INTEL_COMPILER
50 #define ZMQ_EXPORT __attribute__ ((visibility ("default")))
51 #else
52 #define ZMQ_EXPORT
53 #endif
54 #endif
55 #endif
56 
57 /* Define integer types needed for event interface */
58 #define ZMQ_DEFINED_STDINT 1
59 #if defined ZMQ_HAVE_SOLARIS || defined ZMQ_HAVE_OPENVMS
60 #include <inttypes.h>
61 #elif defined _MSC_VER && _MSC_VER < 1600
62 #ifndef uint64_t
63 typedef unsigned __int64 uint64_t;
64 #endif
65 #ifndef int32_t
66 typedef __int32 int32_t;
67 #endif
68 #ifndef uint32_t
69 typedef unsigned __int32 uint32_t;
70 #endif
71 #ifndef uint16_t
72 typedef unsigned __int16 uint16_t;
73 #endif
74 #ifndef uint8_t
75 typedef unsigned __int8 uint8_t;
76 #endif
77 #else
78 #include <stdint.h>
79 #endif
80 
81 #if !defined _WIN32
82 // needed for sigset_t definition in zmq_ppoll
83 #include <signal.h>
84 #endif
85 
86 // 32-bit AIX's pollfd struct members are called reqevents and rtnevents so it
87 // defines compatibility macros for them. Need to include that header first to
88 // stop build failures since zmq_pollset_t defines them as events and revents.
89 #ifdef ZMQ_HAVE_AIX
90 #include <poll.h>
91 #endif
92 
93 
94 /******************************************************************************/
95 /* 0MQ errors. */
96 /******************************************************************************/
97 
98 /* A number random enough not to collide with different errno ranges on */
99 /* different OSes. The assumption is that error_t is at least 32-bit type. */
100 #define ZMQ_HAUSNUMERO 156384712
101 
102 /* On Windows platform some of the standard POSIX errnos are not defined. */
103 #ifndef ENOTSUP
104 #define ENOTSUP (ZMQ_HAUSNUMERO + 1)
105 #endif
106 #ifndef EPROTONOSUPPORT
107 #define EPROTONOSUPPORT (ZMQ_HAUSNUMERO + 2)
108 #endif
109 #ifndef ENOBUFS
110 #define ENOBUFS (ZMQ_HAUSNUMERO + 3)
111 #endif
112 #ifndef ENETDOWN
113 #define ENETDOWN (ZMQ_HAUSNUMERO + 4)
114 #endif
115 #ifndef EADDRINUSE
116 #define EADDRINUSE (ZMQ_HAUSNUMERO + 5)
117 #endif
118 #ifndef EADDRNOTAVAIL
119 #define EADDRNOTAVAIL (ZMQ_HAUSNUMERO + 6)
120 #endif
121 #ifndef ECONNREFUSED
122 #define ECONNREFUSED (ZMQ_HAUSNUMERO + 7)
123 #endif
124 #ifndef EINPROGRESS
125 #define EINPROGRESS (ZMQ_HAUSNUMERO + 8)
126 #endif
127 #ifndef ENOTSOCK
128 #define ENOTSOCK (ZMQ_HAUSNUMERO + 9)
129 #endif
130 #ifndef EMSGSIZE
131 #define EMSGSIZE (ZMQ_HAUSNUMERO + 10)
132 #endif
133 #ifndef EAFNOSUPPORT
134 #define EAFNOSUPPORT (ZMQ_HAUSNUMERO + 11)
135 #endif
136 #ifndef ENETUNREACH
137 #define ENETUNREACH (ZMQ_HAUSNUMERO + 12)
138 #endif
139 #ifndef ECONNABORTED
140 #define ECONNABORTED (ZMQ_HAUSNUMERO + 13)
141 #endif
142 #ifndef ECONNRESET
143 #define ECONNRESET (ZMQ_HAUSNUMERO + 14)
144 #endif
145 #ifndef ENOTCONN
146 #define ENOTCONN (ZMQ_HAUSNUMERO + 15)
147 #endif
148 #ifndef ETIMEDOUT
149 #define ETIMEDOUT (ZMQ_HAUSNUMERO + 16)
150 #endif
151 #ifndef EHOSTUNREACH
152 #define EHOSTUNREACH (ZMQ_HAUSNUMERO + 17)
153 #endif
154 #ifndef ENETRESET
155 #define ENETRESET (ZMQ_HAUSNUMERO + 18)
156 #endif
157 
158 /* Native 0MQ error codes. */
159 #define EFSM (ZMQ_HAUSNUMERO + 51)
160 #define ENOCOMPATPROTO (ZMQ_HAUSNUMERO + 52)
161 #define ETERM (ZMQ_HAUSNUMERO + 53)
162 #define EMTHREAD (ZMQ_HAUSNUMERO + 54)
163 
164 /* This function retrieves the errno as it is known to 0MQ library. The goal */
165 /* of this function is to make the code 100% portable, including where 0MQ */
166 /* compiled with certain CRT library (on Windows) is linked to an */
167 /* application that uses different CRT library. */
168 ZMQ_EXPORT int zmq_errno (void);
169 
170 /* Resolves system errors and 0MQ errors to human-readable string. */
171 ZMQ_EXPORT const char *zmq_strerror (int errnum_);
172 
173 /* Run-time API version detection */
174 ZMQ_EXPORT void zmq_version (int *major_, int *minor_, int *patch_);
175 
176 /******************************************************************************/
177 /* 0MQ infrastructure (a.k.a. context) initialisation & termination. */
178 /******************************************************************************/
179 
180 /* Context options */
181 #define ZMQ_IO_THREADS 1
182 #define ZMQ_MAX_SOCKETS 2
183 #define ZMQ_SOCKET_LIMIT 3
184 #define ZMQ_THREAD_PRIORITY 3
185 #define ZMQ_THREAD_SCHED_POLICY 4
186 #define ZMQ_MAX_MSGSZ 5
187 #define ZMQ_MSG_T_SIZE 6
188 #define ZMQ_THREAD_AFFINITY_CPU_ADD 7
189 #define ZMQ_THREAD_AFFINITY_CPU_REMOVE 8
190 #define ZMQ_THREAD_NAME_PREFIX 9
191 
192 /* Default for new contexts */
193 #define ZMQ_IO_THREADS_DFLT 1
194 #define ZMQ_MAX_SOCKETS_DFLT 1023
195 #define ZMQ_THREAD_PRIORITY_DFLT -1
196 #define ZMQ_THREAD_SCHED_POLICY_DFLT -1
197 
198 ZMQ_EXPORT void *zmq_ctx_new (void);
199 ZMQ_EXPORT int zmq_ctx_term (void *context_);
201 ZMQ_EXPORT int zmq_ctx_set (void *context_, int option_, int optval_);
202 ZMQ_EXPORT int zmq_ctx_get (void *context_, int option_);
203 
204 /* Old (legacy) API */
205 ZMQ_EXPORT void *zmq_init (int io_threads_);
206 ZMQ_EXPORT int zmq_term (void *context_);
208 
209 
210 /******************************************************************************/
211 /* 0MQ message definition. */
212 /******************************************************************************/
213 
214 /* Some architectures, like sparc64 and some variants of aarch64, enforce pointer
215  * alignment and raise sigbus on violations. Make sure applications allocate
216  * zmq_msg_t on addresses aligned on a pointer-size boundary to avoid this issue.
217  */
218 typedef struct zmq_msg_t
219 {
220 #if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_ARM64))
221  __declspec(align (8)) unsigned char _[64];
222 #elif defined(_MSC_VER) \
223  && (defined(_M_IX86) || defined(_M_ARM_ARMV7VE) || defined(_M_ARM))
224  __declspec(align (4)) unsigned char _[64];
225 #elif defined(__GNUC__) || defined(__INTEL_COMPILER) \
226  || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x590) \
227  || (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x590)
228  unsigned char _[64] __attribute__ ((aligned (sizeof (void *))));
229 #else
230  unsigned char _[64];
231 #endif
232 } zmq_msg_t;
233 
234 typedef void (zmq_free_fn) (void *data_, void *hint_);
235 
236 ZMQ_EXPORT int zmq_msg_init (zmq_msg_t *msg_);
237 ZMQ_EXPORT int zmq_msg_init_size (zmq_msg_t *msg_, size_t size_);
239  zmq_msg_t *msg_, void *data_, size_t size_, zmq_free_fn *ffn_, void *hint_);
240 ZMQ_EXPORT int zmq_msg_send (zmq_msg_t *msg_, void *s_, int flags_);
241 ZMQ_EXPORT int zmq_msg_recv (zmq_msg_t *msg_, void *s_, int flags_);
243 ZMQ_EXPORT int zmq_msg_move (zmq_msg_t *dest_, zmq_msg_t *src_);
244 ZMQ_EXPORT int zmq_msg_copy (zmq_msg_t *dest_, zmq_msg_t *src_);
245 ZMQ_EXPORT void *zmq_msg_data (zmq_msg_t *msg_);
246 ZMQ_EXPORT size_t zmq_msg_size (const zmq_msg_t *msg_);
247 ZMQ_EXPORT int zmq_msg_more (const zmq_msg_t *msg_);
248 ZMQ_EXPORT int zmq_msg_get (const zmq_msg_t *msg_, int property_);
249 ZMQ_EXPORT int zmq_msg_set (zmq_msg_t *msg_, int property_, int optval_);
250 ZMQ_EXPORT const char *zmq_msg_gets (const zmq_msg_t *msg_,
251  const char *property_);
252 
253 /******************************************************************************/
254 /* 0MQ socket definition. */
255 /******************************************************************************/
256 
257 /* Socket types. */
258 #define ZMQ_PAIR 0
259 #define ZMQ_PUB 1
260 #define ZMQ_SUB 2
261 #define ZMQ_REQ 3
262 #define ZMQ_REP 4
263 #define ZMQ_DEALER 5
264 #define ZMQ_ROUTER 6
265 #define ZMQ_PULL 7
266 #define ZMQ_PUSH 8
267 #define ZMQ_XPUB 9
268 #define ZMQ_XSUB 10
269 #define ZMQ_STREAM 11
270 
271 /* Deprecated aliases */
272 #define ZMQ_XREQ ZMQ_DEALER
273 #define ZMQ_XREP ZMQ_ROUTER
274 
275 /* Socket options. */
276 #define ZMQ_AFFINITY 4
277 #define ZMQ_ROUTING_ID 5
278 #define ZMQ_SUBSCRIBE 6
279 #define ZMQ_UNSUBSCRIBE 7
280 #define ZMQ_RATE 8
281 #define ZMQ_RECOVERY_IVL 9
282 #define ZMQ_SNDBUF 11
283 #define ZMQ_RCVBUF 12
284 #define ZMQ_RCVMORE 13
285 #define ZMQ_FD 14
286 #define ZMQ_EVENTS 15
287 #define ZMQ_TYPE 16
288 #define ZMQ_LINGER 17
289 #define ZMQ_RECONNECT_IVL 18
290 #define ZMQ_BACKLOG 19
291 #define ZMQ_RECONNECT_IVL_MAX 21
292 #define ZMQ_MAXMSGSIZE 22
293 #define ZMQ_SNDHWM 23
294 #define ZMQ_RCVHWM 24
295 #define ZMQ_MULTICAST_HOPS 25
296 #define ZMQ_RCVTIMEO 27
297 #define ZMQ_SNDTIMEO 28
298 #define ZMQ_LAST_ENDPOINT 32
299 #define ZMQ_ROUTER_MANDATORY 33
300 #define ZMQ_TCP_KEEPALIVE 34
301 #define ZMQ_TCP_KEEPALIVE_CNT 35
302 #define ZMQ_TCP_KEEPALIVE_IDLE 36
303 #define ZMQ_TCP_KEEPALIVE_INTVL 37
304 #define ZMQ_IMMEDIATE 39
305 #define ZMQ_XPUB_VERBOSE 40
306 #define ZMQ_ROUTER_RAW 41
307 #define ZMQ_IPV6 42
308 #define ZMQ_MECHANISM 43
309 #define ZMQ_PLAIN_SERVER 44
310 #define ZMQ_PLAIN_USERNAME 45
311 #define ZMQ_PLAIN_PASSWORD 46
312 #define ZMQ_CURVE_SERVER 47
313 #define ZMQ_CURVE_PUBLICKEY 48
314 #define ZMQ_CURVE_SECRETKEY 49
315 #define ZMQ_CURVE_SERVERKEY 50
316 #define ZMQ_PROBE_ROUTER 51
317 #define ZMQ_REQ_CORRELATE 52
318 #define ZMQ_REQ_RELAXED 53
319 #define ZMQ_CONFLATE 54
320 #define ZMQ_ZAP_DOMAIN 55
321 #define ZMQ_ROUTER_HANDOVER 56
322 #define ZMQ_TOS 57
323 #define ZMQ_CONNECT_ROUTING_ID 61
324 #define ZMQ_GSSAPI_SERVER 62
325 #define ZMQ_GSSAPI_PRINCIPAL 63
326 #define ZMQ_GSSAPI_SERVICE_PRINCIPAL 64
327 #define ZMQ_GSSAPI_PLAINTEXT 65
328 #define ZMQ_HANDSHAKE_IVL 66
329 #define ZMQ_SOCKS_PROXY 68
330 #define ZMQ_XPUB_NODROP 69
331 #define ZMQ_BLOCKY 70
332 #define ZMQ_XPUB_MANUAL 71
333 #define ZMQ_XPUB_WELCOME_MSG 72
334 #define ZMQ_STREAM_NOTIFY 73
335 #define ZMQ_INVERT_MATCHING 74
336 #define ZMQ_HEARTBEAT_IVL 75
337 #define ZMQ_HEARTBEAT_TTL 76
338 #define ZMQ_HEARTBEAT_TIMEOUT 77
339 #define ZMQ_XPUB_VERBOSER 78
340 #define ZMQ_CONNECT_TIMEOUT 79
341 #define ZMQ_TCP_MAXRT 80
342 #define ZMQ_THREAD_SAFE 81
343 #define ZMQ_MULTICAST_MAXTPDU 84
344 #define ZMQ_VMCI_BUFFER_SIZE 85
345 #define ZMQ_VMCI_BUFFER_MIN_SIZE 86
346 #define ZMQ_VMCI_BUFFER_MAX_SIZE 87
347 #define ZMQ_VMCI_CONNECT_TIMEOUT 88
348 #define ZMQ_USE_FD 89
349 #define ZMQ_GSSAPI_PRINCIPAL_NAMETYPE 90
350 #define ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE 91
351 #define ZMQ_BINDTODEVICE 92
352 
353 /* Message options */
354 #define ZMQ_MORE 1
355 #define ZMQ_SHARED 3
356 
357 /* Send/recv options. */
358 #define ZMQ_DONTWAIT 1
359 #define ZMQ_SNDMORE 2
360 
361 /* Security mechanisms */
362 #define ZMQ_NULL 0
363 #define ZMQ_PLAIN 1
364 #define ZMQ_CURVE 2
365 #define ZMQ_GSSAPI 3
366 
367 /* RADIO-DISH protocol */
368 #define ZMQ_GROUP_MAX_LENGTH 255
369 
370 /* Deprecated options and aliases */
371 #define ZMQ_IDENTITY ZMQ_ROUTING_ID
372 #define ZMQ_CONNECT_RID ZMQ_CONNECT_ROUTING_ID
373 #define ZMQ_TCP_ACCEPT_FILTER 38
374 #define ZMQ_IPC_FILTER_PID 58
375 #define ZMQ_IPC_FILTER_UID 59
376 #define ZMQ_IPC_FILTER_GID 60
377 #define ZMQ_IPV4ONLY 31
378 #define ZMQ_DELAY_ATTACH_ON_CONNECT ZMQ_IMMEDIATE
379 #define ZMQ_NOBLOCK ZMQ_DONTWAIT
380 #define ZMQ_FAIL_UNROUTABLE ZMQ_ROUTER_MANDATORY
381 #define ZMQ_ROUTER_BEHAVIOR ZMQ_ROUTER_MANDATORY
382 
383 /* Deprecated Message options */
384 #define ZMQ_SRCFD 2
385 
386 /******************************************************************************/
387 /* GSSAPI definitions */
388 /******************************************************************************/
389 
390 /* GSSAPI principal name types */
391 #define ZMQ_GSSAPI_NT_HOSTBASED 0
392 #define ZMQ_GSSAPI_NT_USER_NAME 1
393 #define ZMQ_GSSAPI_NT_KRB5_PRINCIPAL 2
394 
395 /******************************************************************************/
396 /* 0MQ socket events and monitoring */
397 /******************************************************************************/
398 
399 /* Socket transport events (TCP, IPC and TIPC only) */
400 
401 #define ZMQ_EVENT_CONNECTED 0x0001
402 #define ZMQ_EVENT_CONNECT_DELAYED 0x0002
403 #define ZMQ_EVENT_CONNECT_RETRIED 0x0004
404 #define ZMQ_EVENT_LISTENING 0x0008
405 #define ZMQ_EVENT_BIND_FAILED 0x0010
406 #define ZMQ_EVENT_ACCEPTED 0x0020
407 #define ZMQ_EVENT_ACCEPT_FAILED 0x0040
408 #define ZMQ_EVENT_CLOSED 0x0080
409 #define ZMQ_EVENT_CLOSE_FAILED 0x0100
410 #define ZMQ_EVENT_DISCONNECTED 0x0200
411 #define ZMQ_EVENT_MONITOR_STOPPED 0x0400
412 #define ZMQ_EVENT_ALL 0xFFFF
413 /* Unspecified system errors during handshake. Event value is an errno. */
414 #define ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL 0x0800
415 /* Handshake complete successfully with successful authentication (if *
416  * enabled). Event value is unused. */
417 #define ZMQ_EVENT_HANDSHAKE_SUCCEEDED 0x1000
418 /* Protocol errors between ZMTP peers or between server and ZAP handler. *
419  * Event value is one of ZMQ_PROTOCOL_ERROR_* */
420 #define ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL 0x2000
421 /* Failed authentication requests. Event value is the numeric ZAP status *
422  * code, i.e. 300, 400 or 500. */
423 #define ZMQ_EVENT_HANDSHAKE_FAILED_AUTH 0x4000
424 #define ZMQ_PROTOCOL_ERROR_ZMTP_UNSPECIFIED 0x10000000
425 #define ZMQ_PROTOCOL_ERROR_ZMTP_UNEXPECTED_COMMAND 0x10000001
426 #define ZMQ_PROTOCOL_ERROR_ZMTP_INVALID_SEQUENCE 0x10000002
427 #define ZMQ_PROTOCOL_ERROR_ZMTP_KEY_EXCHANGE 0x10000003
428 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_UNSPECIFIED 0x10000011
429 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_MESSAGE 0x10000012
430 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_HELLO 0x10000013
431 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_INITIATE 0x10000014
432 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_ERROR 0x10000015
433 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_READY 0x10000016
434 #define ZMQ_PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_WELCOME 0x10000017
435 #define ZMQ_PROTOCOL_ERROR_ZMTP_INVALID_METADATA 0x10000018
436 // the following two may be due to erroneous configuration of a peer
437 #define ZMQ_PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC 0x11000001
438 #define ZMQ_PROTOCOL_ERROR_ZMTP_MECHANISM_MISMATCH 0x11000002
439 #define ZMQ_PROTOCOL_ERROR_ZAP_UNSPECIFIED 0x20000000
440 #define ZMQ_PROTOCOL_ERROR_ZAP_MALFORMED_REPLY 0x20000001
441 #define ZMQ_PROTOCOL_ERROR_ZAP_BAD_REQUEST_ID 0x20000002
442 #define ZMQ_PROTOCOL_ERROR_ZAP_BAD_VERSION 0x20000003
443 #define ZMQ_PROTOCOL_ERROR_ZAP_INVALID_STATUS_CODE 0x20000004
444 #define ZMQ_PROTOCOL_ERROR_ZAP_INVALID_METADATA 0x20000005
445 #define ZMQ_PROTOCOL_ERROR_WS_UNSPECIFIED 0x30000000
446 
447 ZMQ_EXPORT void *zmq_socket (void *, int type_);
448 ZMQ_EXPORT int zmq_close (void *s_);
449 ZMQ_EXPORT int
450 zmq_setsockopt (void *s_, int option_, const void *optval_, size_t optvallen_);
451 ZMQ_EXPORT int
452 zmq_getsockopt (void *s_, int option_, void *optval_, size_t *optvallen_);
453 ZMQ_EXPORT int zmq_bind (void *s_, const char *addr_);
454 ZMQ_EXPORT int zmq_connect (void *s_, const char *addr_);
455 ZMQ_EXPORT int zmq_unbind (void *s_, const char *addr_);
456 ZMQ_EXPORT int zmq_disconnect (void *s_, const char *addr_);
457 ZMQ_EXPORT int zmq_send (void *s_, const void *buf_, size_t len_, int flags_);
458 ZMQ_EXPORT int
459 zmq_send_const (void *s_, const void *buf_, size_t len_, int flags_);
460 ZMQ_EXPORT int zmq_recv (void *s_, void *buf_, size_t len_, int flags_);
461 ZMQ_EXPORT int zmq_socket_monitor (void *s_, const char *addr_, int events_);
462 
463 /******************************************************************************/
464 /* Hide socket fd type; this was before zmq_poller_event_t typedef below */
465 /******************************************************************************/
466 
467 #if defined _WIN32
468 // Windows uses a pointer-sized unsigned integer to store the socket fd.
469 #if defined _WIN64
470 typedef unsigned __int64 zmq_fd_t;
471 #else
472 typedef unsigned int zmq_fd_t;
473 #endif
474 #else
475 typedef int zmq_fd_t;
476 #endif
477 
478 /******************************************************************************/
479 /* Deprecated I/O multiplexing. Prefer using zmq_poller API */
480 /******************************************************************************/
481 
482 #define ZMQ_POLLIN 1
483 #define ZMQ_POLLOUT 2
484 #define ZMQ_POLLERR 4
485 #define ZMQ_POLLPRI 8
486 
487 typedef struct zmq_pollitem_t
488 {
489  void *socket;
491  short events;
492  short revents;
494 
495 #define ZMQ_POLLITEMS_DFLT 16
496 
497 ZMQ_EXPORT int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_);
498 
499 /******************************************************************************/
500 /* Message proxying */
501 /******************************************************************************/
502 
503 ZMQ_EXPORT int zmq_proxy (void *frontend_, void *backend_, void *capture_);
504 ZMQ_EXPORT int zmq_proxy_steerable (void *frontend_,
505  void *backend_,
506  void *capture_,
507  void *control_);
508 
509 /******************************************************************************/
510 /* Probe library capabilities */
511 /******************************************************************************/
512 
513 #define ZMQ_HAS_CAPABILITIES 1
514 ZMQ_EXPORT int zmq_has (const char *capability_);
515 
516 /* Deprecated aliases */
517 #define ZMQ_STREAMER 1
518 #define ZMQ_FORWARDER 2
519 #define ZMQ_QUEUE 3
520 
521 /* Deprecated methods */
522 ZMQ_EXPORT int zmq_device (int type_, void *frontend_, void *backend_);
523 ZMQ_EXPORT int zmq_sendmsg (void *s_, zmq_msg_t *msg_, int flags_);
524 ZMQ_EXPORT int zmq_recvmsg (void *s_, zmq_msg_t *msg_, int flags_);
525 struct iovec;
526 ZMQ_EXPORT int
527 zmq_sendiov (void *s_, struct iovec *iov_, size_t count_, int flags_);
528 ZMQ_EXPORT int
529 zmq_recviov (void *s_, struct iovec *iov_, size_t *count_, int flags_);
530 
531 /******************************************************************************/
532 /* Encryption functions */
533 /******************************************************************************/
534 
535 /* Encode data with Z85 encoding. Returns encoded data */
536 ZMQ_EXPORT char *
537 zmq_z85_encode (char *dest_, const uint8_t *data_, size_t size_);
538 
539 /* Decode data with Z85 encoding. Returns decoded data */
540 ZMQ_EXPORT uint8_t *zmq_z85_decode (uint8_t *dest_, const char *string_);
541 
542 /* Generate z85-encoded public and private keypair with libsodium. */
543 /* Returns 0 on success. */
544 ZMQ_EXPORT int zmq_curve_keypair (char *z85_public_key_, char *z85_secret_key_);
545 
546 /* Derive the z85-encoded public key from the z85-encoded secret key. */
547 /* Returns 0 on success. */
548 ZMQ_EXPORT int zmq_curve_public (char *z85_public_key_,
549  const char *z85_secret_key_);
550 
551 /******************************************************************************/
552 /* Atomic utility methods */
553 /******************************************************************************/
554 
560 ZMQ_EXPORT void zmq_atomic_counter_destroy (void **counter_p_);
561 
562 /******************************************************************************/
563 /* Scheduling timers */
564 /******************************************************************************/
565 
566 #define ZMQ_HAVE_TIMERS
567 
568 typedef void (zmq_timer_fn) (int timer_id, void *arg);
569 
570 ZMQ_EXPORT void *zmq_timers_new (void);
571 ZMQ_EXPORT int zmq_timers_destroy (void **timers_p);
572 ZMQ_EXPORT int
573 zmq_timers_add (void *timers, size_t interval, zmq_timer_fn handler, void *arg);
574 ZMQ_EXPORT int zmq_timers_cancel (void *timers, int timer_id);
575 ZMQ_EXPORT int
576 zmq_timers_set_interval (void *timers, int timer_id, size_t interval);
577 ZMQ_EXPORT int zmq_timers_reset (void *timers, int timer_id);
578 ZMQ_EXPORT long zmq_timers_timeout (void *timers);
579 ZMQ_EXPORT int zmq_timers_execute (void *timers);
580 
581 
582 /******************************************************************************/
583 /* These functions are not documented by man pages -- use at your own risk. */
584 /* If you need these to be part of the formal ZMQ API, then (a) write a man */
585 /* page, and (b) write a test case in tests. */
586 /******************************************************************************/
587 
588 /* Helper functions are used by perf tests so that they don't have to care */
589 /* about minutiae of time-related functions on different OS platforms. */
590 
591 /* Starts the stopwatch. Returns the handle to the watch. */
592 ZMQ_EXPORT void *zmq_stopwatch_start (void);
593 
594 /* Returns the number of microseconds elapsed since the stopwatch was */
595 /* started, but does not stop or deallocate the stopwatch. */
596 ZMQ_EXPORT unsigned long zmq_stopwatch_intermediate (void *watch_);
597 
598 /* Stops the stopwatch. Returns the number of microseconds elapsed since */
599 /* the stopwatch was started, and deallocates that watch. */
600 ZMQ_EXPORT unsigned long zmq_stopwatch_stop (void *watch_);
601 
602 /* Sleeps for specified number of seconds. */
603 ZMQ_EXPORT void zmq_sleep (int seconds_);
604 
605 typedef void (zmq_thread_fn) (void *);
606 
607 /* Start a thread. Returns a handle to the thread. */
608 ZMQ_EXPORT void *zmq_threadstart (zmq_thread_fn *func_, void *arg_);
609 
610 /* Wait for thread to complete then free up resources. */
611 ZMQ_EXPORT void zmq_threadclose (void *thread_);
612 
613 
614 /******************************************************************************/
615 /* These functions are DRAFT and disabled in stable releases, and subject to */
616 /* change at ANY time until declared stable. */
617 /******************************************************************************/
618 
619 #ifdef ZMQ_BUILD_DRAFT_API
620 
621 /* DRAFT Socket types. */
622 #define ZMQ_SERVER 12
623 #define ZMQ_CLIENT 13
624 #define ZMQ_RADIO 14
625 #define ZMQ_DISH 15
626 #define ZMQ_GATHER 16
627 #define ZMQ_SCATTER 17
628 #define ZMQ_DGRAM 18
629 #define ZMQ_PEER 19
630 #define ZMQ_CHANNEL 20
631 
632 /* DRAFT Socket options. */
633 #define ZMQ_ZAP_ENFORCE_DOMAIN 93
634 #define ZMQ_LOOPBACK_FASTPATH 94
635 #define ZMQ_METADATA 95
636 #define ZMQ_MULTICAST_LOOP 96
637 #define ZMQ_ROUTER_NOTIFY 97
638 #define ZMQ_XPUB_MANUAL_LAST_VALUE 98
639 #define ZMQ_SOCKS_USERNAME 99
640 #define ZMQ_SOCKS_PASSWORD 100
641 #define ZMQ_IN_BATCH_SIZE 101
642 #define ZMQ_OUT_BATCH_SIZE 102
643 #define ZMQ_WSS_KEY_PEM 103
644 #define ZMQ_WSS_CERT_PEM 104
645 #define ZMQ_WSS_TRUST_PEM 105
646 #define ZMQ_WSS_HOSTNAME 106
647 #define ZMQ_WSS_TRUST_SYSTEM 107
648 #define ZMQ_ONLY_FIRST_SUBSCRIBE 108
649 #define ZMQ_RECONNECT_STOP 109
650 #define ZMQ_HELLO_MSG 110
651 #define ZMQ_DISCONNECT_MSG 111
652 #define ZMQ_PRIORITY 112
653 #define ZMQ_BUSY_POLL 113
654 #define ZMQ_HICCUP_MSG 114
655 #define ZMQ_XSUB_VERBOSE_UNSUBSCRIBE 115
656 #define ZMQ_TOPICS_COUNT 116
657 #define ZMQ_NORM_MODE 117
658 #define ZMQ_NORM_UNICAST_NACK 118
659 #define ZMQ_NORM_BUFFER_SIZE 119
660 #define ZMQ_NORM_SEGMENT_SIZE 120
661 #define ZMQ_NORM_BLOCK_SIZE 121
662 #define ZMQ_NORM_NUM_PARITY 122
663 #define ZMQ_NORM_NUM_AUTOPARITY 123
664 #define ZMQ_NORM_PUSH 124
665 
666 /* DRAFT ZMQ_NORM_MODE options */
667 #define ZMQ_NORM_FIXED 0
668 #define ZMQ_NORM_CC 1
669 #define ZMQ_NORM_CCL 2
670 #define ZMQ_NORM_CCE 3
671 #define ZMQ_NORM_CCE_ECNONLY 4
672 
673 /* DRAFT ZMQ_RECONNECT_STOP options */
674 #define ZMQ_RECONNECT_STOP_CONN_REFUSED 0x1
675 #define ZMQ_RECONNECT_STOP_HANDSHAKE_FAILED 0x2
676 #define ZMQ_RECONNECT_STOP_AFTER_DISCONNECT 0x4
677 
678 /* DRAFT Context options */
679 #define ZMQ_ZERO_COPY_RECV 10
680 
681 /* DRAFT Context methods. */
683  int option_,
684  const void *optval_,
685  size_t optvallen_);
687  int option_,
688  void *optval_,
689  size_t *optvallen_);
690 
691 /* DRAFT Socket methods. */
692 ZMQ_EXPORT int zmq_join (void *s, const char *group);
693 ZMQ_EXPORT int zmq_leave (void *s, const char *group);
694 ZMQ_EXPORT uint32_t zmq_connect_peer (void *s_, const char *addr_);
695 
696 /* DRAFT Msg methods. */
697 ZMQ_EXPORT int zmq_msg_set_routing_id (zmq_msg_t *msg, uint32_t routing_id);
698 ZMQ_EXPORT uint32_t zmq_msg_routing_id (zmq_msg_t *msg);
699 ZMQ_EXPORT int zmq_msg_set_group (zmq_msg_t *msg, const char *group);
700 ZMQ_EXPORT const char *zmq_msg_group (zmq_msg_t *msg);
701 ZMQ_EXPORT int
702 zmq_msg_init_buffer (zmq_msg_t *msg_, const void *buf_, size_t size_);
703 
704 /* DRAFT Msg property names. */
705 #define ZMQ_MSG_PROPERTY_ROUTING_ID "Routing-Id"
706 #define ZMQ_MSG_PROPERTY_SOCKET_TYPE "Socket-Type"
707 #define ZMQ_MSG_PROPERTY_USER_ID "User-Id"
708 #define ZMQ_MSG_PROPERTY_PEER_ADDRESS "Peer-Address"
709 
710 /* Router notify options */
711 #define ZMQ_NOTIFY_CONNECT 1
712 #define ZMQ_NOTIFY_DISCONNECT 2
713 
714 /******************************************************************************/
715 /* Poller polling on sockets,fd and thread-safe sockets */
716 /******************************************************************************/
717 
718 #define ZMQ_HAVE_POLLER
719 
720 typedef struct zmq_poller_event_t
721 {
722  void *socket;
723  zmq_fd_t fd;
724  void *user_data;
725  short events;
727 
728 ZMQ_EXPORT void *zmq_poller_new (void);
729 ZMQ_EXPORT int zmq_poller_destroy (void **poller_p);
730 ZMQ_EXPORT int zmq_poller_size (void *poller);
731 ZMQ_EXPORT int
732 zmq_poller_add (void *poller, void *socket, void *user_data, short events);
733 ZMQ_EXPORT int zmq_poller_modify (void *poller, void *socket, short events);
734 ZMQ_EXPORT int zmq_poller_remove (void *poller, void *socket);
735 ZMQ_EXPORT int
736 zmq_poller_wait (void *poller, zmq_poller_event_t *event, long timeout);
737 ZMQ_EXPORT int zmq_poller_wait_all (void *poller,
738  zmq_poller_event_t *events,
739  int n_events,
740  long timeout);
741 ZMQ_EXPORT int zmq_poller_fd (void *poller, zmq_fd_t *fd);
742 
743 ZMQ_EXPORT int
744 zmq_poller_add_fd (void *poller, zmq_fd_t fd, void *user_data, short events);
745 ZMQ_EXPORT int zmq_poller_modify_fd (void *poller, zmq_fd_t fd, short events);
746 ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, zmq_fd_t fd);
747 
748 ZMQ_EXPORT int zmq_socket_get_peer_state (void *socket,
749  const void *routing_id,
750  size_t routing_id_size);
751 
752 /* DRAFT Socket monitoring events */
753 #define ZMQ_EVENT_PIPES_STATS 0x10000
754 
755 #define ZMQ_CURRENT_EVENT_VERSION 1
756 #define ZMQ_CURRENT_EVENT_VERSION_DRAFT 2
757 
758 #define ZMQ_EVENT_ALL_V1 ZMQ_EVENT_ALL
759 #define ZMQ_EVENT_ALL_V2 ZMQ_EVENT_ALL_V1 | ZMQ_EVENT_PIPES_STATS
760 
762  void *s_, const char *addr_, uint64_t events_, int event_version_, int type_);
764 
765 #if !defined _WIN32
766 ZMQ_EXPORT int zmq_ppoll (zmq_pollitem_t *items_,
767  int nitems_,
768  long timeout_,
769  const sigset_t *sigmask_);
770 #else
771 // Windows has no sigset_t
772 ZMQ_EXPORT int zmq_ppoll (zmq_pollitem_t *items_,
773  int nitems_,
774  long timeout_,
775  const void *sigmask_);
776 #endif
777 
778 #endif // ZMQ_BUILD_DRAFT_API
779 
780 
781 #undef ZMQ_EXPORT
782 
783 #ifdef __cplusplus
784 }
785 #endif
786 
787 #endif
zmq_strerror
const ZMQ_EXPORT char * zmq_strerror(int errnum_)
Definition: zmq.cpp:96
zmq_ctx_set
ZMQ_EXPORT int zmq_ctx_set(void *context_, int option_, int optval_)
Definition: zmq.cpp:156
context_
MockGeneratorContext context_
Definition: csharp_bootstrap_unittest.cc:125
zmq_msg_group
const char * zmq_msg_group(zmq_msg_t *msg_)
Definition: zmq.cpp:704
zmq_ctx_shutdown
ZMQ_EXPORT int zmq_ctx_shutdown(void *context_)
Definition: zmq.cpp:147
data_
StringPiece data_
Definition: bytestream_unittest.cc:60
zmq_version
ZMQ_EXPORT void zmq_version(int *major_, int *minor_, int *patch_)
Definition: zmq.cpp:88
zmq_timers_add
ZMQ_EXPORT int zmq_timers_add(void *timers, size_t interval, zmq_timer_fn handler, void *arg)
Definition: zmq.cpp:1659
zmq_z85_decode
ZMQ_EXPORT uint8_t * zmq_z85_decode(uint8_t *dest_, const char *string_)
Definition: zmq_utils.cpp:135
zmq_msg_set_group
int zmq_msg_set_group(zmq_msg_t *msg_, const char *group_)
Definition: zmq.cpp:699
zmq_pollitem_t::fd
zmq_fd_t fd
Definition: zmq.h:490
zmq_threadstart
ZMQ_EXPORT void * zmq_threadstart(zmq_thread_fn *func_, void *arg_)
Definition: zmq_utils.cpp:54
zmq_pollitem_t::events
short events
Definition: zmq.h:491
zmq_errno
ZMQ_EXPORT int zmq_errno(void)
Definition: zmq.cpp:101
zmq_msg_move
ZMQ_EXPORT int zmq_msg_move(zmq_msg_t *dest_, zmq_msg_t *src_)
Definition: zmq.cpp:630
zmq_unbind
ZMQ_EXPORT int zmq_unbind(void *s_, const char *addr_)
Definition: zmq.cpp:337
zmq_socket_monitor
ZMQ_EXPORT int zmq_socket_monitor(void *s_, const char *addr_, int events_)
Definition: zmq.cpp:278
zmq_connect_peer
uint32_t zmq_connect_peer(void *s_, const char *addr_)
Definition: zmq.cpp:315
zmq_msg_send
ZMQ_EXPORT int zmq_msg_send(zmq_msg_t *msg_, void *s_, int flags_)
Definition: zmq.cpp:609
zmq_poll
ZMQ_EXPORT int zmq_poll(zmq_pollitem_t *items_, int nitems_, long timeout_)
Definition: zmq.cpp:827
zmq_ctx_new
ZMQ_EXPORT void * zmq_ctx_new(void)
Definition: zmq.cpp:109
zmq_msg_get
ZMQ_EXPORT int zmq_msg_get(const zmq_msg_t *msg_, int property_)
Definition: zmq.cpp:657
zmq_has
ZMQ_EXPORT int zmq_has(const char *capability_)
Definition: zmq.cpp:1763
zmq_timers_cancel
ZMQ_EXPORT int zmq_timers_cancel(void *timers, int timer_id)
Definition: zmq.cpp:1673
zmq_timers_execute
ZMQ_EXPORT int zmq_timers_execute(void *timers)
Definition: zmq.cpp:1714
zmq_poller_remove_fd
int zmq_poller_remove_fd(void *poller_, zmq::fd_t fd_)
Definition: zmq.cpp:1568
zmq_poller_event_t
struct zmq_poller_event_t zmq_poller_event_t
zmq_sendmsg
ZMQ_EXPORT int zmq_sendmsg(void *s_, zmq_msg_t *msg_, int flags_)
Definition: zmq.cpp:372
zmq_pollitem_t
struct zmq_pollitem_t zmq_pollitem_t
zmq_poller_fd
int zmq_poller_fd(void *poller_, zmq_fd_t *fd_)
Definition: zmq.cpp:1615
zmq_timers_destroy
ZMQ_EXPORT int zmq_timers_destroy(void **timers_p)
Definition: zmq.cpp:1647
zmq_ctx_get_ext
int zmq_ctx_get_ext(void *ctx_, int option_, void *optval_, size_t *optvallen_)
Definition: zmq.cpp:183
zmq_pollitem_t
Definition: zmq.h:487
zmq_msg_init_buffer
int zmq_msg_init_buffer(zmq_msg_t *msg_, const void *buf_, size_t size_)
Definition: zmq.cpp:597
zmq_timers_new
ZMQ_EXPORT void * zmq_timers_new(void)
Definition: zmq.cpp:1640
zmq_thread_fn
void() zmq_thread_fn(void *)
Definition: zmq.h:605
zmq_msg_set
ZMQ_EXPORT int zmq_msg_set(zmq_msg_t *msg_, int property_, int optval_)
Definition: zmq.cpp:681
zmq_ctx_destroy
ZMQ_EXPORT int zmq_ctx_destroy(void *context_)
Definition: zmq.cpp:212
zmq_msg_data
ZMQ_EXPORT void * zmq_msg_data(zmq_msg_t *msg_)
Definition: zmq.cpp:642
zmq_connect
ZMQ_EXPORT int zmq_connect(void *s_, const char *addr_)
Definition: zmq.cpp:307
zmq_poller_modify_fd
int zmq_poller_modify_fd(void *poller_, zmq::fd_t fd_, short events_)
Definition: zmq.cpp:1548
zmq_curve_public
ZMQ_EXPORT int zmq_curve_public(char *z85_public_key_, const char *z85_secret_key_)
Definition: zmq_utils.cpp:222
zmq_socket_get_peer_state
int zmq_socket_get_peer_state(void *s_, const void *routing_id_, size_t routing_id_size_)
Definition: zmq.cpp:1627
zmq_msg_init_data
ZMQ_EXPORT int zmq_msg_init_data(zmq_msg_t *msg_, void *data_, size_t size_, zmq_free_fn *ffn_, void *hint_)
Definition: zmq.cpp:602
zmq_msg_size
ZMQ_EXPORT size_t zmq_msg_size(const zmq_msg_t *msg_)
Definition: zmq.cpp:647
zmq_poller_event_t::events
short events
Definition: zmq_draft.h:119
zmq_ppoll
int zmq_ppoll(zmq_pollitem_t *items_, int nitems_, long timeout_, const sigset_t *sigmask_)
Definition: zmq.cpp:1355
zmq_stopwatch_intermediate
ZMQ_EXPORT unsigned long zmq_stopwatch_intermediate(void *watch_)
Definition: zmq_utils.cpp:40
zmq_atomic_counter_inc
ZMQ_EXPORT int zmq_atomic_counter_inc(void *counter_)
Definition: zmq_utils.cpp:271
zmq_msg_gets
const ZMQ_EXPORT char * zmq_msg_gets(const zmq_msg_t *msg_, const char *property_)
Definition: zmq.cpp:711
zmq_poller_event_t::socket
void * socket
Definition: zmq_draft.h:116
zmq_poller_modify
int zmq_poller_modify(void *poller_, void *s_, short events_)
Definition: zmq.cpp:1535
zmq_pollitem_t::socket
void * socket
Definition: zmq.h:489
zmq_send_const
ZMQ_EXPORT int zmq_send_const(void *s_, const void *buf_, size_t len_, int flags_)
Definition: zmq.cpp:400
zmq_z85_encode
ZMQ_EXPORT char * zmq_z85_encode(char *dest_, const uint8_t *data_, size_t size_)
Definition: zmq_utils.cpp:101
zmq_setsockopt
ZMQ_EXPORT int zmq_setsockopt(void *s_, int option_, const void *optval_, size_t optvallen_)
Definition: zmq.cpp:250
zmq_msg_t
struct zmq_msg_t zmq_msg_t
zmq_device
ZMQ_EXPORT int zmq_device(int type_, void *frontend_, void *backend_)
Definition: zmq.cpp:1755
zmq_threadclose
ZMQ_EXPORT void zmq_threadclose(void *thread_)
Definition: zmq_utils.cpp:62
zmq_atomic_counter_new
ZMQ_EXPORT void * zmq_atomic_counter_new(void)
Definition: zmq_utils.cpp:255
zmq_disconnect
ZMQ_EXPORT int zmq_disconnect(void *s_, const char *addr_)
Definition: zmq.cpp:345
event
struct _cl_event * event
Definition: glcorearb.h:4163
zmq_poller_event_t
Definition: zmq_draft.h:114
zmq_poller_new
void * zmq_poller_new(void)
Definition: zmq.cpp:1429
zmq_timer_fn
void() zmq_timer_fn(int timer_id, void *arg)
Definition: zmq.h:568
zmq_stopwatch_start
ZMQ_EXPORT void * zmq_stopwatch_start(void)
Definition: zmq_utils.cpp:32
zmq_sendiov
ZMQ_EXPORT int zmq_sendiov(void *s_, struct iovec *iov_, size_t count_, int flags_)
Definition: zmq.cpp:432
zmq_msg_t
Definition: zmq.h:218
s_
std::string s_
Definition: gmock-matchers_test.cc:4128
zmq_poller_wait
int zmq_poller_wait(void *poller_, zmq_poller_event_t *event_, long timeout_)
Definition: zmq.cpp:1576
zmq_ctx_set_ext
int zmq_ctx_set_ext(void *ctx_, int option_, const void *optval_, size_t optvallen_)
Definition: zmq.cpp:161
zmq_pollitem_t::revents
short revents
Definition: zmq.h:492
zmq_bind
ZMQ_EXPORT int zmq_bind(void *s_, const char *addr_)
Definition: zmq.cpp:299
zmq_msg_t::_
unsigned char _[64]
Definition: zmq.h:230
zmq_socket_monitor_versioned
int zmq_socket_monitor_versioned(void *s_, const char *addr_, uint64_t events_, int event_version_, int type_)
Definition: zmq.cpp:269
zmq_msg_recv
ZMQ_EXPORT int zmq_msg_recv(zmq_msg_t *msg_, void *s_, int flags_)
Definition: zmq.cpp:617
timeout
GLbitfield GLuint64 timeout
Definition: glcorearb.h:3588
zmq_socket
ZMQ_EXPORT void * zmq_socket(void *, int type_)
Definition: zmq.cpp:230
zmq_fd_t
int zmq_fd_t
Definition: zmq.h:475
zmq_atomic_counter_set
ZMQ_EXPORT void zmq_atomic_counter_set(void *counter_, int value_)
Definition: zmq_utils.cpp:264
zmq_timers_reset
ZMQ_EXPORT int zmq_timers_reset(void *timers, int timer_id)
Definition: zmq.cpp:1694
zmq_leave
int zmq_leave(void *s_, const char *group_)
Definition: zmq.cpp:291
zmq_msg_init
ZMQ_EXPORT int zmq_msg_init(zmq_msg_t *msg_)
Definition: zmq.cpp:587
void
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
zmq_close
ZMQ_EXPORT int zmq_close(void *s_)
Definition: zmq.cpp:241
zmq_free_fn
void() zmq_free_fn(void *data_, void *hint_)
Definition: zmq.h:234
zmq_msg_set_routing_id
int zmq_msg_set_routing_id(zmq_msg_t *msg_, uint32_t routing_id_)
Definition: zmq.cpp:688
zmq_join
int zmq_join(void *s_, const char *group_)
Definition: zmq.cpp:283
zmq_socket_monitor_pipes_stats
int zmq_socket_monitor_pipes_stats(void *s_)
Definition: zmq.cpp:1809
zmq_curve_keypair
ZMQ_EXPORT int zmq_curve_keypair(char *z85_public_key_, char *z85_secret_key_)
Definition: zmq_utils.cpp:190
value_
int value_
Definition: gmock-matchers_test.cc:571
iovec
Definition: zmq.cpp:45
zmq_ctx_get
ZMQ_EXPORT int zmq_ctx_get(void *context_, int option_)
Definition: zmq.cpp:174
zmq_recvmsg
ZMQ_EXPORT int zmq_recvmsg(void *s_, zmq_msg_t *msg_, int flags_)
Definition: zmq.cpp:481
zmq_poller_size
int zmq_poller_size(void *poller_)
Definition: zmq.cpp:1501
zmq_recviov
ZMQ_EXPORT int zmq_recviov(void *s_, struct iovec *iov_, size_t *count_, int flags_)
Definition: zmq.cpp:535
zmq_recv
ZMQ_EXPORT int zmq_recv(void *s_, void *buf_, size_t len_, int flags_)
Definition: zmq.cpp:487
zmq_proxy_steerable
ZMQ_EXPORT int zmq_proxy_steerable(void *frontend_, void *backend_, void *capture_, void *control_)
Definition: zmq.cpp:1738
zmq_poller_add
int zmq_poller_add(void *poller_, void *s_, void *user_data_, short events_)
Definition: zmq.cpp:1509
zmq_proxy
ZMQ_EXPORT int zmq_proxy(void *frontend_, void *backend_, void *capture_)
Definition: zmq.cpp:1726
zmq_atomic_counter_value
ZMQ_EXPORT int zmq_atomic_counter_value(void *counter_)
Definition: zmq_utils.cpp:286
zmq_msg_init_size
ZMQ_EXPORT int zmq_msg_init_size(zmq_msg_t *msg_, size_t size_)
Definition: zmq.cpp:592
zmq_msg_copy
ZMQ_EXPORT int zmq_msg_copy(zmq_msg_t *dest_, zmq_msg_t *src_)
Definition: zmq.cpp:636
zmq_init
ZMQ_EXPORT void * zmq_init(int io_threads_)
Definition: zmq.cpp:196
zmq_atomic_counter_destroy
ZMQ_EXPORT void zmq_atomic_counter_destroy(void **counter_p_)
Definition: zmq_utils.cpp:293
zmq_timers_set_interval
ZMQ_EXPORT int zmq_timers_set_interval(void *timers, int timer_id, size_t interval)
Definition: zmq.cpp:1683
handler
void * handler
Definition: test_security_curve.cpp:27
zmq_msg_routing_id
uint32_t zmq_msg_routing_id(zmq_msg_t *msg_)
Definition: zmq.cpp:694
zmq_sleep
ZMQ_EXPORT void zmq_sleep(int seconds_)
Definition: zmq_utils.cpp:23
zmq_timers_timeout
ZMQ_EXPORT long zmq_timers_timeout(void *timers)
Definition: zmq.cpp:1704
zmq_poller_remove
int zmq_poller_remove(void *poller_, void *s_)
Definition: zmq.cpp:1558
ZMQ_EXPORT
#define ZMQ_EXPORT
Definition: zmq.h:52
zmq_ctx_term
ZMQ_EXPORT int zmq_ctx_term(void *context_)
Definition: zmq.cpp:128
zmq_poller_add_fd
int zmq_poller_add_fd(void *poller_, zmq::fd_t fd_, void *user_data_, short events_)
Definition: zmq.cpp:1521
zmq_term
ZMQ_EXPORT int zmq_term(void *context_)
Definition: zmq.cpp:207
zmq_send
ZMQ_EXPORT int zmq_send(void *s_, const void *buf_, size_t len_, int flags_)
Definition: zmq.cpp:377
zmq_poller_event_t::fd
zmq_fd_t fd
Definition: zmq_draft.h:117
zmq_msg_more
ZMQ_EXPORT int zmq_msg_more(const zmq_msg_t *msg_)
Definition: zmq.cpp:652
group
static uint32_t * group(tarjan *t, upb_refcounted *r)
Definition: ruby/ext/google/protobuf_c/upb.c:5943
zmq_msg_close
ZMQ_EXPORT int zmq_msg_close(zmq_msg_t *msg_)
Definition: zmq.cpp:625
zmq_poller_event_t::user_data
void * user_data
Definition: zmq_draft.h:118
zmq_poller_destroy
int zmq_poller_destroy(void **poller_p_)
Definition: zmq.cpp:1438
zmq_getsockopt
ZMQ_EXPORT int zmq_getsockopt(void *s_, int option_, void *optval_, size_t *optvallen_)
Definition: zmq.cpp:261
zmq_atomic_counter_dec
ZMQ_EXPORT int zmq_atomic_counter_dec(void *counter_)
Definition: zmq_utils.cpp:279
zmq_poller_wait_all
int zmq_poller_wait_all(void *poller_, zmq_poller_event_t *events_, int n_events_, long timeout_)
Definition: zmq.cpp:1590
zmq_stopwatch_stop
ZMQ_EXPORT unsigned long zmq_stopwatch_stop(void *watch_)
Definition: zmq_utils.cpp:47
counter_
int counter_
Definition: tokenizer_unittest.cc:150


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:07:02