czmq-ffi-gen 0.9.1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/AUTHORS +1 -0
- data/CHANGES.md +88 -0
- data/Gemfile +2 -0
- data/LICENSE +14 -0
- data/README.md +112 -0
- data/lib/czmq-ffi-gen.rb +7 -0
- data/lib/czmq-ffi-gen/czmq/ffi.rb +1210 -0
- data/lib/czmq-ffi-gen/czmq/ffi/version.rb +15 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zactor.rb +186 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zarmour.rb +286 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zcert.rb +307 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zcertstore.rb +222 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zchunk.rb +388 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zclock.rb +140 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zconfig.rb +442 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zdigest.rb +156 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zdir.rb +283 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zdir_patch.rb +194 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zfile.rb +353 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zframe.rb +359 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zhash.rb +416 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zhashx.rb +659 -0
- data/lib/czmq-ffi-gen/czmq/ffi/ziflist.rb +189 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zlist.rb +365 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zlistx.rb +478 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zloop.rb +396 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zmsg.rb +515 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zpoller.rb +194 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zproc.rb +294 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zsock.rb +3479 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zstr.rb +203 -0
- data/lib/czmq-ffi-gen/czmq/ffi/ztimerset.rb +203 -0
- data/lib/czmq-ffi-gen/czmq/ffi/ztrie.rb +221 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zuuid.rb +227 -0
- data/lib/czmq-ffi-gen/errors.rb +12 -0
- data/lib/czmq-ffi-gen/gem_version.rb +5 -0
- data/lib/czmq-ffi-gen/legacy.rb +16 -0
- data/lib/czmq-ffi-gen/libzmq.rb +18 -0
- data/lib/czmq-ffi-gen/signals.rb +27 -0
- data/lib/czmq-ffi-gen/vendor.rb +5 -0
- data/lib/czmq-ffi-gen/versions.rb +19 -0
- data/vendor/local/bin/inproc_lat.exe +0 -0
- data/vendor/local/bin/inproc_thr.exe +0 -0
- data/vendor/local/bin/libczmq.dll +0 -0
- data/vendor/local/bin/libgcc_s_sjlj-1.dll +0 -0
- data/vendor/local/bin/libstdc++-6.dll +0 -0
- data/vendor/local/bin/libzmq.dll +0 -0
- data/vendor/local/bin/local_lat.exe +0 -0
- data/vendor/local/bin/local_thr.exe +0 -0
- data/vendor/local/bin/remote_lat.exe +0 -0
- data/vendor/local/bin/remote_thr.exe +0 -0
- data/vendor/local/include/czmq.h +31 -0
- data/vendor/local/include/czmq_library.h +199 -0
- data/vendor/local/include/czmq_prelude.h +641 -0
- data/vendor/local/include/readme.txt +83 -0
- data/vendor/local/include/sha1.h +76 -0
- data/vendor/local/include/sha1.inc_c +335 -0
- data/vendor/local/include/slre.h +92 -0
- data/vendor/local/include/slre.inc_c +660 -0
- data/vendor/local/include/zactor.h +76 -0
- data/vendor/local/include/zarmour.h +114 -0
- data/vendor/local/include/zauth.h +100 -0
- data/vendor/local/include/zauth_v2.h +88 -0
- data/vendor/local/include/zbeacon.h +86 -0
- data/vendor/local/include/zbeacon_v2.h +75 -0
- data/vendor/local/include/zcert.h +136 -0
- data/vendor/local/include/zcertstore.h +100 -0
- data/vendor/local/include/zchunk.h +163 -0
- data/vendor/local/include/zclock.h +73 -0
- data/vendor/local/include/zconfig.h +185 -0
- data/vendor/local/include/zctx.h +107 -0
- data/vendor/local/include/zdigest.h +65 -0
- data/vendor/local/include/zdir.h +149 -0
- data/vendor/local/include/zdir_patch.h +82 -0
- data/vendor/local/include/zfile.h +177 -0
- data/vendor/local/include/zframe.h +176 -0
- data/vendor/local/include/zgossip.h +95 -0
- data/vendor/local/include/zgossip_engine.inc +927 -0
- data/vendor/local/include/zgossip_msg.h +129 -0
- data/vendor/local/include/zhash.h +195 -0
- data/vendor/local/include/zhash_primes.inc +329 -0
- data/vendor/local/include/zhashx.h +298 -0
- data/vendor/local/include/ziflist.h +77 -0
- data/vendor/local/include/zlist.h +158 -0
- data/vendor/local/include/zlistx.h +205 -0
- data/vendor/local/include/zloop.h +168 -0
- data/vendor/local/include/zmonitor.h +73 -0
- data/vendor/local/include/zmonitor_v2.h +56 -0
- data/vendor/local/include/zmq.h +617 -0
- data/vendor/local/include/zmq_utils.h +48 -0
- data/vendor/local/include/zmsg.h +280 -0
- data/vendor/local/include/zmutex.h +55 -0
- data/vendor/local/include/zpoller.h +92 -0
- data/vendor/local/include/zproc.h +168 -0
- data/vendor/local/include/zproxy.h +111 -0
- data/vendor/local/include/zproxy_v2.h +62 -0
- data/vendor/local/include/zrex.h +82 -0
- data/vendor/local/include/zsock.h +912 -0
- data/vendor/local/include/zsock_option.inc +4126 -0
- data/vendor/local/include/zsocket.h +110 -0
- data/vendor/local/include/zsockopt.h +256 -0
- data/vendor/local/include/zstr.h +110 -0
- data/vendor/local/include/zsys.h +386 -0
- data/vendor/local/include/zthread.h +50 -0
- data/vendor/local/include/ztimerset.h +90 -0
- data/vendor/local/include/ztrie.h +106 -0
- data/vendor/local/include/zuuid.h +96 -0
- data/vendor/local/lib/libczmq.dll.a +0 -0
- data/vendor/local/lib/liblibzmq.dll.a +0 -0
- data/vendor/local/lib/libzmq-static.a +0 -0
- data/vendor/local/lib/pkgconfig/libczmq.pc +23 -0
- data/vendor/local/lib/pkgconfig/libzmq.pc +11 -0
- data/vendor/local/share/zmq/AUTHORS.txt +147 -0
- data/vendor/local/share/zmq/COPYING.LESSER.txt +181 -0
- data/vendor/local/share/zmq/COPYING.txt +674 -0
- data/vendor/local/share/zmq/NEWS.txt +978 -0
- metadata +230 -0
@@ -0,0 +1,386 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zsys - system-level methods
|
3
|
+
|
4
|
+
Copyright (c) the Contributors as noted in the AUTHORS file.
|
5
|
+
This file is part of CZMQ, the high-level C binding for 0MQ:
|
6
|
+
http://czmq.zeromq.org.
|
7
|
+
|
8
|
+
This Source Code Form is subject to the terms of the Mozilla Public
|
9
|
+
License, v. 2.0. If a copy of the MPL was not distributed with this
|
10
|
+
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
11
|
+
=========================================================================
|
12
|
+
*/
|
13
|
+
|
14
|
+
#ifndef __ZSYS_H_INCLUDED__
|
15
|
+
#define __ZSYS_H_INCLUDED__
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
// @interface
|
22
|
+
#define UDP_FRAME_MAX 255 // Max size of UDP frame
|
23
|
+
|
24
|
+
// Callback for interrupt signal handler
|
25
|
+
typedef void (zsys_handler_fn) (int signal_value);
|
26
|
+
|
27
|
+
// Initialize CZMQ zsys layer; this happens automatically when you create
|
28
|
+
// a socket or an actor; however this call lets you force initialization
|
29
|
+
// earlier, so e.g. logging is properly set-up before you start working.
|
30
|
+
// Not threadsafe, so call only from main thread. Safe to call multiple
|
31
|
+
// times. Returns global CZMQ context.
|
32
|
+
CZMQ_EXPORT void *
|
33
|
+
zsys_init (void);
|
34
|
+
|
35
|
+
// Optionally shut down the CZMQ zsys layer; this normally happens automatically
|
36
|
+
// when the process exits; however this call lets you force a shutdown
|
37
|
+
// earlier, avoiding any potential problems with atexit() ordering, especially
|
38
|
+
// with Windows dlls.
|
39
|
+
CZMQ_EXPORT void
|
40
|
+
zsys_shutdown (void);
|
41
|
+
|
42
|
+
// Get a new ZMQ socket, automagically creating a ZMQ context if this is
|
43
|
+
// the first time. Caller is responsible for destroying the ZMQ socket
|
44
|
+
// before process exits, to avoid a ZMQ deadlock. Note: you should not use
|
45
|
+
// this method in CZMQ apps, use zsock_new() instead.
|
46
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
47
|
+
CZMQ_EXPORT void *
|
48
|
+
zsys_socket (int type, const char *filename, size_t line_nbr);
|
49
|
+
|
50
|
+
// Destroy/close a ZMQ socket. You should call this for every socket you
|
51
|
+
// create using zsys_socket().
|
52
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
53
|
+
CZMQ_EXPORT int
|
54
|
+
zsys_close (void *handle, const char *filename, size_t line_nbr);
|
55
|
+
|
56
|
+
// Return ZMQ socket name for socket type
|
57
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
58
|
+
CZMQ_EXPORT char *
|
59
|
+
zsys_sockname (int socktype);
|
60
|
+
|
61
|
+
// Create a pipe, which consists of two PAIR sockets connected over inproc.
|
62
|
+
// The pipe is configured to use the zsys_pipehwm setting. Returns the
|
63
|
+
// frontend socket successful, NULL if failed.
|
64
|
+
CZMQ_EXPORT zsock_t *
|
65
|
+
zsys_create_pipe (zsock_t **backend_p);
|
66
|
+
|
67
|
+
// Set interrupt handler; this saves the default handlers so that a
|
68
|
+
// zsys_handler_reset () can restore them. If you call this multiple times
|
69
|
+
// then the last handler will take affect. If handler_fn is NULL, disables
|
70
|
+
// default SIGINT/SIGTERM handling in CZMQ.
|
71
|
+
CZMQ_EXPORT void
|
72
|
+
zsys_handler_set (zsys_handler_fn *handler_fn);
|
73
|
+
|
74
|
+
// Reset interrupt handler, call this at exit if needed
|
75
|
+
CZMQ_EXPORT void
|
76
|
+
zsys_handler_reset (void);
|
77
|
+
|
78
|
+
// Set default interrupt handler, so Ctrl-C or SIGTERM will set
|
79
|
+
// zsys_interrupted. Idempotent; safe to call multiple times.
|
80
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
81
|
+
CZMQ_EXPORT void
|
82
|
+
zsys_catch_interrupts (void);
|
83
|
+
|
84
|
+
// Return 1 if file exists, else zero
|
85
|
+
CZMQ_EXPORT bool
|
86
|
+
zsys_file_exists (const char *filename);
|
87
|
+
|
88
|
+
// Return size of file, or -1 if not found
|
89
|
+
CZMQ_EXPORT ssize_t
|
90
|
+
zsys_file_size (const char *filename);
|
91
|
+
|
92
|
+
// Return file modification time. Returns 0 if the file does not exist.
|
93
|
+
CZMQ_EXPORT time_t
|
94
|
+
zsys_file_modified (const char *filename);
|
95
|
+
|
96
|
+
// Return file mode; provides at least support for the POSIX S_ISREG(m)
|
97
|
+
// and S_ISDIR(m) macros and the S_IRUSR and S_IWUSR bits, on all boxes.
|
98
|
+
// Returns a mode_t cast to int, or -1 in case of error.
|
99
|
+
CZMQ_EXPORT int
|
100
|
+
zsys_file_mode (const char *filename);
|
101
|
+
|
102
|
+
// Delete file. Does not complain if the file is absent
|
103
|
+
CZMQ_EXPORT int
|
104
|
+
zsys_file_delete (const char *filename);
|
105
|
+
|
106
|
+
// Check if file is 'stable'
|
107
|
+
CZMQ_EXPORT bool
|
108
|
+
zsys_file_stable (const char *filename);
|
109
|
+
|
110
|
+
// Create a file path if it doesn't exist. The file path is treated as a
|
111
|
+
// printf format.
|
112
|
+
CZMQ_EXPORT int
|
113
|
+
zsys_dir_create (const char *pathname, ...);
|
114
|
+
|
115
|
+
// Remove a file path if empty; the pathname is treated as printf format.
|
116
|
+
CZMQ_EXPORT int
|
117
|
+
zsys_dir_delete (const char *pathname, ...);
|
118
|
+
|
119
|
+
// Move to a specified working directory. Returns 0 if OK, -1 if this failed.
|
120
|
+
CZMQ_EXPORT int
|
121
|
+
zsys_dir_change (const char *pathname);
|
122
|
+
|
123
|
+
// Set private file creation mode; all files created from here will be
|
124
|
+
// readable/writable by the owner only.
|
125
|
+
CZMQ_EXPORT void
|
126
|
+
zsys_file_mode_private (void);
|
127
|
+
|
128
|
+
// Reset default file creation mode; all files created from here will use
|
129
|
+
// process file mode defaults.
|
130
|
+
CZMQ_EXPORT void
|
131
|
+
zsys_file_mode_default (void);
|
132
|
+
|
133
|
+
// Return the CZMQ version for run-time API detection; returns version
|
134
|
+
// number into provided fields, providing reference isn't null in each case.
|
135
|
+
CZMQ_EXPORT void
|
136
|
+
zsys_version (int *major, int *minor, int *patch);
|
137
|
+
|
138
|
+
// Format a string using printf formatting, returning a freshly allocated
|
139
|
+
// buffer. If there was insufficient memory, returns NULL. Free the returned
|
140
|
+
// string using zstr_free().
|
141
|
+
CZMQ_EXPORT char *
|
142
|
+
zsys_sprintf (const char *format, ...);
|
143
|
+
|
144
|
+
// Format a string with a va_list argument, returning a freshly allocated
|
145
|
+
// buffer. If there was insufficient memory, returns NULL. Free the returned
|
146
|
+
// string using zstr_free().
|
147
|
+
CZMQ_EXPORT char *
|
148
|
+
zsys_vprintf (const char *format, va_list argptr);
|
149
|
+
|
150
|
+
// Create UDP beacon socket; if the routable option is true, uses
|
151
|
+
// multicast (not yet implemented), else uses broadcast. This method
|
152
|
+
// and related ones might _eventually_ be moved to a zudp class.
|
153
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
154
|
+
CZMQ_EXPORT SOCKET
|
155
|
+
zsys_udp_new (bool routable);
|
156
|
+
|
157
|
+
// Close a UDP socket
|
158
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
159
|
+
CZMQ_EXPORT int
|
160
|
+
zsys_udp_close (SOCKET handle);
|
161
|
+
|
162
|
+
// Send zframe to UDP socket, return -1 if sending failed due to
|
163
|
+
// interface having disappeared (happens easily with WiFi)
|
164
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
165
|
+
CZMQ_EXPORT int
|
166
|
+
zsys_udp_send (SOCKET udpsock, zframe_t *frame, inaddr_t *address, int addrlen);
|
167
|
+
|
168
|
+
// Receive zframe from UDP socket, and set address of peer that sent it
|
169
|
+
// The peername must be a char [INET_ADDRSTRLEN] array.
|
170
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
171
|
+
CZMQ_EXPORT zframe_t *
|
172
|
+
zsys_udp_recv (SOCKET udpsock, char *peername, int peerlen);
|
173
|
+
|
174
|
+
// Handle an I/O error on some socket operation; will report and die on
|
175
|
+
// fatal errors, and continue silently on "try again" errors.
|
176
|
+
// *** This is for CZMQ internal use only and may change arbitrarily ***
|
177
|
+
CZMQ_EXPORT void
|
178
|
+
zsys_socket_error (const char *reason);
|
179
|
+
|
180
|
+
// Return current host name, for use in public tcp:// endpoints. Caller gets
|
181
|
+
// a freshly allocated string, should free it using zstr_free(). If the host
|
182
|
+
// name is not resolvable, returns NULL.
|
183
|
+
CZMQ_EXPORT char *
|
184
|
+
zsys_hostname (void);
|
185
|
+
|
186
|
+
// Move the current process into the background. The precise effect depends
|
187
|
+
// on the operating system. On POSIX boxes, moves to a specified working
|
188
|
+
// directory (if specified), closes all file handles, reopens stdin, stdout,
|
189
|
+
// and stderr to the null device, and sets the process to ignore SIGHUP. On
|
190
|
+
// Windows, does nothing. Returns 0 if OK, -1 if there was an error.
|
191
|
+
CZMQ_EXPORT int
|
192
|
+
zsys_daemonize (const char *workdir);
|
193
|
+
|
194
|
+
// Drop the process ID into the lockfile, with exclusive lock, and switch
|
195
|
+
// the process to the specified group and/or user. Any of the arguments
|
196
|
+
// may be null, indicating a no-op. Returns 0 on success, -1 on failure.
|
197
|
+
// Note if you combine this with zsys_daemonize, run after, not before
|
198
|
+
// that method, or the lockfile will hold the wrong process ID.
|
199
|
+
CZMQ_EXPORT int
|
200
|
+
zsys_run_as (const char *lockfile, const char *group, const char *user);
|
201
|
+
|
202
|
+
// Returns true if the underlying libzmq supports CURVE security.
|
203
|
+
// Uses a heuristic probe according to the version of libzmq being used.
|
204
|
+
CZMQ_EXPORT bool
|
205
|
+
zsys_has_curve (void);
|
206
|
+
|
207
|
+
// Configure the number of I/O threads that ZeroMQ will use. A good
|
208
|
+
// rule of thumb is one thread per gigabit of traffic in or out. The
|
209
|
+
// default is 1, sufficient for most applications. If the environment
|
210
|
+
// variable ZSYS_IO_THREADS is defined, that provides the default.
|
211
|
+
// Note that this method is valid only before any socket is created.
|
212
|
+
CZMQ_EXPORT void
|
213
|
+
zsys_set_io_threads (size_t io_threads);
|
214
|
+
|
215
|
+
// Configure the number of sockets that ZeroMQ will allow. The default
|
216
|
+
// is 1024. The actual limit depends on the system, and you can query it
|
217
|
+
// by using zsys_socket_limit (). A value of zero means "maximum".
|
218
|
+
// Note that this method is valid only before any socket is created.
|
219
|
+
CZMQ_EXPORT void
|
220
|
+
zsys_set_max_sockets (size_t max_sockets);
|
221
|
+
|
222
|
+
// Return maximum number of ZeroMQ sockets that the system will support.
|
223
|
+
CZMQ_EXPORT size_t
|
224
|
+
zsys_socket_limit (void);
|
225
|
+
|
226
|
+
// Configure the default linger timeout in msecs for new zsock instances.
|
227
|
+
// You can also set this separately on each zsock_t instance. The default
|
228
|
+
// linger time is zero, i.e. any pending messages will be dropped. If the
|
229
|
+
// environment variable ZSYS_LINGER is defined, that provides the default.
|
230
|
+
// Note that process exit will typically be delayed by the linger time.
|
231
|
+
CZMQ_EXPORT void
|
232
|
+
zsys_set_linger (size_t linger);
|
233
|
+
|
234
|
+
// Configure the default outgoing pipe limit (HWM) for new zsock instances.
|
235
|
+
// You can also set this separately on each zsock_t instance. The default
|
236
|
+
// HWM is 1,000, on all versions of ZeroMQ. If the environment variable
|
237
|
+
// ZSYS_SNDHWM is defined, that provides the default. Note that a value of
|
238
|
+
// zero means no limit, i.e. infinite memory consumption.
|
239
|
+
CZMQ_EXPORT void
|
240
|
+
zsys_set_sndhwm (size_t sndhwm);
|
241
|
+
|
242
|
+
// Configure the default incoming pipe limit (HWM) for new zsock instances.
|
243
|
+
// You can also set this separately on each zsock_t instance. The default
|
244
|
+
// HWM is 1,000, on all versions of ZeroMQ. If the environment variable
|
245
|
+
// ZSYS_RCVHWM is defined, that provides the default. Note that a value of
|
246
|
+
// zero means no limit, i.e. infinite memory consumption.
|
247
|
+
CZMQ_EXPORT void
|
248
|
+
zsys_set_rcvhwm (size_t rcvhwm);
|
249
|
+
|
250
|
+
// Configure the default HWM for zactor internal pipes; this is set on both
|
251
|
+
// ends of the pipe, for outgoing messages only (sndhwm). The default HWM is
|
252
|
+
// 1,000, on all versions of ZeroMQ. If the environment var ZSYS_ACTORHWM is
|
253
|
+
// defined, that provides the default. Note that a value of zero means no
|
254
|
+
// limit, i.e. infinite memory consumption.
|
255
|
+
CZMQ_EXPORT void
|
256
|
+
zsys_set_pipehwm (size_t pipehwm);
|
257
|
+
|
258
|
+
// Return the HWM for zactor internal pipes.
|
259
|
+
CZMQ_EXPORT size_t
|
260
|
+
zsys_pipehwm (void);
|
261
|
+
|
262
|
+
// Configure use of IPv6 for new zsock instances. By default sockets accept
|
263
|
+
// and make only IPv4 connections. When you enable IPv6, sockets will accept
|
264
|
+
// and connect to both IPv4 and IPv6 peers. You can override the setting on
|
265
|
+
// each zsock_t instance. The default is IPv4 only (ipv6 set to 0). If the
|
266
|
+
// environment variable ZSYS_IPV6 is defined (as 1 or 0), this provides the
|
267
|
+
// default. Note: has no effect on ZMQ v2.
|
268
|
+
CZMQ_EXPORT void
|
269
|
+
zsys_set_ipv6 (int ipv6);
|
270
|
+
|
271
|
+
// Return use of IPv6 for zsock instances.
|
272
|
+
CZMQ_EXPORT int
|
273
|
+
zsys_ipv6 (void);
|
274
|
+
|
275
|
+
// Set network interface name to use for broadcasts, particularly zbeacon.
|
276
|
+
// This lets the interface be configured for test environments where required.
|
277
|
+
// For example, on Mac OS X, zbeacon cannot bind to 255.255.255.255 which is
|
278
|
+
// the default when there is no specified interface. If the environment
|
279
|
+
// variable ZSYS_INTERFACE is set, use that as the default interface name.
|
280
|
+
// Setting the interface to "*" means "use all available interfaces".
|
281
|
+
CZMQ_EXPORT void
|
282
|
+
zsys_set_interface (const char *value);
|
283
|
+
|
284
|
+
// Return network interface to use for broadcasts, or "" if none was set.
|
285
|
+
CZMQ_EXPORT const char *
|
286
|
+
zsys_interface (void);
|
287
|
+
|
288
|
+
// Set IPv6 address to use zbeacon socket, particularly for receiving zbeacon.
|
289
|
+
// This needs to be set IPv6 is enabled as IPv6 can have multiple addresses
|
290
|
+
// on a given interface. If the environment variable ZSYS_IPV6_ADDRESS is set,
|
291
|
+
// use that as the default IPv6 address.
|
292
|
+
CZMQ_EXPORT void
|
293
|
+
zsys_set_ipv6_address (const char *value);
|
294
|
+
|
295
|
+
// Return IPv6 address to use for zbeacon reception, or "" if none was set.
|
296
|
+
CZMQ_EXPORT const char *
|
297
|
+
zsys_ipv6_address (void);
|
298
|
+
|
299
|
+
// Set IPv6 milticast address to use for sending zbeacon messages. This needs
|
300
|
+
// to be set if IPv6 is enabled. If the environment variable
|
301
|
+
// ZSYS_IPV6_MCAST_ADDRESS is set, use that as the default IPv6 multicast
|
302
|
+
// address.
|
303
|
+
CZMQ_EXPORT void
|
304
|
+
zsys_set_ipv6_mcast_address (const char *value);
|
305
|
+
|
306
|
+
// Return IPv6 multicast address to use for sending zbeacon, or "" if none was
|
307
|
+
// set.
|
308
|
+
CZMQ_EXPORT const char *
|
309
|
+
zsys_ipv6_mcast_address (void);
|
310
|
+
|
311
|
+
// Configure the automatic use of pre-allocated FDs when creating new sockets.
|
312
|
+
// If 0 (default), nothing will happen. Else, when a new socket is bound, the
|
313
|
+
// system API will be used to check if an existing pre-allocated FD with a
|
314
|
+
// matching port (if TCP) or path (if IPC) exists, and if it does it will be
|
315
|
+
// set via the ZMQ_USE_FD socket option so that the library will use it
|
316
|
+
// instead of creating a new socket.
|
317
|
+
CZMQ_EXPORT void
|
318
|
+
zsys_set_auto_use_fd (int auto_use_fd);
|
319
|
+
|
320
|
+
// Return use of automatic pre-allocated FDs for zsock instances.
|
321
|
+
CZMQ_EXPORT int
|
322
|
+
zsys_auto_use_fd (void);
|
323
|
+
|
324
|
+
// Set log identity, which is a string that prefixes all log messages sent
|
325
|
+
// by this process. The log identity defaults to the environment variable
|
326
|
+
// ZSYS_LOGIDENT, if that is set.
|
327
|
+
CZMQ_EXPORT void
|
328
|
+
zsys_set_logident (const char *value);
|
329
|
+
|
330
|
+
// Set stream to receive log traffic. By default, log traffic is sent to
|
331
|
+
// stdout. If you set the stream to NULL, no stream will receive the log
|
332
|
+
// traffic (it may still be sent to the system facility).
|
333
|
+
CZMQ_EXPORT void
|
334
|
+
zsys_set_logstream (FILE *stream);
|
335
|
+
|
336
|
+
// Sends log output to a PUB socket bound to the specified endpoint. To
|
337
|
+
// collect such log output, create a SUB socket, subscribe to the traffic
|
338
|
+
// you care about, and connect to the endpoint. Log traffic is sent as a
|
339
|
+
// single string frame, in the same format as when sent to stdout. The
|
340
|
+
// log system supports a single sender; multiple calls to this method will
|
341
|
+
// bind the same sender to multiple endpoints. To disable the sender, call
|
342
|
+
// this method with a null argument.
|
343
|
+
CZMQ_EXPORT void
|
344
|
+
zsys_set_logsender (const char *endpoint);
|
345
|
+
|
346
|
+
// Enable or disable logging to the system facility (syslog on POSIX boxes,
|
347
|
+
// event log on Windows). By default this is disabled.
|
348
|
+
CZMQ_EXPORT void
|
349
|
+
zsys_set_logsystem (bool logsystem);
|
350
|
+
|
351
|
+
// Log error condition - highest priority
|
352
|
+
CZMQ_EXPORT void
|
353
|
+
zsys_error (const char *format, ...);
|
354
|
+
|
355
|
+
// Log warning condition - high priority
|
356
|
+
CZMQ_EXPORT void
|
357
|
+
zsys_warning (const char *format, ...);
|
358
|
+
|
359
|
+
// Log normal, but significant, condition - normal priority
|
360
|
+
CZMQ_EXPORT void
|
361
|
+
zsys_notice (const char *format, ...);
|
362
|
+
|
363
|
+
// Log informational message - low priority
|
364
|
+
CZMQ_EXPORT void
|
365
|
+
zsys_info (const char *format, ...);
|
366
|
+
|
367
|
+
// Log debug-level message - lowest priority
|
368
|
+
CZMQ_EXPORT void
|
369
|
+
zsys_debug (const char *format, ...);
|
370
|
+
|
371
|
+
// Self test of this class
|
372
|
+
CZMQ_EXPORT void
|
373
|
+
zsys_test (bool verbose);
|
374
|
+
|
375
|
+
// Global signal indicator, TRUE when user presses Ctrl-C or the process
|
376
|
+
// gets a SIGTERM signal.
|
377
|
+
CZMQ_EXPORT extern volatile int zsys_interrupted;
|
378
|
+
// Deprecated name for this variable
|
379
|
+
CZMQ_EXPORT extern volatile int zctx_interrupted;
|
380
|
+
// @end
|
381
|
+
|
382
|
+
#ifdef __cplusplus
|
383
|
+
}
|
384
|
+
#endif
|
385
|
+
|
386
|
+
#endif
|
@@ -0,0 +1,50 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zthread - working with system threads (deprecated)
|
3
|
+
|
4
|
+
Copyright (c) the Contributors as noted in the AUTHORS file.
|
5
|
+
This file is part of CZMQ, the high-level C binding for 0MQ:
|
6
|
+
http://czmq.zeromq.org.
|
7
|
+
|
8
|
+
This Source Code Form is subject to the terms of the Mozilla Public
|
9
|
+
License, v. 2.0. If a copy of the MPL was not distributed with this
|
10
|
+
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
11
|
+
=========================================================================
|
12
|
+
*/
|
13
|
+
|
14
|
+
#ifndef __ZTHREAD_H_INCLUDED__
|
15
|
+
#define __ZTHREAD_H_INCLUDED__
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
// @interface
|
22
|
+
// Detached threads follow POSIX pthreads API
|
23
|
+
typedef void *(zthread_detached_fn) (void *args);
|
24
|
+
|
25
|
+
// Attached threads get context and pipe from parent
|
26
|
+
typedef void (zthread_attached_fn) (void *args, zctx_t *ctx, void *pipe);
|
27
|
+
|
28
|
+
// Create a detached thread. A detached thread operates autonomously
|
29
|
+
// and is used to simulate a separate process. It gets no ctx, and no
|
30
|
+
// pipe.
|
31
|
+
CZMQ_EXPORT int
|
32
|
+
zthread_new (zthread_detached_fn *thread_fn, void *args);
|
33
|
+
|
34
|
+
// Create an attached thread. An attached thread gets a ctx and a PAIR
|
35
|
+
// pipe back to its parent. It must monitor its pipe, and exit if the
|
36
|
+
// pipe becomes unreadable. Do not destroy the ctx, the thread does this
|
37
|
+
// automatically when it ends.
|
38
|
+
CZMQ_EXPORT void *
|
39
|
+
zthread_fork (zctx_t *ctx, zthread_attached_fn *thread_fn, void *args);
|
40
|
+
|
41
|
+
// Self test of this class
|
42
|
+
CZMQ_EXPORT void
|
43
|
+
zthread_test (bool verbose);
|
44
|
+
// @end
|
45
|
+
|
46
|
+
#ifdef __cplusplus
|
47
|
+
}
|
48
|
+
#endif
|
49
|
+
|
50
|
+
#endif
|
@@ -0,0 +1,90 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
ztimerset - timer set
|
3
|
+
|
4
|
+
Copyright (c) the Contributors as noted in the AUTHORS file.
|
5
|
+
This file is part of CZMQ, the high-level C binding for 0MQ:
|
6
|
+
http://czmq.zeromq.org.
|
7
|
+
|
8
|
+
This Source Code Form is subject to the terms of the Mozilla Public
|
9
|
+
License, v. 2.0. If a copy of the MPL was not distributed with this
|
10
|
+
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
11
|
+
=========================================================================
|
12
|
+
*/
|
13
|
+
|
14
|
+
#ifndef ZTIMERSET_H_INCLUDED
|
15
|
+
#define ZTIMERSET_H_INCLUDED
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
// @warning THE FOLLOWING @INTERFACE BLOCK IS AUTO-GENERATED BY ZPROJECT
|
22
|
+
// @warning Please edit the model at "api/ztimerset.api" to make changes.
|
23
|
+
// @interface
|
24
|
+
// This is a draft class, and may change without notice. It is disabled in
|
25
|
+
// stable builds by default. If you use this in applications, please ask
|
26
|
+
// for it to be pushed to stable state. Use --enable-drafts to enable.
|
27
|
+
#ifdef CZMQ_BUILD_DRAFT_API
|
28
|
+
// Callback function for timer event.
|
29
|
+
typedef void (ztimerset_fn) (
|
30
|
+
int timer_id, void *arg);
|
31
|
+
|
32
|
+
// *** Draft method, for development use, may change without warning ***
|
33
|
+
// Create new timer set.
|
34
|
+
CZMQ_EXPORT ztimerset_t *
|
35
|
+
ztimerset_new (void);
|
36
|
+
|
37
|
+
// *** Draft method, for development use, may change without warning ***
|
38
|
+
// Destroy a timer set
|
39
|
+
CZMQ_EXPORT void
|
40
|
+
ztimerset_destroy (ztimerset_t **self_p);
|
41
|
+
|
42
|
+
// *** Draft method, for development use, may change without warning ***
|
43
|
+
// Add a timer to the set. Returns timer id if OK, -1 on failure.
|
44
|
+
CZMQ_EXPORT int
|
45
|
+
ztimerset_add (ztimerset_t *self, size_t interval, ztimerset_fn handler, void *arg);
|
46
|
+
|
47
|
+
// *** Draft method, for development use, may change without warning ***
|
48
|
+
// Cancel a timer. Returns 0 if OK, -1 on failure.
|
49
|
+
CZMQ_EXPORT int
|
50
|
+
ztimerset_cancel (ztimerset_t *self, int timer_id);
|
51
|
+
|
52
|
+
// *** Draft method, for development use, may change without warning ***
|
53
|
+
// Set timer interval. Returns 0 if OK, -1 on failure.
|
54
|
+
// This method is slow, canceling the timer and adding a new one yield better performance.
|
55
|
+
CZMQ_EXPORT int
|
56
|
+
ztimerset_set_interval (ztimerset_t *self, int timer_id, size_t interval);
|
57
|
+
|
58
|
+
// *** Draft method, for development use, may change without warning ***
|
59
|
+
// Reset timer to start interval counting from current time. Returns 0 if OK, -1 on failure.
|
60
|
+
// This method is slow, canceling the timer and adding a new one yield better performance.
|
61
|
+
CZMQ_EXPORT int
|
62
|
+
ztimerset_reset (ztimerset_t *self, int timer_id);
|
63
|
+
|
64
|
+
// *** Draft method, for development use, may change without warning ***
|
65
|
+
// Return the time until the next interval.
|
66
|
+
// Should be used as timeout parameter for the zpoller wait method.
|
67
|
+
// The timeout is in msec.
|
68
|
+
CZMQ_EXPORT int
|
69
|
+
ztimerset_timeout (ztimerset_t *self);
|
70
|
+
|
71
|
+
// *** Draft method, for development use, may change without warning ***
|
72
|
+
// Invoke callback function of all timers which their interval has elapsed.
|
73
|
+
// Should be call after zpoller wait method.
|
74
|
+
// Returns 0 if OK, -1 on failure.
|
75
|
+
CZMQ_EXPORT int
|
76
|
+
ztimerset_execute (ztimerset_t *self);
|
77
|
+
|
78
|
+
// *** Draft method, for development use, may change without warning ***
|
79
|
+
// Self test of this class.
|
80
|
+
CZMQ_EXPORT void
|
81
|
+
ztimerset_test (bool verbose);
|
82
|
+
|
83
|
+
#endif // CZMQ_BUILD_DRAFT_API
|
84
|
+
// @end
|
85
|
+
|
86
|
+
#ifdef __cplusplus
|
87
|
+
}
|
88
|
+
#endif
|
89
|
+
|
90
|
+
#endif
|