czmq-ffi-gen 0.6.0 → 0.7.0

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.
@@ -0,0 +1,429 @@
1
+ ################################################################################
2
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
3
+ # Please refer to the README for information about making permanent changes. #
4
+ ################################################################################
5
+
6
+ module CZMQ
7
+ module FFI
8
+
9
+ # extended generic list container
10
+ # @note This class is 100% generated using zproject.
11
+ class Zlistx
12
+ # Raised when one tries to use an instance of {Zlistx} 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.zlistx_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, empty list.
77
+ # @return [CZMQ::Zlistx]
78
+ def self.new()
79
+ ptr = ::CZMQ::FFI.zlistx_new()
80
+ __new ptr
81
+ end
82
+
83
+ # Destroy a list. If an item destructor was specified, all items in the
84
+ # list are automatically destroyed as well.
85
+ #
86
+ # @return [void]
87
+ def destroy()
88
+ return unless @ptr
89
+ self_p = __ptr_give_ref
90
+ result = ::CZMQ::FFI.zlistx_destroy(self_p)
91
+ result
92
+ end
93
+
94
+ # Add an item to the head of the list. Calls the item duplicator, if any,
95
+ # on the item. Resets cursor to list head. Returns an item handle on
96
+ # success, NULL if memory was exhausted.
97
+ #
98
+ # @param item [::FFI::Pointer, #to_ptr]
99
+ # @return [::FFI::Pointer]
100
+ def add_start(item)
101
+ raise DestroyedError unless @ptr
102
+ self_p = @ptr
103
+ result = ::CZMQ::FFI.zlistx_add_start(self_p, item)
104
+ result
105
+ end
106
+
107
+ # Add an item to the tail of the list. Calls the item duplicator, if any,
108
+ # on the item. Resets cursor to list head. Returns an item handle on
109
+ # success, NULL if memory was exhausted.
110
+ #
111
+ # @param item [::FFI::Pointer, #to_ptr]
112
+ # @return [::FFI::Pointer]
113
+ def add_end(item)
114
+ raise DestroyedError unless @ptr
115
+ self_p = @ptr
116
+ result = ::CZMQ::FFI.zlistx_add_end(self_p, item)
117
+ result
118
+ end
119
+
120
+ # Return the number of items in the list
121
+ #
122
+ # @return [Integer]
123
+ def size()
124
+ raise DestroyedError unless @ptr
125
+ self_p = @ptr
126
+ result = ::CZMQ::FFI.zlistx_size(self_p)
127
+ result
128
+ end
129
+
130
+ # Return first item in the list, or null, leaves the cursor
131
+ #
132
+ # @return [::FFI::Pointer]
133
+ def head()
134
+ raise DestroyedError unless @ptr
135
+ self_p = @ptr
136
+ result = ::CZMQ::FFI.zlistx_head(self_p)
137
+ result
138
+ end
139
+
140
+ # Return last item in the list, or null, leaves the cursor
141
+ #
142
+ # @return [::FFI::Pointer]
143
+ def tail()
144
+ raise DestroyedError unless @ptr
145
+ self_p = @ptr
146
+ result = ::CZMQ::FFI.zlistx_tail(self_p)
147
+ result
148
+ end
149
+
150
+ # Return the item at the head of list. If the list is empty, returns NULL.
151
+ # Leaves cursor pointing at the head item, or NULL if the list is empty.
152
+ #
153
+ # @return [::FFI::Pointer]
154
+ def first()
155
+ raise DestroyedError unless @ptr
156
+ self_p = @ptr
157
+ result = ::CZMQ::FFI.zlistx_first(self_p)
158
+ result
159
+ end
160
+
161
+ # Return the next item. At the end of the list (or in an empty list),
162
+ # returns NULL. Use repeated zlistx_next () calls to work through the list
163
+ # from zlistx_first (). First time, acts as zlistx_first().
164
+ #
165
+ # @return [::FFI::Pointer]
166
+ def next()
167
+ raise DestroyedError unless @ptr
168
+ self_p = @ptr
169
+ result = ::CZMQ::FFI.zlistx_next(self_p)
170
+ result
171
+ end
172
+
173
+ # Return the previous item. At the start of the list (or in an empty list),
174
+ # returns NULL. Use repeated zlistx_prev () calls to work through the list
175
+ # backwards from zlistx_last (). First time, acts as zlistx_last().
176
+ #
177
+ # @return [::FFI::Pointer]
178
+ def prev()
179
+ raise DestroyedError unless @ptr
180
+ self_p = @ptr
181
+ result = ::CZMQ::FFI.zlistx_prev(self_p)
182
+ result
183
+ end
184
+
185
+ # Return the item at the tail of list. If the list is empty, returns NULL.
186
+ # Leaves cursor pointing at the tail item, or NULL if the list is empty.
187
+ #
188
+ # @return [::FFI::Pointer]
189
+ def last()
190
+ raise DestroyedError unless @ptr
191
+ self_p = @ptr
192
+ result = ::CZMQ::FFI.zlistx_last(self_p)
193
+ result
194
+ end
195
+
196
+ # Returns the value of the item at the cursor, or NULL if the cursor is
197
+ # not pointing to an item.
198
+ #
199
+ # @return [::FFI::Pointer]
200
+ def item()
201
+ raise DestroyedError unless @ptr
202
+ self_p = @ptr
203
+ result = ::CZMQ::FFI.zlistx_item(self_p)
204
+ result
205
+ end
206
+
207
+ # Returns the handle of the item at the cursor, or NULL if the cursor is
208
+ # not pointing to an item.
209
+ #
210
+ # @return [::FFI::Pointer]
211
+ def cursor()
212
+ raise DestroyedError unless @ptr
213
+ self_p = @ptr
214
+ result = ::CZMQ::FFI.zlistx_cursor(self_p)
215
+ result
216
+ end
217
+
218
+ # Returns the item associated with the given list handle, or NULL if passed
219
+ # in handle is NULL. Asserts that the passed in handle points to a list element.
220
+ #
221
+ # @param handle [::FFI::Pointer, #to_ptr]
222
+ # @return [::FFI::Pointer]
223
+ def self.handle_item(handle)
224
+ result = ::CZMQ::FFI.zlistx_handle_item(handle)
225
+ result
226
+ end
227
+
228
+ # Find an item in the list, searching from the start. Uses the item
229
+ # comparator, if any, else compares item values directly. Returns the
230
+ # item handle found, or NULL. Sets the cursor to the found item, if any.
231
+ #
232
+ # @param item [::FFI::Pointer, #to_ptr]
233
+ # @return [::FFI::Pointer]
234
+ def find(item)
235
+ raise DestroyedError unless @ptr
236
+ self_p = @ptr
237
+ result = ::CZMQ::FFI.zlistx_find(self_p, item)
238
+ result
239
+ end
240
+
241
+ # Detach an item from the list, using its handle. The item is not modified,
242
+ # and the caller is responsible for destroying it if necessary. If handle is
243
+ # null, detaches the first item on the list. Returns item that was detached,
244
+ # or null if none was. If cursor was at item, moves cursor to previous item,
245
+ # so you can detach items while iterating forwards through a list.
246
+ #
247
+ # @param handle [::FFI::Pointer, #to_ptr]
248
+ # @return [::FFI::Pointer]
249
+ def detach(handle)
250
+ raise DestroyedError unless @ptr
251
+ self_p = @ptr
252
+ result = ::CZMQ::FFI.zlistx_detach(self_p, handle)
253
+ result
254
+ end
255
+
256
+ # Detach item at the cursor, if any, from the list. The item is not modified,
257
+ # and the caller is responsible for destroying it as necessary. Returns item
258
+ # that was detached, or null if none was. Moves cursor to previous item, so
259
+ # you can detach items while iterating forwards through a list.
260
+ #
261
+ # @return [::FFI::Pointer]
262
+ def detach_cur()
263
+ raise DestroyedError unless @ptr
264
+ self_p = @ptr
265
+ result = ::CZMQ::FFI.zlistx_detach_cur(self_p)
266
+ result
267
+ end
268
+
269
+ # Delete an item, using its handle. Calls the item destructor is any is
270
+ # set. If handle is null, deletes the first item on the list. Returns 0
271
+ # if an item was deleted, -1 if not. If cursor was at item, moves cursor
272
+ # to previous item, so you can delete items while iterating forwards
273
+ # through a list.
274
+ #
275
+ # @param handle [::FFI::Pointer, #to_ptr]
276
+ # @return [Integer]
277
+ def delete(handle)
278
+ raise DestroyedError unless @ptr
279
+ self_p = @ptr
280
+ result = ::CZMQ::FFI.zlistx_delete(self_p, handle)
281
+ result
282
+ end
283
+
284
+ # Move an item to the start of the list, via its handle.
285
+ #
286
+ # @param handle [::FFI::Pointer, #to_ptr]
287
+ # @return [void]
288
+ def move_start(handle)
289
+ raise DestroyedError unless @ptr
290
+ self_p = @ptr
291
+ result = ::CZMQ::FFI.zlistx_move_start(self_p, handle)
292
+ result
293
+ end
294
+
295
+ # Move an item to the end of the list, via its handle.
296
+ #
297
+ # @param handle [::FFI::Pointer, #to_ptr]
298
+ # @return [void]
299
+ def move_end(handle)
300
+ raise DestroyedError unless @ptr
301
+ self_p = @ptr
302
+ result = ::CZMQ::FFI.zlistx_move_end(self_p, handle)
303
+ result
304
+ end
305
+
306
+ # Remove all items from the list, and destroy them if the item destructor
307
+ # is set.
308
+ #
309
+ # @return [void]
310
+ def purge()
311
+ raise DestroyedError unless @ptr
312
+ self_p = @ptr
313
+ result = ::CZMQ::FFI.zlistx_purge(self_p)
314
+ result
315
+ end
316
+
317
+ # Sort the list. If an item comparator was set, calls that to compare
318
+ # items, otherwise compares on item value. The sort is not stable, so may
319
+ # reorder equal items.
320
+ #
321
+ # @return [void]
322
+ def sort()
323
+ raise DestroyedError unless @ptr
324
+ self_p = @ptr
325
+ result = ::CZMQ::FFI.zlistx_sort(self_p)
326
+ result
327
+ end
328
+
329
+ # Create a new node and insert it into a sorted list. Calls the item
330
+ # duplicator, if any, on the item. If low_value is true, starts searching
331
+ # from the start of the list, otherwise searches from the end. Use the item
332
+ # comparator, if any, to find where to place the new node. Returns a handle
333
+ # to the new node, or NULL if memory was exhausted. Resets the cursor to the
334
+ # list head.
335
+ #
336
+ # @param item [::FFI::Pointer, #to_ptr]
337
+ # @param low_value [Boolean]
338
+ # @return [::FFI::Pointer]
339
+ def insert(item, low_value)
340
+ raise DestroyedError unless @ptr
341
+ self_p = @ptr
342
+ low_value = !(0==low_value||!low_value) # boolean
343
+ result = ::CZMQ::FFI.zlistx_insert(self_p, item, low_value)
344
+ result
345
+ end
346
+
347
+ # Move an item, specified by handle, into position in a sorted list. Uses
348
+ # the item comparator, if any, to determine the new location. If low_value
349
+ # is true, starts searching from the start of the list, otherwise searches
350
+ # from the end.
351
+ #
352
+ # @param handle [::FFI::Pointer, #to_ptr]
353
+ # @param low_value [Boolean]
354
+ # @return [void]
355
+ def reorder(handle, low_value)
356
+ raise DestroyedError unless @ptr
357
+ self_p = @ptr
358
+ low_value = !(0==low_value||!low_value) # boolean
359
+ result = ::CZMQ::FFI.zlistx_reorder(self_p, handle, low_value)
360
+ result
361
+ end
362
+
363
+ # Make a copy of the list; items are duplicated if you set a duplicator
364
+ # for the list, otherwise not. Copying a null reference returns a null
365
+ # reference.
366
+ #
367
+ # @return [Zlistx]
368
+ def dup()
369
+ raise DestroyedError unless @ptr
370
+ self_p = @ptr
371
+ result = ::CZMQ::FFI.zlistx_dup(self_p)
372
+ result = Zlistx.__new result, false
373
+ result
374
+ end
375
+
376
+ # Set a user-defined deallocator for list items; by default items are not
377
+ # freed when the list is destroyed.
378
+ #
379
+ # @param destructor [::FFI::Pointer, #to_ptr]
380
+ # @return [void]
381
+ def set_destructor(destructor)
382
+ raise DestroyedError unless @ptr
383
+ self_p = @ptr
384
+ result = ::CZMQ::FFI.zlistx_set_destructor(self_p, destructor)
385
+ result
386
+ end
387
+
388
+ # Set a user-defined duplicator for list items; by default items are not
389
+ # copied when the list is duplicated.
390
+ #
391
+ # @param duplicator [::FFI::Pointer, #to_ptr]
392
+ # @return [void]
393
+ def set_duplicator(duplicator)
394
+ raise DestroyedError unless @ptr
395
+ self_p = @ptr
396
+ result = ::CZMQ::FFI.zlistx_set_duplicator(self_p, duplicator)
397
+ result
398
+ end
399
+
400
+ # Set a user-defined comparator for zlistx_find and zlistx_sort; the method
401
+ # must return -1, 0, or 1 depending on whether item1 is less than, equal to,
402
+ # or greater than, item2.
403
+ #
404
+ # @param comparator [::FFI::Pointer, #to_ptr]
405
+ # @return [void]
406
+ def set_comparator(comparator)
407
+ raise DestroyedError unless @ptr
408
+ self_p = @ptr
409
+ result = ::CZMQ::FFI.zlistx_set_comparator(self_p, comparator)
410
+ result
411
+ end
412
+
413
+ # Self test of this class.
414
+ #
415
+ # @param verbose [Boolean]
416
+ # @return [void]
417
+ def self.test(verbose)
418
+ verbose = !(0==verbose||!verbose) # boolean
419
+ result = ::CZMQ::FFI.zlistx_test(verbose)
420
+ result
421
+ end
422
+ end
423
+ end
424
+ end
425
+
426
+ ################################################################################
427
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
428
+ # Please refer to the README for information about making permanent changes. #
429
+ ################################################################################