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,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
+ ################################################################################