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,205 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zlistx - extended generic list container
|
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 __ZLISTX_H_INCLUDED__
|
15
|
+
#define __ZLISTX_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/zlistx.api" to make changes.
|
23
|
+
// @interface
|
24
|
+
// This is a stable class, and may not change except for emergencies. It
|
25
|
+
// is provided in stable builds.
|
26
|
+
// Destroy an item
|
27
|
+
typedef void (zlistx_destructor_fn) (
|
28
|
+
void **item);
|
29
|
+
|
30
|
+
// Duplicate an item
|
31
|
+
typedef void * (zlistx_duplicator_fn) (
|
32
|
+
const void *item);
|
33
|
+
|
34
|
+
// Compare two items, for sorting
|
35
|
+
typedef int (zlistx_comparator_fn) (
|
36
|
+
const void *item1, const void *item2);
|
37
|
+
|
38
|
+
// Create a new, empty list.
|
39
|
+
CZMQ_EXPORT zlistx_t *
|
40
|
+
zlistx_new (void);
|
41
|
+
|
42
|
+
// Destroy a list. If an item destructor was specified, all items in the
|
43
|
+
// list are automatically destroyed as well.
|
44
|
+
CZMQ_EXPORT void
|
45
|
+
zlistx_destroy (zlistx_t **self_p);
|
46
|
+
|
47
|
+
// Add an item to the head of the list. Calls the item duplicator, if any,
|
48
|
+
// on the item. Resets cursor to list head. Returns an item handle on
|
49
|
+
// success, NULL if memory was exhausted.
|
50
|
+
CZMQ_EXPORT void *
|
51
|
+
zlistx_add_start (zlistx_t *self, void *item);
|
52
|
+
|
53
|
+
// Add an item to the tail of the list. Calls the item duplicator, if any,
|
54
|
+
// on the item. Resets cursor to list head. Returns an item handle on
|
55
|
+
// success, NULL if memory was exhausted.
|
56
|
+
CZMQ_EXPORT void *
|
57
|
+
zlistx_add_end (zlistx_t *self, void *item);
|
58
|
+
|
59
|
+
// Return the number of items in the list
|
60
|
+
CZMQ_EXPORT size_t
|
61
|
+
zlistx_size (zlistx_t *self);
|
62
|
+
|
63
|
+
// Return first item in the list, or null, leaves the cursor
|
64
|
+
CZMQ_EXPORT void *
|
65
|
+
zlistx_head (zlistx_t *self);
|
66
|
+
|
67
|
+
// Return last item in the list, or null, leaves the cursor
|
68
|
+
CZMQ_EXPORT void *
|
69
|
+
zlistx_tail (zlistx_t *self);
|
70
|
+
|
71
|
+
// Return the item at the head of list. If the list is empty, returns NULL.
|
72
|
+
// Leaves cursor pointing at the head item, or NULL if the list is empty.
|
73
|
+
CZMQ_EXPORT void *
|
74
|
+
zlistx_first (zlistx_t *self);
|
75
|
+
|
76
|
+
// Return the next item. At the end of the list (or in an empty list),
|
77
|
+
// returns NULL. Use repeated zlistx_next () calls to work through the list
|
78
|
+
// from zlistx_first (). First time, acts as zlistx_first().
|
79
|
+
CZMQ_EXPORT void *
|
80
|
+
zlistx_next (zlistx_t *self);
|
81
|
+
|
82
|
+
// Return the previous item. At the start of the list (or in an empty list),
|
83
|
+
// returns NULL. Use repeated zlistx_prev () calls to work through the list
|
84
|
+
// backwards from zlistx_last (). First time, acts as zlistx_last().
|
85
|
+
CZMQ_EXPORT void *
|
86
|
+
zlistx_prev (zlistx_t *self);
|
87
|
+
|
88
|
+
// Return the item at the tail of list. If the list is empty, returns NULL.
|
89
|
+
// Leaves cursor pointing at the tail item, or NULL if the list is empty.
|
90
|
+
CZMQ_EXPORT void *
|
91
|
+
zlistx_last (zlistx_t *self);
|
92
|
+
|
93
|
+
// Returns the value of the item at the cursor, or NULL if the cursor is
|
94
|
+
// not pointing to an item.
|
95
|
+
CZMQ_EXPORT void *
|
96
|
+
zlistx_item (zlistx_t *self);
|
97
|
+
|
98
|
+
// Returns the handle of the item at the cursor, or NULL if the cursor is
|
99
|
+
// not pointing to an item.
|
100
|
+
CZMQ_EXPORT void *
|
101
|
+
zlistx_cursor (zlistx_t *self);
|
102
|
+
|
103
|
+
// Returns the item associated with the given list handle, or NULL if passed
|
104
|
+
// in handle is NULL. Asserts that the passed in handle points to a list element.
|
105
|
+
CZMQ_EXPORT void *
|
106
|
+
zlistx_handle_item (void *handle);
|
107
|
+
|
108
|
+
// Find an item in the list, searching from the start. Uses the item
|
109
|
+
// comparator, if any, else compares item values directly. Returns the
|
110
|
+
// item handle found, or NULL. Sets the cursor to the found item, if any.
|
111
|
+
CZMQ_EXPORT void *
|
112
|
+
zlistx_find (zlistx_t *self, void *item);
|
113
|
+
|
114
|
+
// Detach an item from the list, using its handle. The item is not modified,
|
115
|
+
// and the caller is responsible for destroying it if necessary. If handle is
|
116
|
+
// null, detaches the first item on the list. Returns item that was detached,
|
117
|
+
// or null if none was. If cursor was at item, moves cursor to previous item,
|
118
|
+
// so you can detach items while iterating forwards through a list.
|
119
|
+
CZMQ_EXPORT void *
|
120
|
+
zlistx_detach (zlistx_t *self, void *handle);
|
121
|
+
|
122
|
+
// Detach item at the cursor, if any, from the list. The item is not modified,
|
123
|
+
// and the caller is responsible for destroying it as necessary. Returns item
|
124
|
+
// that was detached, or null if none was. Moves cursor to previous item, so
|
125
|
+
// you can detach items while iterating forwards through a list.
|
126
|
+
CZMQ_EXPORT void *
|
127
|
+
zlistx_detach_cur (zlistx_t *self);
|
128
|
+
|
129
|
+
// Delete an item, using its handle. Calls the item destructor is any is
|
130
|
+
// set. If handle is null, deletes the first item on the list. Returns 0
|
131
|
+
// if an item was deleted, -1 if not. If cursor was at item, moves cursor
|
132
|
+
// to previous item, so you can delete items while iterating forwards
|
133
|
+
// through a list.
|
134
|
+
CZMQ_EXPORT int
|
135
|
+
zlistx_delete (zlistx_t *self, void *handle);
|
136
|
+
|
137
|
+
// Move an item to the start of the list, via its handle.
|
138
|
+
CZMQ_EXPORT void
|
139
|
+
zlistx_move_start (zlistx_t *self, void *handle);
|
140
|
+
|
141
|
+
// Move an item to the end of the list, via its handle.
|
142
|
+
CZMQ_EXPORT void
|
143
|
+
zlistx_move_end (zlistx_t *self, void *handle);
|
144
|
+
|
145
|
+
// Remove all items from the list, and destroy them if the item destructor
|
146
|
+
// is set.
|
147
|
+
CZMQ_EXPORT void
|
148
|
+
zlistx_purge (zlistx_t *self);
|
149
|
+
|
150
|
+
// Sort the list. If an item comparator was set, calls that to compare
|
151
|
+
// items, otherwise compares on item value. The sort is not stable, so may
|
152
|
+
// reorder equal items.
|
153
|
+
CZMQ_EXPORT void
|
154
|
+
zlistx_sort (zlistx_t *self);
|
155
|
+
|
156
|
+
// Create a new node and insert it into a sorted list. Calls the item
|
157
|
+
// duplicator, if any, on the item. If low_value is true, starts searching
|
158
|
+
// from the start of the list, otherwise searches from the end. Use the item
|
159
|
+
// comparator, if any, to find where to place the new node. Returns a handle
|
160
|
+
// to the new node, or NULL if memory was exhausted. Resets the cursor to the
|
161
|
+
// list head.
|
162
|
+
CZMQ_EXPORT void *
|
163
|
+
zlistx_insert (zlistx_t *self, void *item, bool low_value);
|
164
|
+
|
165
|
+
// Move an item, specified by handle, into position in a sorted list. Uses
|
166
|
+
// the item comparator, if any, to determine the new location. If low_value
|
167
|
+
// is true, starts searching from the start of the list, otherwise searches
|
168
|
+
// from the end.
|
169
|
+
CZMQ_EXPORT void
|
170
|
+
zlistx_reorder (zlistx_t *self, void *handle, bool low_value);
|
171
|
+
|
172
|
+
// Make a copy of the list; items are duplicated if you set a duplicator
|
173
|
+
// for the list, otherwise not. Copying a null reference returns a null
|
174
|
+
// reference.
|
175
|
+
CZMQ_EXPORT zlistx_t *
|
176
|
+
zlistx_dup (zlistx_t *self);
|
177
|
+
|
178
|
+
// Set a user-defined deallocator for list items; by default items are not
|
179
|
+
// freed when the list is destroyed.
|
180
|
+
CZMQ_EXPORT void
|
181
|
+
zlistx_set_destructor (zlistx_t *self, zlistx_destructor_fn destructor);
|
182
|
+
|
183
|
+
// Set a user-defined duplicator for list items; by default items are not
|
184
|
+
// copied when the list is duplicated.
|
185
|
+
CZMQ_EXPORT void
|
186
|
+
zlistx_set_duplicator (zlistx_t *self, zlistx_duplicator_fn duplicator);
|
187
|
+
|
188
|
+
// Set a user-defined comparator for zlistx_find and zlistx_sort; the method
|
189
|
+
// must return -1, 0, or 1 depending on whether item1 is less than, equal to,
|
190
|
+
// or greater than, item2.
|
191
|
+
CZMQ_EXPORT void
|
192
|
+
zlistx_set_comparator (zlistx_t *self, zlistx_comparator_fn comparator);
|
193
|
+
|
194
|
+
// Self test of this class.
|
195
|
+
CZMQ_EXPORT void
|
196
|
+
zlistx_test (bool verbose);
|
197
|
+
|
198
|
+
// @end
|
199
|
+
|
200
|
+
|
201
|
+
#ifdef __cplusplus
|
202
|
+
}
|
203
|
+
#endif
|
204
|
+
|
205
|
+
#endif
|
@@ -0,0 +1,168 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zloop - event-driven reactor
|
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 __ZLOOP_H_INCLUDED__
|
15
|
+
#define __ZLOOP_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/zloop.api" to make changes.
|
23
|
+
// @interface
|
24
|
+
// This is a stable class, and may not change except for emergencies. It
|
25
|
+
// is provided in stable builds.
|
26
|
+
// This class has draft methods, which may change over time. They are not
|
27
|
+
// in stable releases, by default. Use --enable-drafts to enable.
|
28
|
+
// Callback function for reactor socket activity
|
29
|
+
typedef int (zloop_reader_fn) (
|
30
|
+
zloop_t *loop, zsock_t *reader, void *arg);
|
31
|
+
|
32
|
+
// Callback function for reactor events (low-level)
|
33
|
+
typedef int (zloop_fn) (
|
34
|
+
zloop_t *loop, zmq_pollitem_t *item, void *arg);
|
35
|
+
|
36
|
+
// Callback for reactor timer events
|
37
|
+
typedef int (zloop_timer_fn) (
|
38
|
+
zloop_t *loop, int timer_id, void *arg);
|
39
|
+
|
40
|
+
// Create a new zloop reactor
|
41
|
+
CZMQ_EXPORT zloop_t *
|
42
|
+
zloop_new (void);
|
43
|
+
|
44
|
+
// Destroy a reactor
|
45
|
+
CZMQ_EXPORT void
|
46
|
+
zloop_destroy (zloop_t **self_p);
|
47
|
+
|
48
|
+
// Register socket reader with the reactor. When the reader has messages,
|
49
|
+
// the reactor will call the handler, passing the arg. Returns 0 if OK, -1
|
50
|
+
// if there was an error. If you register the same socket more than once,
|
51
|
+
// each instance will invoke its corresponding handler.
|
52
|
+
CZMQ_EXPORT int
|
53
|
+
zloop_reader (zloop_t *self, zsock_t *sock, zloop_reader_fn handler, void *arg);
|
54
|
+
|
55
|
+
// Cancel a socket reader from the reactor. If multiple readers exist for
|
56
|
+
// same socket, cancels ALL of them.
|
57
|
+
CZMQ_EXPORT void
|
58
|
+
zloop_reader_end (zloop_t *self, zsock_t *sock);
|
59
|
+
|
60
|
+
// Configure a registered reader to ignore errors. If you do not set this,
|
61
|
+
// then readers that have errors are removed from the reactor silently.
|
62
|
+
CZMQ_EXPORT void
|
63
|
+
zloop_reader_set_tolerant (zloop_t *self, zsock_t *sock);
|
64
|
+
|
65
|
+
// Register low-level libzmq pollitem with the reactor. When the pollitem
|
66
|
+
// is ready, will call the handler, passing the arg. Returns 0 if OK, -1
|
67
|
+
// if there was an error. If you register the pollitem more than once, each
|
68
|
+
// instance will invoke its corresponding handler. A pollitem with
|
69
|
+
// socket=NULL and fd=0 means 'poll on FD zero'.
|
70
|
+
CZMQ_EXPORT int
|
71
|
+
zloop_poller (zloop_t *self, zmq_pollitem_t *item, zloop_fn handler, void *arg);
|
72
|
+
|
73
|
+
// Cancel a pollitem from the reactor, specified by socket or FD. If both
|
74
|
+
// are specified, uses only socket. If multiple poll items exist for same
|
75
|
+
// socket/FD, cancels ALL of them.
|
76
|
+
CZMQ_EXPORT void
|
77
|
+
zloop_poller_end (zloop_t *self, zmq_pollitem_t *item);
|
78
|
+
|
79
|
+
// Configure a registered poller to ignore errors. If you do not set this,
|
80
|
+
// then poller that have errors are removed from the reactor silently.
|
81
|
+
CZMQ_EXPORT void
|
82
|
+
zloop_poller_set_tolerant (zloop_t *self, zmq_pollitem_t *item);
|
83
|
+
|
84
|
+
// Register a timer that expires after some delay and repeats some number of
|
85
|
+
// times. At each expiry, will call the handler, passing the arg. To run a
|
86
|
+
// timer forever, use 0 times. Returns a timer_id that is used to cancel the
|
87
|
+
// timer in the future. Returns -1 if there was an error.
|
88
|
+
CZMQ_EXPORT int
|
89
|
+
zloop_timer (zloop_t *self, size_t delay, size_t times, zloop_timer_fn handler, void *arg);
|
90
|
+
|
91
|
+
// Cancel a specific timer identified by a specific timer_id (as returned by
|
92
|
+
// zloop_timer).
|
93
|
+
CZMQ_EXPORT int
|
94
|
+
zloop_timer_end (zloop_t *self, int timer_id);
|
95
|
+
|
96
|
+
// Register a ticket timer. Ticket timers are very fast in the case where
|
97
|
+
// you use a lot of timers (thousands), and frequently remove and add them.
|
98
|
+
// The main use case is expiry timers for servers that handle many clients,
|
99
|
+
// and which reset the expiry timer for each message received from a client.
|
100
|
+
// Whereas normal timers perform poorly as the number of clients grows, the
|
101
|
+
// cost of ticket timers is constant, no matter the number of clients. You
|
102
|
+
// must set the ticket delay using zloop_set_ticket_delay before creating a
|
103
|
+
// ticket. Returns a handle to the timer that you should use in
|
104
|
+
// zloop_ticket_reset and zloop_ticket_delete.
|
105
|
+
CZMQ_EXPORT void *
|
106
|
+
zloop_ticket (zloop_t *self, zloop_timer_fn handler, void *arg);
|
107
|
+
|
108
|
+
// Reset a ticket timer, which moves it to the end of the ticket list and
|
109
|
+
// resets its execution time. This is a very fast operation.
|
110
|
+
CZMQ_EXPORT void
|
111
|
+
zloop_ticket_reset (zloop_t *self, void *handle);
|
112
|
+
|
113
|
+
// Delete a ticket timer. We do not actually delete the ticket here, as
|
114
|
+
// other code may still refer to the ticket. We mark as deleted, and remove
|
115
|
+
// later and safely.
|
116
|
+
CZMQ_EXPORT void
|
117
|
+
zloop_ticket_delete (zloop_t *self, void *handle);
|
118
|
+
|
119
|
+
// Set the ticket delay, which applies to all tickets. If you lower the
|
120
|
+
// delay and there are already tickets created, the results are undefined.
|
121
|
+
CZMQ_EXPORT void
|
122
|
+
zloop_set_ticket_delay (zloop_t *self, size_t ticket_delay);
|
123
|
+
|
124
|
+
// Set hard limit on number of timers allowed. Setting more than a small
|
125
|
+
// number of timers (10-100) can have a dramatic impact on the performance
|
126
|
+
// of the reactor. For high-volume cases, use ticket timers. If the hard
|
127
|
+
// limit is reached, the reactor stops creating new timers and logs an
|
128
|
+
// error.
|
129
|
+
CZMQ_EXPORT void
|
130
|
+
zloop_set_max_timers (zloop_t *self, size_t max_timers);
|
131
|
+
|
132
|
+
// Set verbose tracing of reactor on/off. The default verbose setting is
|
133
|
+
// off (false).
|
134
|
+
CZMQ_EXPORT void
|
135
|
+
zloop_set_verbose (zloop_t *self, bool verbose);
|
136
|
+
|
137
|
+
// Start the reactor. Takes control of the thread and returns when the 0MQ
|
138
|
+
// context is terminated or the process is interrupted, or any event handler
|
139
|
+
// returns -1. Event handlers may register new sockets and timers, and
|
140
|
+
// cancel sockets. Returns 0 if interrupted, -1 if canceled by a handler.
|
141
|
+
CZMQ_EXPORT int
|
142
|
+
zloop_start (zloop_t *self);
|
143
|
+
|
144
|
+
// Self test of this class.
|
145
|
+
CZMQ_EXPORT void
|
146
|
+
zloop_test (bool verbose);
|
147
|
+
|
148
|
+
#ifdef CZMQ_BUILD_DRAFT_API
|
149
|
+
// *** Draft method, for development use, may change without warning ***
|
150
|
+
// By default the reactor stops if the process receives a SIGINT or SIGTERM
|
151
|
+
// signal. This makes it impossible to shut-down message based architectures
|
152
|
+
// like zactors. This method lets you switch off break handling. The default
|
153
|
+
// nonstop setting is off (false).
|
154
|
+
CZMQ_EXPORT void
|
155
|
+
zloop_set_nonstop (zloop_t *self, bool nonstop);
|
156
|
+
|
157
|
+
#endif // CZMQ_BUILD_DRAFT_API
|
158
|
+
// @end
|
159
|
+
|
160
|
+
|
161
|
+
// Deprecated method aliases
|
162
|
+
#define zloop_set_tolerant(s,i) zloop_poller_set_tolerant(s,i)
|
163
|
+
|
164
|
+
#ifdef __cplusplus
|
165
|
+
}
|
166
|
+
#endif
|
167
|
+
|
168
|
+
#endif
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zmonitor - socket event monitor
|
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 __ZMONITOR_H_INCLUDED__
|
15
|
+
#define __ZMONITOR_H_INCLUDED__
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
// @interface
|
22
|
+
// Create new zmonitor actor instance to monitor a zsock_t socket:
|
23
|
+
//
|
24
|
+
// zactor_t *monitor = zactor_new (zmonitor, mysocket);
|
25
|
+
//
|
26
|
+
// Destroy zmonitor instance.
|
27
|
+
//
|
28
|
+
// zactor_destroy (&monitor);
|
29
|
+
//
|
30
|
+
// Enable verbose logging of commands and activity.
|
31
|
+
//
|
32
|
+
// zstr_send (monitor, "VERBOSE");
|
33
|
+
//
|
34
|
+
// Listen to monitor event type (zero or types, ending in NULL):
|
35
|
+
// zstr_sendx (monitor, "LISTEN", type, ..., NULL);
|
36
|
+
//
|
37
|
+
// Events:
|
38
|
+
// CONNECTED
|
39
|
+
// CONNECT_DELAYED
|
40
|
+
// CONNECT_RETRIED
|
41
|
+
// LISTENING
|
42
|
+
// BIND_FAILED
|
43
|
+
// ACCEPTED
|
44
|
+
// ACCEPT_FAILED
|
45
|
+
// CLOSED
|
46
|
+
// CLOSE_FAILED
|
47
|
+
// DISCONNECTED
|
48
|
+
// MONITOR_STOPPED
|
49
|
+
// ALL
|
50
|
+
//
|
51
|
+
// Start monitor; after this, any further LISTEN commands are ignored.
|
52
|
+
//
|
53
|
+
// zstr_send (monitor, "START");
|
54
|
+
// zsock_wait (monitor);
|
55
|
+
//
|
56
|
+
// Receive next monitor event:
|
57
|
+
//
|
58
|
+
// zmsg_t *msg = zmsg_recv (monitor);
|
59
|
+
//
|
60
|
+
// This is the zmonitor constructor as a zactor_fn; the argument can be
|
61
|
+
// a zactor_t, zsock_t, or libzmq void * socket:
|
62
|
+
CZMQ_EXPORT void
|
63
|
+
zmonitor (zsock_t *pipe, void *sock);
|
64
|
+
|
65
|
+
// Selftest
|
66
|
+
CZMQ_EXPORT void
|
67
|
+
zmonitor_test (bool verbose);
|
68
|
+
// @end
|
69
|
+
#ifdef __cplusplus
|
70
|
+
}
|
71
|
+
#endif
|
72
|
+
|
73
|
+
#endif
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zmonitor_v2 - socket event monitor (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 __ZMONITOR_V2_H_INCLUDED__
|
15
|
+
#define __ZMONITOR_V2_H_INCLUDED__
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
// @interface
|
22
|
+
// This code needs backporting to work with ZMQ v3.2
|
23
|
+
#if (ZMQ_VERSION_MAJOR == 4)
|
24
|
+
|
25
|
+
// Create a new socket monitor
|
26
|
+
CZMQ_EXPORT zmonitor_t *
|
27
|
+
zmonitor_new (zctx_t *ctx, void *socket, int events);
|
28
|
+
|
29
|
+
// Destroy a socket monitor
|
30
|
+
CZMQ_EXPORT void
|
31
|
+
zmonitor_destroy (zmonitor_t **self_p);
|
32
|
+
|
33
|
+
// Receive a status message from the monitor; if no message arrives within
|
34
|
+
// 500 msec, or the call was interrupted, returns NULL.
|
35
|
+
CZMQ_EXPORT zmsg_t *
|
36
|
+
zmonitor_recv (zmonitor_t *self);
|
37
|
+
|
38
|
+
// Get the ZeroMQ socket, for polling
|
39
|
+
CZMQ_EXPORT void *
|
40
|
+
zmonitor_socket (zmonitor_t *self);
|
41
|
+
|
42
|
+
// Enable verbose tracing of commands and activity
|
43
|
+
CZMQ_EXPORT void
|
44
|
+
zmonitor_set_verbose (zmonitor_t *self, bool verbose);
|
45
|
+
#endif // ZeroMQ 4.0 or later
|
46
|
+
|
47
|
+
// Self test of this class
|
48
|
+
CZMQ_EXPORT void
|
49
|
+
zmonitor_v2_test (bool verbose);
|
50
|
+
// @end
|
51
|
+
|
52
|
+
#ifdef __cplusplus
|
53
|
+
}
|
54
|
+
#endif
|
55
|
+
|
56
|
+
#endif
|