czmq-ffi-gen 0.9.2-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +1 -0
  3. data/CHANGES.md +92 -0
  4. data/Gemfile +2 -0
  5. data/LICENSE +14 -0
  6. data/README.md +112 -0
  7. data/lib/czmq-ffi-gen.rb +7 -0
  8. data/lib/czmq-ffi-gen/czmq/ffi.rb +1210 -0
  9. data/lib/czmq-ffi-gen/czmq/ffi/version.rb +15 -0
  10. data/lib/czmq-ffi-gen/czmq/ffi/zactor.rb +186 -0
  11. data/lib/czmq-ffi-gen/czmq/ffi/zarmour.rb +286 -0
  12. data/lib/czmq-ffi-gen/czmq/ffi/zcert.rb +307 -0
  13. data/lib/czmq-ffi-gen/czmq/ffi/zcertstore.rb +222 -0
  14. data/lib/czmq-ffi-gen/czmq/ffi/zchunk.rb +388 -0
  15. data/lib/czmq-ffi-gen/czmq/ffi/zclock.rb +140 -0
  16. data/lib/czmq-ffi-gen/czmq/ffi/zconfig.rb +442 -0
  17. data/lib/czmq-ffi-gen/czmq/ffi/zdigest.rb +156 -0
  18. data/lib/czmq-ffi-gen/czmq/ffi/zdir.rb +283 -0
  19. data/lib/czmq-ffi-gen/czmq/ffi/zdir_patch.rb +194 -0
  20. data/lib/czmq-ffi-gen/czmq/ffi/zfile.rb +353 -0
  21. data/lib/czmq-ffi-gen/czmq/ffi/zframe.rb +359 -0
  22. data/lib/czmq-ffi-gen/czmq/ffi/zhash.rb +416 -0
  23. data/lib/czmq-ffi-gen/czmq/ffi/zhashx.rb +659 -0
  24. data/lib/czmq-ffi-gen/czmq/ffi/ziflist.rb +189 -0
  25. data/lib/czmq-ffi-gen/czmq/ffi/zlist.rb +365 -0
  26. data/lib/czmq-ffi-gen/czmq/ffi/zlistx.rb +478 -0
  27. data/lib/czmq-ffi-gen/czmq/ffi/zloop.rb +396 -0
  28. data/lib/czmq-ffi-gen/czmq/ffi/zmsg.rb +515 -0
  29. data/lib/czmq-ffi-gen/czmq/ffi/zpoller.rb +194 -0
  30. data/lib/czmq-ffi-gen/czmq/ffi/zproc.rb +294 -0
  31. data/lib/czmq-ffi-gen/czmq/ffi/zsock.rb +3479 -0
  32. data/lib/czmq-ffi-gen/czmq/ffi/zstr.rb +203 -0
  33. data/lib/czmq-ffi-gen/czmq/ffi/ztimerset.rb +203 -0
  34. data/lib/czmq-ffi-gen/czmq/ffi/ztrie.rb +221 -0
  35. data/lib/czmq-ffi-gen/czmq/ffi/zuuid.rb +227 -0
  36. data/lib/czmq-ffi-gen/errors.rb +12 -0
  37. data/lib/czmq-ffi-gen/gem_version.rb +5 -0
  38. data/lib/czmq-ffi-gen/legacy.rb +16 -0
  39. data/lib/czmq-ffi-gen/libzmq.rb +18 -0
  40. data/lib/czmq-ffi-gen/signals.rb +27 -0
  41. data/lib/czmq-ffi-gen/vendor.rb +5 -0
  42. data/lib/czmq-ffi-gen/versions.rb +19 -0
  43. data/vendor/local/bin/inproc_lat.exe +0 -0
  44. data/vendor/local/bin/inproc_thr.exe +0 -0
  45. data/vendor/local/bin/libczmq.dll +0 -0
  46. data/vendor/local/bin/libgcc_s_seh-1.dll +0 -0
  47. data/vendor/local/bin/libstdc++-6.dll +0 -0
  48. data/vendor/local/bin/libzmq.dll +0 -0
  49. data/vendor/local/bin/local_lat.exe +0 -0
  50. data/vendor/local/bin/local_thr.exe +0 -0
  51. data/vendor/local/bin/remote_lat.exe +0 -0
  52. data/vendor/local/bin/remote_thr.exe +0 -0
  53. data/vendor/local/include/czmq.h +31 -0
  54. data/vendor/local/include/czmq_library.h +199 -0
  55. data/vendor/local/include/czmq_prelude.h +641 -0
  56. data/vendor/local/include/readme.txt +83 -0
  57. data/vendor/local/include/sha1.h +76 -0
  58. data/vendor/local/include/sha1.inc_c +335 -0
  59. data/vendor/local/include/slre.h +92 -0
  60. data/vendor/local/include/slre.inc_c +660 -0
  61. data/vendor/local/include/zactor.h +76 -0
  62. data/vendor/local/include/zarmour.h +114 -0
  63. data/vendor/local/include/zauth.h +100 -0
  64. data/vendor/local/include/zauth_v2.h +88 -0
  65. data/vendor/local/include/zbeacon.h +86 -0
  66. data/vendor/local/include/zbeacon_v2.h +75 -0
  67. data/vendor/local/include/zcert.h +136 -0
  68. data/vendor/local/include/zcertstore.h +100 -0
  69. data/vendor/local/include/zchunk.h +163 -0
  70. data/vendor/local/include/zclock.h +73 -0
  71. data/vendor/local/include/zconfig.h +185 -0
  72. data/vendor/local/include/zctx.h +107 -0
  73. data/vendor/local/include/zdigest.h +65 -0
  74. data/vendor/local/include/zdir.h +149 -0
  75. data/vendor/local/include/zdir_patch.h +82 -0
  76. data/vendor/local/include/zfile.h +177 -0
  77. data/vendor/local/include/zframe.h +176 -0
  78. data/vendor/local/include/zgossip.h +95 -0
  79. data/vendor/local/include/zgossip_engine.inc +927 -0
  80. data/vendor/local/include/zgossip_msg.h +129 -0
  81. data/vendor/local/include/zhash.h +195 -0
  82. data/vendor/local/include/zhash_primes.inc +329 -0
  83. data/vendor/local/include/zhashx.h +298 -0
  84. data/vendor/local/include/ziflist.h +77 -0
  85. data/vendor/local/include/zlist.h +158 -0
  86. data/vendor/local/include/zlistx.h +205 -0
  87. data/vendor/local/include/zloop.h +168 -0
  88. data/vendor/local/include/zmonitor.h +73 -0
  89. data/vendor/local/include/zmonitor_v2.h +56 -0
  90. data/vendor/local/include/zmq.h +617 -0
  91. data/vendor/local/include/zmq_utils.h +48 -0
  92. data/vendor/local/include/zmsg.h +280 -0
  93. data/vendor/local/include/zmutex.h +55 -0
  94. data/vendor/local/include/zpoller.h +92 -0
  95. data/vendor/local/include/zproc.h +168 -0
  96. data/vendor/local/include/zproxy.h +111 -0
  97. data/vendor/local/include/zproxy_v2.h +62 -0
  98. data/vendor/local/include/zrex.h +82 -0
  99. data/vendor/local/include/zsock.h +912 -0
  100. data/vendor/local/include/zsock_option.inc +4126 -0
  101. data/vendor/local/include/zsocket.h +110 -0
  102. data/vendor/local/include/zsockopt.h +256 -0
  103. data/vendor/local/include/zstr.h +110 -0
  104. data/vendor/local/include/zsys.h +386 -0
  105. data/vendor/local/include/zthread.h +50 -0
  106. data/vendor/local/include/ztimerset.h +90 -0
  107. data/vendor/local/include/ztrie.h +106 -0
  108. data/vendor/local/include/zuuid.h +96 -0
  109. data/vendor/local/lib/libczmq.dll.a +0 -0
  110. data/vendor/local/lib/liblibzmq.dll.a +0 -0
  111. data/vendor/local/lib/libzmq-static.a +0 -0
  112. data/vendor/local/lib/pkgconfig/libczmq.pc +23 -0
  113. data/vendor/local/lib/pkgconfig/libzmq.pc +11 -0
  114. data/vendor/local/share/zmq/AUTHORS.txt +147 -0
  115. data/vendor/local/share/zmq/COPYING.LESSER.txt +181 -0
  116. data/vendor/local/share/zmq/COPYING.txt +674 -0
  117. data/vendor/local/share/zmq/NEWS.txt +978 -0
  118. metadata +230 -0
@@ -0,0 +1,298 @@
1
+ /* =========================================================================
2
+ zhashx - extended generic type-free hash 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 __ZHASHX_H_INCLUDED__
15
+ #define __ZHASHX_H_INCLUDED__
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+
22
+ // @warning THE FOLLOWING @INTERFACE BLOCK IS AUTO-GENERATED BY ZPROJECT
23
+ // @warning Please edit the model at "api/zhashx.api" to make changes.
24
+ // @interface
25
+ // This is a stable class, and may not change except for emergencies. It
26
+ // is provided in stable builds.
27
+ // This class has draft methods, which may change over time. They are not
28
+ // in stable releases, by default. Use --enable-drafts to enable.
29
+ // This class has legacy methods, which will be removed over time. You
30
+ // should not use them, and migrate any code that is still using them.
31
+ // Destroy an item
32
+ typedef void (zhashx_destructor_fn) (
33
+ void **item);
34
+
35
+ // Duplicate an item
36
+ typedef void * (zhashx_duplicator_fn) (
37
+ const void *item);
38
+
39
+ // Compare two items, for sorting
40
+ typedef int (zhashx_comparator_fn) (
41
+ const void *item1, const void *item2);
42
+
43
+ // compare two items, for sorting
44
+ typedef void (zhashx_free_fn) (
45
+ void *data);
46
+
47
+ // compare two items, for sorting
48
+ typedef size_t (zhashx_hash_fn) (
49
+ const void *key);
50
+
51
+ // Serializes an item to a longstr.
52
+ // The caller takes ownership of the newly created object.
53
+ typedef char * (zhashx_serializer_fn) (
54
+ const void *item);
55
+
56
+ // Deserializes a longstr into an item.
57
+ // The caller takes ownership of the newly created object.
58
+ typedef void * (zhashx_deserializer_fn) (
59
+ const char *item_str);
60
+
61
+ // Callback function for zhashx_foreach method.
62
+ // This callback is deprecated and you should use zhashx_first/_next instead.
63
+ typedef int (zhashx_foreach_fn) (
64
+ const char *key, void *item, void *argument);
65
+
66
+ // Create a new, empty hash container
67
+ CZMQ_EXPORT zhashx_t *
68
+ zhashx_new (void);
69
+
70
+ // Unpack binary frame into a new hash table. Packed data must follow format
71
+ // defined by zhashx_pack. Hash table is set to autofree. An empty frame
72
+ // unpacks to an empty hash table.
73
+ CZMQ_EXPORT zhashx_t *
74
+ zhashx_unpack (zframe_t *frame);
75
+
76
+ // Destroy a hash container and all items in it
77
+ CZMQ_EXPORT void
78
+ zhashx_destroy (zhashx_t **self_p);
79
+
80
+ // Insert item into hash table with specified key and item.
81
+ // If key is already present returns -1 and leaves existing item unchanged
82
+ // Returns 0 on success.
83
+ CZMQ_EXPORT int
84
+ zhashx_insert (zhashx_t *self, const void *key, void *item);
85
+
86
+ // Update or insert item into hash table with specified key and item. If the
87
+ // key is already present, destroys old item and inserts new one. If you set
88
+ // a container item destructor, this is called on the old value. If the key
89
+ // was not already present, inserts a new item. Sets the hash cursor to the
90
+ // new item.
91
+ CZMQ_EXPORT void
92
+ zhashx_update (zhashx_t *self, const void *key, void *item);
93
+
94
+ // Remove an item specified by key from the hash table. If there was no such
95
+ // item, this function does nothing.
96
+ CZMQ_EXPORT void
97
+ zhashx_delete (zhashx_t *self, const void *key);
98
+
99
+ // Delete all items from the hash table. If the key destructor is
100
+ // set, calls it on every key. If the item destructor is set, calls
101
+ // it on every item.
102
+ CZMQ_EXPORT void
103
+ zhashx_purge (zhashx_t *self);
104
+
105
+ // Return the item at the specified key, or null
106
+ CZMQ_EXPORT void *
107
+ zhashx_lookup (zhashx_t *self, const void *key);
108
+
109
+ // Reindexes an item from an old key to a new key. If there was no such
110
+ // item, does nothing. Returns 0 if successful, else -1.
111
+ CZMQ_EXPORT int
112
+ zhashx_rename (zhashx_t *self, const void *old_key, const void *new_key);
113
+
114
+ // Set a free function for the specified hash table item. When the item is
115
+ // destroyed, the free function, if any, is called on that item.
116
+ // Use this when hash items are dynamically allocated, to ensure that
117
+ // you don't have memory leaks. You can pass 'free' or NULL as a free_fn.
118
+ // Returns the item, or NULL if there is no such item.
119
+ CZMQ_EXPORT void *
120
+ zhashx_freefn (zhashx_t *self, const void *key, zhashx_free_fn free_fn);
121
+
122
+ // Return the number of keys/items in the hash table
123
+ CZMQ_EXPORT size_t
124
+ zhashx_size (zhashx_t *self);
125
+
126
+ // Return a zlistx_t containing the keys for the items in the
127
+ // table. Uses the key_duplicator to duplicate all keys and sets the
128
+ // key_destructor as destructor for the list.
129
+ // Caller owns return value and must destroy it when done.
130
+ CZMQ_EXPORT zlistx_t *
131
+ zhashx_keys (zhashx_t *self);
132
+
133
+ // Return a zlistx_t containing the values for the items in the
134
+ // table. Uses the duplicator to duplicate all items and sets the
135
+ // destructor as destructor for the list.
136
+ // Caller owns return value and must destroy it when done.
137
+ CZMQ_EXPORT zlistx_t *
138
+ zhashx_values (zhashx_t *self);
139
+
140
+ // Simple iterator; returns first item in hash table, in no given order,
141
+ // or NULL if the table is empty. This method is simpler to use than the
142
+ // foreach() method, which is deprecated. To access the key for this item
143
+ // use zhashx_cursor(). NOTE: do NOT modify the table while iterating.
144
+ CZMQ_EXPORT void *
145
+ zhashx_first (zhashx_t *self);
146
+
147
+ // Simple iterator; returns next item in hash table, in no given order,
148
+ // or NULL if the last item was already returned. Use this together with
149
+ // zhashx_first() to process all items in a hash table. If you need the
150
+ // items in sorted order, use zhashx_keys() and then zlistx_sort(). To
151
+ // access the key for this item use zhashx_cursor(). NOTE: do NOT modify
152
+ // the table while iterating.
153
+ CZMQ_EXPORT void *
154
+ zhashx_next (zhashx_t *self);
155
+
156
+ // After a successful first/next method, returns the key for the item that
157
+ // was returned. This is a constant string that you may not modify or
158
+ // deallocate, and which lasts as long as the item in the hash. After an
159
+ // unsuccessful first/next, returns NULL.
160
+ CZMQ_EXPORT const void *
161
+ zhashx_cursor (zhashx_t *self);
162
+
163
+ // Add a comment to hash table before saving to disk. You can add as many
164
+ // comment lines as you like. These comment lines are discarded when loading
165
+ // the file. If you use a null format, all comments are deleted.
166
+ CZMQ_EXPORT void
167
+ zhashx_comment (zhashx_t *self, const char *format, ...) CHECK_PRINTF (2);
168
+
169
+ // Save hash table to a text file in name=value format. Hash values must be
170
+ // printable strings; keys may not contain '=' character. Returns 0 if OK,
171
+ // else -1 if a file error occurred.
172
+ CZMQ_EXPORT int
173
+ zhashx_save (zhashx_t *self, const char *filename);
174
+
175
+ // Load hash table from a text file in name=value format; hash table must
176
+ // already exist. Hash values must printable strings; keys may not contain
177
+ // '=' character. Returns 0 if OK, else -1 if a file was not readable.
178
+ CZMQ_EXPORT int
179
+ zhashx_load (zhashx_t *self, const char *filename);
180
+
181
+ // When a hash table was loaded from a file by zhashx_load, this method will
182
+ // reload the file if it has been modified since, and is "stable", i.e. not
183
+ // still changing. Returns 0 if OK, -1 if there was an error reloading the
184
+ // file.
185
+ CZMQ_EXPORT int
186
+ zhashx_refresh (zhashx_t *self);
187
+
188
+ // Serialize hash table to a binary frame that can be sent in a message.
189
+ // The packed format is compatible with the 'dictionary' type defined in
190
+ // http://rfc.zeromq.org/spec:35/FILEMQ, and implemented by zproto:
191
+ //
192
+ // ; A list of name/value pairs
193
+ // dictionary = dict-count *( dict-name dict-value )
194
+ // dict-count = number-4
195
+ // dict-value = longstr
196
+ // dict-name = string
197
+ //
198
+ // ; Strings are always length + text contents
199
+ // longstr = number-4 *VCHAR
200
+ // string = number-1 *VCHAR
201
+ //
202
+ // ; Numbers are unsigned integers in network byte order
203
+ // number-1 = 1OCTET
204
+ // number-4 = 4OCTET
205
+ //
206
+ // Comments are not included in the packed data. Item values MUST be
207
+ // strings.
208
+ // Caller owns return value and must destroy it when done.
209
+ CZMQ_EXPORT zframe_t *
210
+ zhashx_pack (zhashx_t *self);
211
+
212
+ // Make a copy of the list; items are duplicated if you set a duplicator
213
+ // for the list, otherwise not. Copying a null reference returns a null
214
+ // reference. Note that this method's behavior changed slightly for CZMQ
215
+ // v3.x, as it does not set nor respect autofree. It does however let you
216
+ // duplicate any hash table safely. The old behavior is in zhashx_dup_v2.
217
+ // Caller owns return value and must destroy it when done.
218
+ CZMQ_EXPORT zhashx_t *
219
+ zhashx_dup (zhashx_t *self);
220
+
221
+ // Set a user-defined deallocator for hash items; by default items are not
222
+ // freed when the hash is destroyed.
223
+ CZMQ_EXPORT void
224
+ zhashx_set_destructor (zhashx_t *self, zhashx_destructor_fn destructor);
225
+
226
+ // Set a user-defined duplicator for hash items; by default items are not
227
+ // copied when the hash is duplicated.
228
+ CZMQ_EXPORT void
229
+ zhashx_set_duplicator (zhashx_t *self, zhashx_duplicator_fn duplicator);
230
+
231
+ // Set a user-defined deallocator for keys; by default keys are freed
232
+ // when the hash is destroyed using free().
233
+ CZMQ_EXPORT void
234
+ zhashx_set_key_destructor (zhashx_t *self, zhashx_destructor_fn destructor);
235
+
236
+ // Set a user-defined duplicator for keys; by default keys are duplicated
237
+ // using strdup.
238
+ CZMQ_EXPORT void
239
+ zhashx_set_key_duplicator (zhashx_t *self, zhashx_duplicator_fn duplicator);
240
+
241
+ // Set a user-defined comparator for keys; by default keys are
242
+ // compared using strcmp.
243
+ CZMQ_EXPORT void
244
+ zhashx_set_key_comparator (zhashx_t *self, zhashx_comparator_fn comparator);
245
+
246
+ // Set a user-defined comparator for keys; by default keys are
247
+ // compared using strcmp.
248
+ CZMQ_EXPORT void
249
+ zhashx_set_key_hasher (zhashx_t *self, zhashx_hash_fn hasher);
250
+
251
+ // Make copy of hash table; if supplied table is null, returns null.
252
+ // Does not copy items themselves. Rebuilds new table so may be slow on
253
+ // very large tables. NOTE: only works with item values that are strings
254
+ // since there's no other way to know how to duplicate the item value.
255
+ CZMQ_EXPORT zhashx_t *
256
+ zhashx_dup_v2 (zhashx_t *self);
257
+
258
+ // *** Deprecated method, slated for removal: avoid using it ***
259
+ // Set hash for automatic value destruction. This method is deprecated
260
+ // and you should use set_destructor instead.
261
+ CZMQ_EXPORT void
262
+ zhashx_autofree (zhashx_t *self);
263
+
264
+ // *** Deprecated method, slated for removal: avoid using it ***
265
+ // Apply function to each item in the hash table. Items are iterated in no
266
+ // defined order. Stops if callback function returns non-zero and returns
267
+ // final return code from callback function (zero = success). This method
268
+ // is deprecated and you should use zhashx_first/_next instead.
269
+ CZMQ_EXPORT int
270
+ zhashx_foreach (zhashx_t *self, zhashx_foreach_fn callback, void *argument);
271
+
272
+ // Self test of this class.
273
+ CZMQ_EXPORT void
274
+ zhashx_test (bool verbose);
275
+
276
+ #ifdef CZMQ_BUILD_DRAFT_API
277
+ // *** Draft method, for development use, may change without warning ***
278
+ // Same as unpack but uses a user-defined deserializer function to convert
279
+ // a longstr back into item format.
280
+ CZMQ_EXPORT zhashx_t *
281
+ zhashx_unpack_own (zframe_t *frame, zhashx_deserializer_fn deserializer);
282
+
283
+ // *** Draft method, for development use, may change without warning ***
284
+ // Same as pack but uses a user-defined serializer function to convert items
285
+ // into longstr.
286
+ // Caller owns return value and must destroy it when done.
287
+ CZMQ_EXPORT zframe_t *
288
+ zhashx_pack_own (zhashx_t *self, zhashx_serializer_fn serializer);
289
+
290
+ #endif // CZMQ_BUILD_DRAFT_API
291
+ // @end
292
+
293
+
294
+ #ifdef __cplusplus
295
+ }
296
+ #endif
297
+
298
+ #endif
@@ -0,0 +1,77 @@
1
+ /* =========================================================================
2
+ ziflist - List of network interfaces available on system
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 __ZIFLIST_H_INCLUDED__
15
+ #define __ZIFLIST_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/ziflist.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
+ // Get a list of network interfaces currently defined on the system
27
+ CZMQ_EXPORT ziflist_t *
28
+ ziflist_new (void);
29
+
30
+ // Destroy a ziflist instance
31
+ CZMQ_EXPORT void
32
+ ziflist_destroy (ziflist_t **self_p);
33
+
34
+ // Reload network interfaces from system
35
+ CZMQ_EXPORT void
36
+ ziflist_reload (ziflist_t *self);
37
+
38
+ // Return the number of network interfaces on system
39
+ CZMQ_EXPORT size_t
40
+ ziflist_size (ziflist_t *self);
41
+
42
+ // Get first network interface, return NULL if there are none
43
+ CZMQ_EXPORT const char *
44
+ ziflist_first (ziflist_t *self);
45
+
46
+ // Get next network interface, return NULL if we hit the last one
47
+ CZMQ_EXPORT const char *
48
+ ziflist_next (ziflist_t *self);
49
+
50
+ // Return the current interface IP address as a printable string
51
+ CZMQ_EXPORT const char *
52
+ ziflist_address (ziflist_t *self);
53
+
54
+ // Return the current interface broadcast address as a printable string
55
+ CZMQ_EXPORT const char *
56
+ ziflist_broadcast (ziflist_t *self);
57
+
58
+ // Return the current interface network mask as a printable string
59
+ CZMQ_EXPORT const char *
60
+ ziflist_netmask (ziflist_t *self);
61
+
62
+ // Return the list of interfaces.
63
+ CZMQ_EXPORT void
64
+ ziflist_print (ziflist_t *self);
65
+
66
+ // Self test of this class.
67
+ CZMQ_EXPORT void
68
+ ziflist_test (bool verbose);
69
+
70
+ // @end
71
+
72
+
73
+ #ifdef __cplusplus
74
+ }
75
+ #endif
76
+
77
+ #endif
@@ -0,0 +1,158 @@
1
+ /* =========================================================================
2
+ zlist - simple 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 __ZLIST_H_INCLUDED__
15
+ #define __ZLIST_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/zlist.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
+ // Comparison function e.g. for sorting and removing.
27
+ typedef int (zlist_compare_fn) (
28
+ void *item1, void *item2);
29
+
30
+ // Callback function for zlist_freefn method
31
+ typedef void (zlist_free_fn) (
32
+ void *data);
33
+
34
+ // Create a new list container
35
+ CZMQ_EXPORT zlist_t *
36
+ zlist_new (void);
37
+
38
+ // Destroy a list container
39
+ CZMQ_EXPORT void
40
+ zlist_destroy (zlist_t **self_p);
41
+
42
+ // Return the item at the head of list. If the list is empty, returns NULL.
43
+ // Leaves cursor pointing at the head item, or NULL if the list is empty.
44
+ CZMQ_EXPORT void *
45
+ zlist_first (zlist_t *self);
46
+
47
+ // Return the next item. If the list is empty, returns NULL. To move to
48
+ // the start of the list call zlist_first (). Advances the cursor.
49
+ CZMQ_EXPORT void *
50
+ zlist_next (zlist_t *self);
51
+
52
+ // Return the item at the tail of list. If the list is empty, returns NULL.
53
+ // Leaves cursor pointing at the tail item, or NULL if the list is empty.
54
+ CZMQ_EXPORT void *
55
+ zlist_last (zlist_t *self);
56
+
57
+ // Return first item in the list, or null, leaves the cursor
58
+ CZMQ_EXPORT void *
59
+ zlist_head (zlist_t *self);
60
+
61
+ // Return last item in the list, or null, leaves the cursor
62
+ CZMQ_EXPORT void *
63
+ zlist_tail (zlist_t *self);
64
+
65
+ // Return the current item of list. If the list is empty, returns NULL.
66
+ // Leaves cursor pointing at the current item, or NULL if the list is empty.
67
+ CZMQ_EXPORT void *
68
+ zlist_item (zlist_t *self);
69
+
70
+ // Append an item to the end of the list, return 0 if OK or -1 if this
71
+ // failed for some reason (out of memory). Note that if a duplicator has
72
+ // been set, this method will also duplicate the item.
73
+ CZMQ_EXPORT int
74
+ zlist_append (zlist_t *self, void *item);
75
+
76
+ // Push an item to the start of the list, return 0 if OK or -1 if this
77
+ // failed for some reason (out of memory). Note that if a duplicator has
78
+ // been set, this method will also duplicate the item.
79
+ CZMQ_EXPORT int
80
+ zlist_push (zlist_t *self, void *item);
81
+
82
+ // Pop the item off the start of the list, if any
83
+ CZMQ_EXPORT void *
84
+ zlist_pop (zlist_t *self);
85
+
86
+ // Checks if an item already is present. Uses compare method to determine if
87
+ // items are equal. If the compare method is NULL the check will only compare
88
+ // pointers. Returns true if item is present else false.
89
+ CZMQ_EXPORT bool
90
+ zlist_exists (zlist_t *self, void *item);
91
+
92
+ // Remove the specified item from the list if present
93
+ CZMQ_EXPORT void
94
+ zlist_remove (zlist_t *self, void *item);
95
+
96
+ // Make a copy of list. If the list has autofree set, the copied list will
97
+ // duplicate all items, which must be strings. Otherwise, the list will hold
98
+ // pointers back to the items in the original list. If list is null, returns
99
+ // NULL.
100
+ // Caller owns return value and must destroy it when done.
101
+ CZMQ_EXPORT zlist_t *
102
+ zlist_dup (zlist_t *self);
103
+
104
+ // Purge all items from list
105
+ CZMQ_EXPORT void
106
+ zlist_purge (zlist_t *self);
107
+
108
+ // Return number of items in the list
109
+ CZMQ_EXPORT size_t
110
+ zlist_size (zlist_t *self);
111
+
112
+ // Sort the list. If the compare function is null, sorts the list by
113
+ // ascending key value using a straight ASCII comparison. If you specify
114
+ // a compare function, this decides how items are sorted. The sort is not
115
+ // stable, so may reorder items with the same keys. The algorithm used is
116
+ // combsort, a compromise between performance and simplicity.
117
+ CZMQ_EXPORT void
118
+ zlist_sort (zlist_t *self, zlist_compare_fn compare);
119
+
120
+ // Set list for automatic item destruction; item values MUST be strings.
121
+ // By default a list item refers to a value held elsewhere. When you set
122
+ // this, each time you append or push a list item, zlist will take a copy
123
+ // of the string value. Then, when you destroy the list, it will free all
124
+ // item values automatically. If you use any other technique to allocate
125
+ // list values, you must free them explicitly before destroying the list.
126
+ // The usual technique is to pop list items and destroy them, until the
127
+ // list is empty.
128
+ CZMQ_EXPORT void
129
+ zlist_autofree (zlist_t *self);
130
+
131
+ // Sets a compare function for this list. The function compares two items.
132
+ // It returns an integer less than, equal to, or greater than zero if the
133
+ // first item is found, respectively, to be less than, to match, or be
134
+ // greater than the second item.
135
+ // This function is used for sorting, removal and exists checking.
136
+ CZMQ_EXPORT void
137
+ zlist_comparefn (zlist_t *self, zlist_compare_fn fn);
138
+
139
+ // Set a free function for the specified list item. When the item is
140
+ // destroyed, the free function, if any, is called on that item.
141
+ // Use this when list items are dynamically allocated, to ensure that
142
+ // you don't have memory leaks. You can pass 'free' or NULL as a free_fn.
143
+ // Returns the item, or NULL if there is no such item.
144
+ CZMQ_EXPORT void *
145
+ zlist_freefn (zlist_t *self, void *item, zlist_free_fn fn, bool at_tail);
146
+
147
+ // Self test of this class.
148
+ CZMQ_EXPORT void
149
+ zlist_test (bool verbose);
150
+
151
+ // @end
152
+
153
+
154
+ #ifdef __cplusplus
155
+ }
156
+ #endif
157
+
158
+ #endif