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,442 @@
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
+ # work with config files written in rfc.zeromq.org/spec:4/ZPL.
10
+ # @note This class is 100% generated using zproject.
11
+ class Zconfig
12
+ # Raised when one tries to use an instance of {Zconfig} 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.zconfig_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
+ #
78
+ # typedef int (zconfig_fct) (
79
+ # zconfig_t *self, void *arg, int level);
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.fct
86
+ ::FFI::Function.new :int, [:pointer, :pointer, :int], blocking: true do |self_, arg, level|
87
+ self_ = Zconfig.__new self_, false
88
+ result = yield self_, arg, level
89
+ result = Integer(result)
90
+ result
91
+ end
92
+ end
93
+
94
+ # Create new config item
95
+ # @param name [String, #to_s, nil]
96
+ # @param parent [Zconfig, #__ptr]
97
+ # @return [CZMQ::Zconfig]
98
+ def self.new(name, parent)
99
+ parent = parent.__ptr if parent
100
+ ptr = ::CZMQ::FFI.zconfig_new(name, parent)
101
+ __new ptr
102
+ end
103
+
104
+ # Load a config tree from a specified ZPL text file; returns a zconfig_t
105
+ # reference for the root, if the file exists and is readable. Returns NULL
106
+ # if the file does not exist.
107
+ # @param filename [String, #to_s, nil]
108
+ # @return [CZMQ::Zconfig]
109
+ def self.load(filename)
110
+ ptr = ::CZMQ::FFI.zconfig_load(filename)
111
+ __new ptr
112
+ end
113
+
114
+ # Equivalent to zconfig_load, taking a format string instead of a fixed
115
+ # filename.
116
+ # @param format [String, #to_s, nil]
117
+ # @param args [Array<Object>]
118
+ # @return [CZMQ::Zconfig]
119
+ def self.loadf(format, *args)
120
+ ptr = ::CZMQ::FFI.zconfig_loadf(format, *args)
121
+ __new ptr
122
+ end
123
+
124
+ # Destroy a config item and all its children
125
+ #
126
+ # @return [void]
127
+ def destroy()
128
+ return unless @ptr
129
+ self_p = __ptr_give_ref
130
+ result = ::CZMQ::FFI.zconfig_destroy(self_p)
131
+ result
132
+ end
133
+
134
+ # Return name of config item
135
+ #
136
+ # @return [::FFI::Pointer]
137
+ def name()
138
+ raise DestroyedError unless @ptr
139
+ self_p = @ptr
140
+ result = ::CZMQ::FFI.zconfig_name(self_p)
141
+ result
142
+ end
143
+
144
+ # Return value of config item
145
+ #
146
+ # @return [::FFI::Pointer]
147
+ def value()
148
+ raise DestroyedError unless @ptr
149
+ self_p = @ptr
150
+ result = ::CZMQ::FFI.zconfig_value(self_p)
151
+ result
152
+ end
153
+
154
+ # Insert or update configuration key with value
155
+ #
156
+ # @param path [String, #to_s, nil]
157
+ # @param value [String, #to_s, nil]
158
+ # @return [void]
159
+ def put(path, value)
160
+ raise DestroyedError unless @ptr
161
+ self_p = @ptr
162
+ result = ::CZMQ::FFI.zconfig_put(self_p, path, value)
163
+ result
164
+ end
165
+
166
+ # Equivalent to zconfig_put, accepting a format specifier and variable
167
+ # argument list, instead of a single string value.
168
+ #
169
+ # @param path [String, #to_s, nil]
170
+ # @param format [String, #to_s, nil]
171
+ # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
172
+ # @return [void]
173
+ def putf(path, format, *args)
174
+ raise DestroyedError unless @ptr
175
+ self_p = @ptr
176
+ result = ::CZMQ::FFI.zconfig_putf(self_p, path, format, *args)
177
+ result
178
+ end
179
+
180
+ # Get value for config item into a string value; leading slash is optional
181
+ # and ignored.
182
+ #
183
+ # @param path [String, #to_s, nil]
184
+ # @param default_value [String, #to_s, nil]
185
+ # @return [::FFI::Pointer]
186
+ def get(path, default_value)
187
+ raise DestroyedError unless @ptr
188
+ self_p = @ptr
189
+ result = ::CZMQ::FFI.zconfig_get(self_p, path, default_value)
190
+ result
191
+ end
192
+
193
+ # Set config item name, name may be NULL
194
+ #
195
+ # @param name [String, #to_s, nil]
196
+ # @return [void]
197
+ def set_name(name)
198
+ raise DestroyedError unless @ptr
199
+ self_p = @ptr
200
+ result = ::CZMQ::FFI.zconfig_set_name(self_p, name)
201
+ result
202
+ end
203
+
204
+ # Set new value for config item. The new value may be a string, a printf
205
+ # format, or NULL. Note that if string may possibly contain '%', or if it
206
+ # comes from an insecure source, you must use '%s' as the format, followed
207
+ # by the string.
208
+ #
209
+ # @param format [String, #to_s, nil]
210
+ # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
211
+ # @return [void]
212
+ def set_value(format, *args)
213
+ raise DestroyedError unless @ptr
214
+ self_p = @ptr
215
+ result = ::CZMQ::FFI.zconfig_set_value(self_p, format, *args)
216
+ result
217
+ end
218
+
219
+ # Find our first child, if any
220
+ #
221
+ # @return [Zconfig]
222
+ def child()
223
+ raise DestroyedError unless @ptr
224
+ self_p = @ptr
225
+ result = ::CZMQ::FFI.zconfig_child(self_p)
226
+ result = Zconfig.__new result, false
227
+ result
228
+ end
229
+
230
+ # Find our first sibling, if any
231
+ #
232
+ # @return [Zconfig]
233
+ def next()
234
+ raise DestroyedError unless @ptr
235
+ self_p = @ptr
236
+ result = ::CZMQ::FFI.zconfig_next(self_p)
237
+ result = Zconfig.__new result, false
238
+ result
239
+ end
240
+
241
+ # Find a config item along a path; leading slash is optional and ignored.
242
+ #
243
+ # @param path [String, #to_s, nil]
244
+ # @return [Zconfig]
245
+ def locate(path)
246
+ raise DestroyedError unless @ptr
247
+ self_p = @ptr
248
+ result = ::CZMQ::FFI.zconfig_locate(self_p, path)
249
+ result = Zconfig.__new result, false
250
+ result
251
+ end
252
+
253
+ # Locate the last config item at a specified depth
254
+ #
255
+ # @param level [Integer, #to_int, #to_i]
256
+ # @return [Zconfig]
257
+ def at_depth(level)
258
+ raise DestroyedError unless @ptr
259
+ self_p = @ptr
260
+ level = Integer(level)
261
+ result = ::CZMQ::FFI.zconfig_at_depth(self_p, level)
262
+ result = Zconfig.__new result, false
263
+ result
264
+ end
265
+
266
+ # Execute a callback for each config item in the tree; returns zero if
267
+ # successful, else -1.
268
+ #
269
+ # @param handler [::FFI::Pointer, #to_ptr]
270
+ # @param arg [::FFI::Pointer, #to_ptr]
271
+ # @return [Integer]
272
+ def execute(handler, arg)
273
+ raise DestroyedError unless @ptr
274
+ self_p = @ptr
275
+ result = ::CZMQ::FFI.zconfig_execute(self_p, handler, arg)
276
+ result
277
+ end
278
+
279
+ # Add comment to config item before saving to disk. You can add as many
280
+ # comment lines as you like. If you use a null format, all comments are
281
+ # deleted.
282
+ #
283
+ # @param format [String, #to_s, nil]
284
+ # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
285
+ # @return [void]
286
+ def set_comment(format, *args)
287
+ raise DestroyedError unless @ptr
288
+ self_p = @ptr
289
+ result = ::CZMQ::FFI.zconfig_set_comment(self_p, format, *args)
290
+ result
291
+ end
292
+
293
+ # Return comments of config item, as zlist.
294
+ #
295
+ # @return [Zlist]
296
+ def comments()
297
+ raise DestroyedError unless @ptr
298
+ self_p = @ptr
299
+ result = ::CZMQ::FFI.zconfig_comments(self_p)
300
+ result = Zlist.__new result, false
301
+ result
302
+ end
303
+
304
+ # Save a config tree to a specified ZPL text file, where a filename
305
+ # "-" means dump to standard output.
306
+ #
307
+ # @param filename [String, #to_s, nil]
308
+ # @return [Integer]
309
+ def save(filename)
310
+ raise DestroyedError unless @ptr
311
+ self_p = @ptr
312
+ result = ::CZMQ::FFI.zconfig_save(self_p, filename)
313
+ result
314
+ end
315
+
316
+ # Equivalent to zconfig_save, taking a format string instead of a fixed
317
+ # filename.
318
+ #
319
+ # @param format [String, #to_s, nil]
320
+ # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
321
+ # @return [Integer]
322
+ def savef(format, *args)
323
+ raise DestroyedError unless @ptr
324
+ self_p = @ptr
325
+ result = ::CZMQ::FFI.zconfig_savef(self_p, format, *args)
326
+ result
327
+ end
328
+
329
+ # Report filename used during zconfig_load, or NULL if none
330
+ #
331
+ # @return [String]
332
+ def filename()
333
+ raise DestroyedError unless @ptr
334
+ self_p = @ptr
335
+ result = ::CZMQ::FFI.zconfig_filename(self_p)
336
+ result
337
+ end
338
+
339
+ # Reload config tree from same file that it was previously loaded from.
340
+ # Returns 0 if OK, -1 if there was an error (and then does not change
341
+ # existing data).
342
+ #
343
+ # @param self_p [#__ptr_give_ref]
344
+ # @return [Integer]
345
+ def self.reload(self_p)
346
+ self_p = self_p.__ptr_give_ref
347
+ result = ::CZMQ::FFI.zconfig_reload(self_p)
348
+ result
349
+ end
350
+
351
+ # Load a config tree from a memory chunk
352
+ #
353
+ # @param chunk [Zchunk, #__ptr]
354
+ # @return [Zconfig]
355
+ def self.chunk_load(chunk)
356
+ chunk = chunk.__ptr if chunk
357
+ result = ::CZMQ::FFI.zconfig_chunk_load(chunk)
358
+ result = Zconfig.__new result, false
359
+ result
360
+ end
361
+
362
+ # Save a config tree to a new memory chunk
363
+ #
364
+ # @return [Zchunk]
365
+ def chunk_save()
366
+ raise DestroyedError unless @ptr
367
+ self_p = @ptr
368
+ result = ::CZMQ::FFI.zconfig_chunk_save(self_p)
369
+ result = Zchunk.__new result, false
370
+ result
371
+ end
372
+
373
+ # Load a config tree from a null-terminated string
374
+ #
375
+ # @param string [String, #to_s, nil]
376
+ # @return [Zconfig]
377
+ def self.str_load(string)
378
+ result = ::CZMQ::FFI.zconfig_str_load(string)
379
+ result = Zconfig.__new result, true
380
+ result
381
+ end
382
+
383
+ # Save a config tree to a new null terminated string
384
+ #
385
+ # @return [::FFI::AutoPointer]
386
+ def str_save()
387
+ raise DestroyedError unless @ptr
388
+ self_p = @ptr
389
+ result = ::CZMQ::FFI.zconfig_str_save(self_p)
390
+ result = ::FFI::AutoPointer.new(result, LibC.method(:free))
391
+ result
392
+ end
393
+
394
+ # Return true if a configuration tree was loaded from a file and that
395
+ # file has changed in since the tree was loaded.
396
+ #
397
+ # @return [Boolean]
398
+ def has_changed()
399
+ raise DestroyedError unless @ptr
400
+ self_p = @ptr
401
+ result = ::CZMQ::FFI.zconfig_has_changed(self_p)
402
+ result
403
+ end
404
+
405
+ # Print the config file to open stream
406
+ #
407
+ # @param file [::FFI::Pointer, #to_ptr]
408
+ # @return [void]
409
+ def fprint(file)
410
+ raise DestroyedError unless @ptr
411
+ self_p = @ptr
412
+ result = ::CZMQ::FFI.zconfig_fprint(self_p, file)
413
+ result
414
+ end
415
+
416
+ # Print properties of object
417
+ #
418
+ # @return [void]
419
+ def print()
420
+ raise DestroyedError unless @ptr
421
+ self_p = @ptr
422
+ result = ::CZMQ::FFI.zconfig_print(self_p)
423
+ result
424
+ end
425
+
426
+ # Self test of this class
427
+ #
428
+ # @param verbose [Boolean]
429
+ # @return [void]
430
+ def self.test(verbose)
431
+ verbose = !(0==verbose||!verbose) # boolean
432
+ result = ::CZMQ::FFI.zconfig_test(verbose)
433
+ result
434
+ end
435
+ end
436
+ end
437
+ end
438
+
439
+ ################################################################################
440
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
441
+ # Read the zproject/README.md for information about making permanent changes. #
442
+ ################################################################################
@@ -0,0 +1,156 @@
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
+ # provides hashing functions (SHA-1 at present)
10
+ # @note This class is 100% generated using zproject.
11
+ class Zdigest
12
+ # Raised when one tries to use an instance of {Zdigest} 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.zdigest_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
+ # Constructor - creates new digest object, which you use to build up a
77
+ # digest by repeatedly calling zdigest_update() on chunks of data.
78
+ # @return [CZMQ::Zdigest]
79
+ def self.new()
80
+ ptr = ::CZMQ::FFI.zdigest_new()
81
+ __new ptr
82
+ end
83
+
84
+ # Destroy a digest object
85
+ #
86
+ # @return [void]
87
+ def destroy()
88
+ return unless @ptr
89
+ self_p = __ptr_give_ref
90
+ result = ::CZMQ::FFI.zdigest_destroy(self_p)
91
+ result
92
+ end
93
+
94
+ # Add buffer into digest calculation
95
+ #
96
+ # @param buffer [::FFI::Pointer, #to_ptr]
97
+ # @param length [Integer, #to_int, #to_i]
98
+ # @return [void]
99
+ def update(buffer, length)
100
+ raise DestroyedError unless @ptr
101
+ self_p = @ptr
102
+ length = Integer(length)
103
+ result = ::CZMQ::FFI.zdigest_update(self_p, buffer, length)
104
+ result
105
+ end
106
+
107
+ # Return final digest hash data. If built without crypto support,
108
+ # returns NULL.
109
+ #
110
+ # @return [::FFI::Pointer]
111
+ def data()
112
+ raise DestroyedError unless @ptr
113
+ self_p = @ptr
114
+ result = ::CZMQ::FFI.zdigest_data(self_p)
115
+ result
116
+ end
117
+
118
+ # Return final digest hash size
119
+ #
120
+ # @return [Integer]
121
+ def size()
122
+ raise DestroyedError unless @ptr
123
+ self_p = @ptr
124
+ result = ::CZMQ::FFI.zdigest_size(self_p)
125
+ result
126
+ end
127
+
128
+ # Return digest as printable hex string; caller should not modify nor
129
+ # free this string. After calling this, you may not use zdigest_update()
130
+ # on the same digest. If built without crypto support, returns NULL.
131
+ #
132
+ # @return [::FFI::Pointer]
133
+ def string()
134
+ raise DestroyedError unless @ptr
135
+ self_p = @ptr
136
+ result = ::CZMQ::FFI.zdigest_string(self_p)
137
+ result
138
+ end
139
+
140
+ # Self test of this class.
141
+ #
142
+ # @param verbose [Boolean]
143
+ # @return [void]
144
+ def self.test(verbose)
145
+ verbose = !(0==verbose||!verbose) # boolean
146
+ result = ::CZMQ::FFI.zdigest_test(verbose)
147
+ result
148
+ end
149
+ end
150
+ end
151
+ end
152
+
153
+ ################################################################################
154
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
155
+ # Read the zproject/README.md for information about making permanent changes. #
156
+ ################################################################################