czmq-ffi-gen 0.9.1-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +1 -0
  3. data/CHANGES.md +88 -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_sjlj-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,189 @@
1
+ ################################################################################
2
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
3
+ # Read the zproject/README.md for information about making permanent changes. #
4
+ ################################################################################
5
+
6
+ module CZMQ
7
+ module FFI
8
+
9
+ # List of network interfaces available on system
10
+ # @note This class is 100% generated using zproject.
11
+ class Ziflist
12
+ # Raised when one tries to use an instance of {Ziflist} after
13
+ # the internal pointer to the native object has been nullified.
14
+ class DestroyedError < RuntimeError; end
15
+
16
+ # Boilerplate for self pointer, initializer, and finalizer
17
+ class << self
18
+ alias :__new :new
19
+ end
20
+ # Attaches the pointer _ptr_ to this instance and defines a finalizer for
21
+ # it if necessary.
22
+ # @param ptr [::FFI::Pointer]
23
+ # @param finalize [Boolean]
24
+ def initialize(ptr, finalize = true)
25
+ @ptr = ptr
26
+ if @ptr.null?
27
+ @ptr = nil # Remove null pointers so we don't have to test for them.
28
+ elsif finalize
29
+ @finalizer = self.class.create_finalizer_for @ptr
30
+ ObjectSpace.define_finalizer self, @finalizer
31
+ end
32
+ end
33
+ # @param ptr [::FFI::Pointer]
34
+ # @return [Proc]
35
+ def self.create_finalizer_for(ptr)
36
+ Proc.new do
37
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
38
+ ptr_ptr.write_pointer ptr
39
+ ::CZMQ::FFI.ziflist_destroy ptr_ptr
40
+ end
41
+ end
42
+ # @return [Boolean]
43
+ def null?
44
+ !@ptr or @ptr.null?
45
+ end
46
+ # Return internal pointer
47
+ # @return [::FFI::Pointer]
48
+ def __ptr
49
+ raise DestroyedError unless @ptr
50
+ @ptr
51
+ end
52
+ # So external Libraries can just pass the Object to a FFI function which expects a :pointer
53
+ alias_method :to_ptr, :__ptr
54
+ # Nullify internal pointer and return pointer pointer.
55
+ # @note This detaches the current instance from the native object
56
+ # and thus makes it unusable.
57
+ # @return [::FFI::MemoryPointer] the pointer pointing to a pointer
58
+ # pointing to the native object
59
+ def __ptr_give_ref
60
+ raise DestroyedError unless @ptr
61
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
62
+ ptr_ptr.write_pointer @ptr
63
+ __undef_finalizer if @finalizer
64
+ @ptr = nil
65
+ ptr_ptr
66
+ end
67
+ # Undefines the finalizer for this object.
68
+ # @note Only use this if you need to and can guarantee that the native
69
+ # object will be freed by other means.
70
+ # @return [void]
71
+ def __undef_finalizer
72
+ ObjectSpace.undefine_finalizer self
73
+ @finalizer = nil
74
+ end
75
+
76
+ # Get a list of network interfaces currently defined on the system
77
+ # @return [CZMQ::Ziflist]
78
+ def self.new()
79
+ ptr = ::CZMQ::FFI.ziflist_new()
80
+ __new ptr
81
+ end
82
+
83
+ # Destroy a ziflist instance
84
+ #
85
+ # @return [void]
86
+ def destroy()
87
+ return unless @ptr
88
+ self_p = __ptr_give_ref
89
+ result = ::CZMQ::FFI.ziflist_destroy(self_p)
90
+ result
91
+ end
92
+
93
+ # Reload network interfaces from system
94
+ #
95
+ # @return [void]
96
+ def reload()
97
+ raise DestroyedError unless @ptr
98
+ self_p = @ptr
99
+ result = ::CZMQ::FFI.ziflist_reload(self_p)
100
+ result
101
+ end
102
+
103
+ # Return the number of network interfaces on system
104
+ #
105
+ # @return [Integer]
106
+ def size()
107
+ raise DestroyedError unless @ptr
108
+ self_p = @ptr
109
+ result = ::CZMQ::FFI.ziflist_size(self_p)
110
+ result
111
+ end
112
+
113
+ # Get first network interface, return NULL if there are none
114
+ #
115
+ # @return [String]
116
+ def first()
117
+ raise DestroyedError unless @ptr
118
+ self_p = @ptr
119
+ result = ::CZMQ::FFI.ziflist_first(self_p)
120
+ result
121
+ end
122
+
123
+ # Get next network interface, return NULL if we hit the last one
124
+ #
125
+ # @return [String]
126
+ def next()
127
+ raise DestroyedError unless @ptr
128
+ self_p = @ptr
129
+ result = ::CZMQ::FFI.ziflist_next(self_p)
130
+ result
131
+ end
132
+
133
+ # Return the current interface IP address as a printable string
134
+ #
135
+ # @return [String]
136
+ def address()
137
+ raise DestroyedError unless @ptr
138
+ self_p = @ptr
139
+ result = ::CZMQ::FFI.ziflist_address(self_p)
140
+ result
141
+ end
142
+
143
+ # Return the current interface broadcast address as a printable string
144
+ #
145
+ # @return [String]
146
+ def broadcast()
147
+ raise DestroyedError unless @ptr
148
+ self_p = @ptr
149
+ result = ::CZMQ::FFI.ziflist_broadcast(self_p)
150
+ result
151
+ end
152
+
153
+ # Return the current interface network mask as a printable string
154
+ #
155
+ # @return [String]
156
+ def netmask()
157
+ raise DestroyedError unless @ptr
158
+ self_p = @ptr
159
+ result = ::CZMQ::FFI.ziflist_netmask(self_p)
160
+ result
161
+ end
162
+
163
+ # Return the list of interfaces.
164
+ #
165
+ # @return [void]
166
+ def print()
167
+ raise DestroyedError unless @ptr
168
+ self_p = @ptr
169
+ result = ::CZMQ::FFI.ziflist_print(self_p)
170
+ result
171
+ end
172
+
173
+ # Self test of this class.
174
+ #
175
+ # @param verbose [Boolean]
176
+ # @return [void]
177
+ def self.test(verbose)
178
+ verbose = !(0==verbose||!verbose) # boolean
179
+ result = ::CZMQ::FFI.ziflist_test(verbose)
180
+ result
181
+ end
182
+ end
183
+ end
184
+ end
185
+
186
+ ################################################################################
187
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
188
+ # Read the zproject/README.md for information about making permanent changes. #
189
+ ################################################################################
@@ -0,0 +1,365 @@
1
+ ################################################################################
2
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
3
+ # Read the zproject/README.md for information about making permanent changes. #
4
+ ################################################################################
5
+
6
+ module CZMQ
7
+ module FFI
8
+
9
+ # simple generic list container
10
+ # @note This class is 100% generated using zproject.
11
+ class Zlist
12
+ # Raised when one tries to use an instance of {Zlist} after
13
+ # the internal pointer to the native object has been nullified.
14
+ class DestroyedError < RuntimeError; end
15
+
16
+ # Boilerplate for self pointer, initializer, and finalizer
17
+ class << self
18
+ alias :__new :new
19
+ end
20
+ # Attaches the pointer _ptr_ to this instance and defines a finalizer for
21
+ # it if necessary.
22
+ # @param ptr [::FFI::Pointer]
23
+ # @param finalize [Boolean]
24
+ def initialize(ptr, finalize = true)
25
+ @ptr = ptr
26
+ if @ptr.null?
27
+ @ptr = nil # Remove null pointers so we don't have to test for them.
28
+ elsif finalize
29
+ @finalizer = self.class.create_finalizer_for @ptr
30
+ ObjectSpace.define_finalizer self, @finalizer
31
+ end
32
+ end
33
+ # @param ptr [::FFI::Pointer]
34
+ # @return [Proc]
35
+ def self.create_finalizer_for(ptr)
36
+ Proc.new do
37
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
38
+ ptr_ptr.write_pointer ptr
39
+ ::CZMQ::FFI.zlist_destroy ptr_ptr
40
+ end
41
+ end
42
+ # @return [Boolean]
43
+ def null?
44
+ !@ptr or @ptr.null?
45
+ end
46
+ # Return internal pointer
47
+ # @return [::FFI::Pointer]
48
+ def __ptr
49
+ raise DestroyedError unless @ptr
50
+ @ptr
51
+ end
52
+ # So external Libraries can just pass the Object to a FFI function which expects a :pointer
53
+ alias_method :to_ptr, :__ptr
54
+ # Nullify internal pointer and return pointer pointer.
55
+ # @note This detaches the current instance from the native object
56
+ # and thus makes it unusable.
57
+ # @return [::FFI::MemoryPointer] the pointer pointing to a pointer
58
+ # pointing to the native object
59
+ def __ptr_give_ref
60
+ raise DestroyedError unless @ptr
61
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
62
+ ptr_ptr.write_pointer @ptr
63
+ __undef_finalizer if @finalizer
64
+ @ptr = nil
65
+ ptr_ptr
66
+ end
67
+ # Undefines the finalizer for this object.
68
+ # @note Only use this if you need to and can guarantee that the native
69
+ # object will be freed by other means.
70
+ # @return [void]
71
+ def __undef_finalizer
72
+ ObjectSpace.undefine_finalizer self
73
+ @finalizer = nil
74
+ end
75
+
76
+ # Create a new callback of the following type:
77
+ # Comparison function e.g. for sorting and removing.
78
+ # typedef int (zlist_compare_fn) (
79
+ # void *item1, void *item2);
80
+ #
81
+ # @note WARNING: If your Ruby code doesn't retain a reference to the
82
+ # FFI::Function object after passing it to a C function call,
83
+ # it may be garbage collected while C still holds the pointer,
84
+ # potentially resulting in a segmentation fault.
85
+ def self.compare_fn
86
+ ::FFI::Function.new :int, [:pointer, :pointer], blocking: true do |item1, item2|
87
+ result = yield item1, item2
88
+ result = Integer(result)
89
+ result
90
+ end
91
+ end
92
+
93
+ # Create a new callback of the following type:
94
+ # Callback function for zlist_freefn method
95
+ # typedef void (zlist_free_fn) (
96
+ # void *data);
97
+ #
98
+ # @note WARNING: If your Ruby code doesn't retain a reference to the
99
+ # FFI::Function object after passing it to a C function call,
100
+ # it may be garbage collected while C still holds the pointer,
101
+ # potentially resulting in a segmentation fault.
102
+ def self.free_fn
103
+ ::FFI::Function.new :void, [:pointer], blocking: true do |data|
104
+ result = yield data
105
+ result
106
+ end
107
+ end
108
+
109
+ # Create a new list container
110
+ # @return [CZMQ::Zlist]
111
+ def self.new()
112
+ ptr = ::CZMQ::FFI.zlist_new()
113
+ __new ptr
114
+ end
115
+
116
+ # Destroy a list container
117
+ #
118
+ # @return [void]
119
+ def destroy()
120
+ return unless @ptr
121
+ self_p = __ptr_give_ref
122
+ result = ::CZMQ::FFI.zlist_destroy(self_p)
123
+ result
124
+ end
125
+
126
+ # Return the item at the head of list. If the list is empty, returns NULL.
127
+ # Leaves cursor pointing at the head item, or NULL if the list is empty.
128
+ #
129
+ # @return [::FFI::Pointer]
130
+ def first()
131
+ raise DestroyedError unless @ptr
132
+ self_p = @ptr
133
+ result = ::CZMQ::FFI.zlist_first(self_p)
134
+ result
135
+ end
136
+
137
+ # Return the next item. If the list is empty, returns NULL. To move to
138
+ # the start of the list call zlist_first (). Advances the cursor.
139
+ #
140
+ # @return [::FFI::Pointer]
141
+ def next()
142
+ raise DestroyedError unless @ptr
143
+ self_p = @ptr
144
+ result = ::CZMQ::FFI.zlist_next(self_p)
145
+ result
146
+ end
147
+
148
+ # Return the item at the tail of list. If the list is empty, returns NULL.
149
+ # Leaves cursor pointing at the tail item, or NULL if the list is empty.
150
+ #
151
+ # @return [::FFI::Pointer]
152
+ def last()
153
+ raise DestroyedError unless @ptr
154
+ self_p = @ptr
155
+ result = ::CZMQ::FFI.zlist_last(self_p)
156
+ result
157
+ end
158
+
159
+ # Return first item in the list, or null, leaves the cursor
160
+ #
161
+ # @return [::FFI::Pointer]
162
+ def head()
163
+ raise DestroyedError unless @ptr
164
+ self_p = @ptr
165
+ result = ::CZMQ::FFI.zlist_head(self_p)
166
+ result
167
+ end
168
+
169
+ # Return last item in the list, or null, leaves the cursor
170
+ #
171
+ # @return [::FFI::Pointer]
172
+ def tail()
173
+ raise DestroyedError unless @ptr
174
+ self_p = @ptr
175
+ result = ::CZMQ::FFI.zlist_tail(self_p)
176
+ result
177
+ end
178
+
179
+ # Return the current item of list. If the list is empty, returns NULL.
180
+ # Leaves cursor pointing at the current item, or NULL if the list is empty.
181
+ #
182
+ # @return [::FFI::Pointer]
183
+ def item()
184
+ raise DestroyedError unless @ptr
185
+ self_p = @ptr
186
+ result = ::CZMQ::FFI.zlist_item(self_p)
187
+ result
188
+ end
189
+
190
+ # Append an item to the end of the list, return 0 if OK or -1 if this
191
+ # failed for some reason (out of memory). Note that if a duplicator has
192
+ # been set, this method will also duplicate the item.
193
+ #
194
+ # @param item [::FFI::Pointer, #to_ptr]
195
+ # @return [Integer]
196
+ def append(item)
197
+ raise DestroyedError unless @ptr
198
+ self_p = @ptr
199
+ result = ::CZMQ::FFI.zlist_append(self_p, item)
200
+ result
201
+ end
202
+
203
+ # Push an item to the start of the list, return 0 if OK or -1 if this
204
+ # failed for some reason (out of memory). Note that if a duplicator has
205
+ # been set, this method will also duplicate the item.
206
+ #
207
+ # @param item [::FFI::Pointer, #to_ptr]
208
+ # @return [Integer]
209
+ def push(item)
210
+ raise DestroyedError unless @ptr
211
+ self_p = @ptr
212
+ result = ::CZMQ::FFI.zlist_push(self_p, item)
213
+ result
214
+ end
215
+
216
+ # Pop the item off the start of the list, if any
217
+ #
218
+ # @return [::FFI::Pointer]
219
+ def pop()
220
+ raise DestroyedError unless @ptr
221
+ self_p = @ptr
222
+ result = ::CZMQ::FFI.zlist_pop(self_p)
223
+ result
224
+ end
225
+
226
+ # Checks if an item already is present. Uses compare method to determine if
227
+ # items are equal. If the compare method is NULL the check will only compare
228
+ # pointers. Returns true if item is present else false.
229
+ #
230
+ # @param item [::FFI::Pointer, #to_ptr]
231
+ # @return [Boolean]
232
+ def exists(item)
233
+ raise DestroyedError unless @ptr
234
+ self_p = @ptr
235
+ result = ::CZMQ::FFI.zlist_exists(self_p, item)
236
+ result
237
+ end
238
+
239
+ # Remove the specified item from the list if present
240
+ #
241
+ # @param item [::FFI::Pointer, #to_ptr]
242
+ # @return [void]
243
+ def remove(item)
244
+ raise DestroyedError unless @ptr
245
+ self_p = @ptr
246
+ result = ::CZMQ::FFI.zlist_remove(self_p, item)
247
+ result
248
+ end
249
+
250
+ # Make a copy of list. If the list has autofree set, the copied list will
251
+ # duplicate all items, which must be strings. Otherwise, the list will hold
252
+ # pointers back to the items in the original list. If list is null, returns
253
+ # NULL.
254
+ #
255
+ # @return [Zlist]
256
+ def dup()
257
+ raise DestroyedError unless @ptr
258
+ self_p = @ptr
259
+ result = ::CZMQ::FFI.zlist_dup(self_p)
260
+ result = Zlist.__new result, true
261
+ result
262
+ end
263
+
264
+ # Purge all items from list
265
+ #
266
+ # @return [void]
267
+ def purge()
268
+ raise DestroyedError unless @ptr
269
+ self_p = @ptr
270
+ result = ::CZMQ::FFI.zlist_purge(self_p)
271
+ result
272
+ end
273
+
274
+ # Return number of items in the list
275
+ #
276
+ # @return [Integer]
277
+ def size()
278
+ raise DestroyedError unless @ptr
279
+ self_p = @ptr
280
+ result = ::CZMQ::FFI.zlist_size(self_p)
281
+ result
282
+ end
283
+
284
+ # Sort the list. If the compare function is null, sorts the list by
285
+ # ascending key value using a straight ASCII comparison. If you specify
286
+ # a compare function, this decides how items are sorted. The sort is not
287
+ # stable, so may reorder items with the same keys. The algorithm used is
288
+ # combsort, a compromise between performance and simplicity.
289
+ #
290
+ # @param compare [::FFI::Pointer, #to_ptr]
291
+ # @return [void]
292
+ def sort(compare)
293
+ raise DestroyedError unless @ptr
294
+ self_p = @ptr
295
+ result = ::CZMQ::FFI.zlist_sort(self_p, compare)
296
+ result
297
+ end
298
+
299
+ # Set list for automatic item destruction; item values MUST be strings.
300
+ # By default a list item refers to a value held elsewhere. When you set
301
+ # this, each time you append or push a list item, zlist will take a copy
302
+ # of the string value. Then, when you destroy the list, it will free all
303
+ # item values automatically. If you use any other technique to allocate
304
+ # list values, you must free them explicitly before destroying the list.
305
+ # The usual technique is to pop list items and destroy them, until the
306
+ # list is empty.
307
+ #
308
+ # @return [void]
309
+ def autofree()
310
+ raise DestroyedError unless @ptr
311
+ self_p = @ptr
312
+ result = ::CZMQ::FFI.zlist_autofree(self_p)
313
+ result
314
+ end
315
+
316
+ # Sets a compare function for this list. The function compares two items.
317
+ # It returns an integer less than, equal to, or greater than zero if the
318
+ # first item is found, respectively, to be less than, to match, or be
319
+ # greater than the second item.
320
+ # This function is used for sorting, removal and exists checking.
321
+ #
322
+ # @param fn [::FFI::Pointer, #to_ptr]
323
+ # @return [void]
324
+ def comparefn(fn)
325
+ raise DestroyedError unless @ptr
326
+ self_p = @ptr
327
+ result = ::CZMQ::FFI.zlist_comparefn(self_p, fn)
328
+ result
329
+ end
330
+
331
+ # Set a free function for the specified list item. When the item is
332
+ # destroyed, the free function, if any, is called on that item.
333
+ # Use this when list items are dynamically allocated, to ensure that
334
+ # you don't have memory leaks. You can pass 'free' or NULL as a free_fn.
335
+ # Returns the item, or NULL if there is no such item.
336
+ #
337
+ # @param item [::FFI::Pointer, #to_ptr]
338
+ # @param fn [::FFI::Pointer, #to_ptr]
339
+ # @param at_tail [Boolean]
340
+ # @return [::FFI::Pointer]
341
+ def freefn(item, fn, at_tail)
342
+ raise DestroyedError unless @ptr
343
+ self_p = @ptr
344
+ at_tail = !(0==at_tail||!at_tail) # boolean
345
+ result = ::CZMQ::FFI.zlist_freefn(self_p, item, fn, at_tail)
346
+ result
347
+ end
348
+
349
+ # Self test of this class.
350
+ #
351
+ # @param verbose [Boolean]
352
+ # @return [void]
353
+ def self.test(verbose)
354
+ verbose = !(0==verbose||!verbose) # boolean
355
+ result = ::CZMQ::FFI.zlist_test(verbose)
356
+ result
357
+ end
358
+ end
359
+ end
360
+ end
361
+
362
+ ################################################################################
363
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
364
+ # Read the zproject/README.md for information about making permanent changes. #
365
+ ################################################################################