czmq-ffi-gen 0.13.0 → 0.14.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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +8 -0
  3. data/lib/czmq-ffi-gen/czmq/ffi/zactor.rb +40 -7
  4. data/lib/czmq-ffi-gen/czmq/ffi/zargs.rb +259 -0
  5. data/lib/czmq-ffi-gen/czmq/ffi/zarmour.rb +3 -3
  6. data/lib/czmq-ffi-gen/czmq/ffi/zcert.rb +15 -6
  7. data/lib/czmq-ffi-gen/czmq/ffi/zcertstore.rb +25 -11
  8. data/lib/czmq-ffi-gen/czmq/ffi/zchunk.rb +18 -18
  9. data/lib/czmq-ffi-gen/czmq/ffi/zclock.rb +6 -6
  10. data/lib/czmq-ffi-gen/czmq/ffi/zconfig.rb +27 -17
  11. data/lib/czmq-ffi-gen/czmq/ffi/zdigest.rb +4 -4
  12. data/lib/czmq-ffi-gen/czmq/ffi/zdir.rb +36 -36
  13. data/lib/czmq-ffi-gen/czmq/ffi/zdir_patch.rb +1 -1
  14. data/lib/czmq-ffi-gen/czmq/ffi/zfile.rb +27 -19
  15. data/lib/czmq-ffi-gen/czmq/ffi/zframe.rb +22 -21
  16. data/lib/czmq-ffi-gen/czmq/ffi/zhash.rb +54 -54
  17. data/lib/czmq-ffi-gen/czmq/ffi/zhashx.rb +82 -80
  18. data/lib/czmq-ffi-gen/czmq/ffi/ziflist.rb +30 -0
  19. data/lib/czmq-ffi-gen/czmq/ffi/zlist.rb +30 -30
  20. data/lib/czmq-ffi-gen/czmq/ffi/zlistx.rb +44 -44
  21. data/lib/czmq-ffi-gen/czmq/ffi/zloop.rb +39 -39
  22. data/lib/czmq-ffi-gen/czmq/ffi/zmsg.rb +46 -46
  23. data/lib/czmq-ffi-gen/czmq/ffi/zpoller.rb +16 -16
  24. data/lib/czmq-ffi-gen/czmq/ffi/zproc.rb +237 -34
  25. data/lib/czmq-ffi-gen/czmq/ffi/zsock.rb +1201 -973
  26. data/lib/czmq-ffi-gen/czmq/ffi/zstr.rb +58 -19
  27. data/lib/czmq-ffi-gen/czmq/ffi/zsys.rb +836 -0
  28. data/lib/czmq-ffi-gen/czmq/ffi/ztimerset.rb +6 -6
  29. data/lib/czmq-ffi-gen/czmq/ffi/ztrie.rb +10 -10
  30. data/lib/czmq-ffi-gen/czmq/ffi/zuuid.rb +4 -4
  31. data/lib/czmq-ffi-gen/czmq/ffi.rb +224 -698
  32. data/lib/czmq-ffi-gen/gem_version.rb +1 -1
  33. data/lib/czmq-ffi-gen/vendor.rb +9 -1
  34. metadata +5 -3
@@ -30,12 +30,13 @@ module CZMQ
30
30
  ObjectSpace.define_finalizer self, @finalizer
31
31
  end
32
32
  end
33
+ # @param ptr [::FFI::Pointer]
33
34
  # @return [Proc]
34
35
  def self.create_finalizer_for(ptr)
35
36
  Proc.new do
36
- "WARNING: "\
37
- "Objects of type #{self} cannot be destroyed implicitly. "\
38
- "Please call the correct destroy method with the relevant arguments."
37
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
38
+ ptr_ptr.write_pointer ptr
39
+ ::CZMQ::FFI.zproc_destroy ptr_ptr
39
40
  end
40
41
  end
41
42
  # @return [Boolean]
@@ -72,8 +73,210 @@ module CZMQ
72
73
  @finalizer = nil
73
74
  end
74
75
 
76
+ # Create a new zproc.
77
+ # NOTE: On Windows and with libzmq3 and libzmq2 this function
78
+ # returns NULL. Code needs to be ported there.
79
+ # @return [CZMQ::Zproc]
80
+ def self.new()
81
+ ptr = ::CZMQ::FFI.zproc_new()
82
+ __new ptr
83
+ end
84
+
85
+ # Destroy zproc, wait until process ends.
86
+ #
87
+ # @return [void]
88
+ def destroy()
89
+ return unless @ptr
90
+ self_p = __ptr_give_ref
91
+ result = ::CZMQ::FFI.zproc_destroy(self_p)
92
+ result
93
+ end
94
+
95
+ # Setup the command line arguments, the first item must be an (absolute) filename
96
+ # to run.
97
+ #
98
+ # @param args [Zlistx, #__ptr]
99
+ # @return [void]
100
+ def set_args(args)
101
+ raise DestroyedError unless @ptr
102
+ self_p = @ptr
103
+ args = args.__ptr if args
104
+ result = ::CZMQ::FFI.zproc_set_args(self_p, args)
105
+ result
106
+ end
107
+
108
+ # Setup the environment variables for the process.
109
+ #
110
+ # @param args [Zhashx, #__ptr]
111
+ # @return [void]
112
+ def set_env(args)
113
+ raise DestroyedError unless @ptr
114
+ self_p = @ptr
115
+ args = args.__ptr if args
116
+ result = ::CZMQ::FFI.zproc_set_env(self_p, args)
117
+ result
118
+ end
119
+
120
+ # Connects process stdin with a readable ('>', connect) zeromq socket. If
121
+ # socket argument is NULL, zproc creates own managed pair of inproc
122
+ # sockets. The writable one is then accessbile via zproc_stdin method.
123
+ #
124
+ # @param socket [::FFI::Pointer, #to_ptr]
125
+ # @return [void]
126
+ def set_stdin(socket)
127
+ raise DestroyedError unless @ptr
128
+ self_p = @ptr
129
+ result = ::CZMQ::FFI.zproc_set_stdin(self_p, socket)
130
+ result
131
+ end
132
+
133
+ # Connects process stdout with a writable ('@', bind) zeromq socket. If
134
+ # socket argument is NULL, zproc creates own managed pair of inproc
135
+ # sockets. The readable one is then accessbile via zproc_stdout method.
136
+ #
137
+ # @param socket [::FFI::Pointer, #to_ptr]
138
+ # @return [void]
139
+ def set_stdout(socket)
140
+ raise DestroyedError unless @ptr
141
+ self_p = @ptr
142
+ result = ::CZMQ::FFI.zproc_set_stdout(self_p, socket)
143
+ result
144
+ end
145
+
146
+ # Connects process stderr with a writable ('@', bind) zeromq socket. If
147
+ # socket argument is NULL, zproc creates own managed pair of inproc
148
+ # sockets. The readable one is then accessbile via zproc_stderr method.
149
+ #
150
+ # @param socket [::FFI::Pointer, #to_ptr]
151
+ # @return [void]
152
+ def set_stderr(socket)
153
+ raise DestroyedError unless @ptr
154
+ self_p = @ptr
155
+ result = ::CZMQ::FFI.zproc_set_stderr(self_p, socket)
156
+ result
157
+ end
158
+
159
+ # Return subprocess stdin writable socket. NULL for
160
+ # not initialized or external sockets.
161
+ #
162
+ # @return [::FFI::Pointer]
163
+ def stdin()
164
+ raise DestroyedError unless @ptr
165
+ self_p = @ptr
166
+ result = ::CZMQ::FFI.zproc_stdin(self_p)
167
+ result
168
+ end
169
+
170
+ # Return subprocess stdout readable socket. NULL for
171
+ # not initialized or external sockets.
172
+ #
173
+ # @return [::FFI::Pointer]
174
+ def stdout()
175
+ raise DestroyedError unless @ptr
176
+ self_p = @ptr
177
+ result = ::CZMQ::FFI.zproc_stdout(self_p)
178
+ result
179
+ end
180
+
181
+ # Return subprocess stderr readable socket. NULL for
182
+ # not initialized or external sockets.
183
+ #
184
+ # @return [::FFI::Pointer]
185
+ def stderr()
186
+ raise DestroyedError unless @ptr
187
+ self_p = @ptr
188
+ result = ::CZMQ::FFI.zproc_stderr(self_p)
189
+ result
190
+ end
191
+
192
+ # Starts the process.
193
+ #
194
+ # @return [Integer]
195
+ def run()
196
+ raise DestroyedError unless @ptr
197
+ self_p = @ptr
198
+ result = ::CZMQ::FFI.zproc_run(self_p)
199
+ result
200
+ end
201
+
202
+ # process exit code
203
+ #
204
+ # @return [Integer]
205
+ def returncode()
206
+ raise DestroyedError unless @ptr
207
+ self_p = @ptr
208
+ result = ::CZMQ::FFI.zproc_returncode(self_p)
209
+ result
210
+ end
211
+
212
+ # PID of the process
213
+ #
214
+ # @return [Integer]
215
+ def pid()
216
+ raise DestroyedError unless @ptr
217
+ self_p = @ptr
218
+ result = ::CZMQ::FFI.zproc_pid(self_p)
219
+ result
220
+ end
221
+
222
+ # return true if process is running, false if not yet started or finished
223
+ #
224
+ # @return [Boolean]
225
+ def running()
226
+ raise DestroyedError unless @ptr
227
+ self_p = @ptr
228
+ result = ::CZMQ::FFI.zproc_running(self_p)
229
+ result
230
+ end
231
+
232
+ # wait or poll process status, return return code
233
+ #
234
+ # @param hang [Boolean]
235
+ # @return [Integer]
236
+ def wait(hang)
237
+ raise DestroyedError unless @ptr
238
+ self_p = @ptr
239
+ hang = !(0==hang||!hang) # boolean
240
+ result = ::CZMQ::FFI.zproc_wait(self_p, hang)
241
+ result
242
+ end
243
+
244
+ # return internal actor, usefull for the polling if process died
245
+ #
246
+ # @return [::FFI::Pointer]
247
+ def actor()
248
+ raise DestroyedError unless @ptr
249
+ self_p = @ptr
250
+ result = ::CZMQ::FFI.zproc_actor(self_p)
251
+ result
252
+ end
253
+
254
+ # send a signal to the subprocess
255
+ #
256
+ # @param signal [Integer, #to_int, #to_i]
257
+ # @return [void]
258
+ def kill(signal)
259
+ raise DestroyedError unless @ptr
260
+ self_p = @ptr
261
+ signal = Integer(signal)
262
+ result = ::CZMQ::FFI.zproc_kill(self_p, signal)
263
+ result
264
+ end
265
+
266
+ # set verbose mode
267
+ #
268
+ # @param verbose [Boolean]
269
+ # @return [void]
270
+ def set_verbose(verbose)
271
+ raise DestroyedError unless @ptr
272
+ self_p = @ptr
273
+ verbose = !(0==verbose||!verbose) # boolean
274
+ result = ::CZMQ::FFI.zproc_set_verbose(self_p, verbose)
275
+ result
276
+ end
277
+
75
278
  # Returns CZMQ version as a single 6-digit integer encoding the major
76
- # version (x 10000), the minor version (x 100) and the patch.
279
+ # version (x 10000), the minor version (x 100) and the patch.
77
280
  #
78
281
  # @return [Integer]
79
282
  def self.czmq_version()
@@ -83,7 +286,7 @@ module CZMQ
83
286
 
84
287
  # Returns true if the process received a SIGINT or SIGTERM signal.
85
288
  # It is good practice to use this method to exit any infinite loop
86
- # processing messages.
289
+ # processing messages.
87
290
  #
88
291
  # @return [Boolean]
89
292
  def self.interrupted()
@@ -100,7 +303,7 @@ module CZMQ
100
303
  end
101
304
 
102
305
  # Return current host name, for use in public tcp:// endpoints.
103
- # If the host name is not resolvable, returns NULL.
306
+ # If the host name is not resolvable, returns NULL.
104
307
  #
105
308
  # @return [::FFI::AutoPointer]
106
309
  def self.hostname()
@@ -109,12 +312,12 @@ module CZMQ
109
312
  result
110
313
  end
111
314
 
112
- # Move the current process into the background. The precise effect
315
+ # Move the current process into the background. The precise effect
113
316
  # depends on the operating system. On POSIX boxes, moves to a specified
114
- # working directory (if specified), closes all file handles, reopens
317
+ # working directory (if specified), closes all file handles, reopens
115
318
  # stdin, stdout, and stderr to the null device, and sets the process to
116
319
  # ignore SIGHUP. On Windows, does nothing. Returns 0 if OK, -1 if there
117
- # was an error.
320
+ # was an error.
118
321
  #
119
322
  # @param workdir [String, #to_s, nil]
120
323
  # @return [void]
@@ -123,12 +326,12 @@ module CZMQ
123
326
  result
124
327
  end
125
328
 
126
- # Drop the process ID into the lockfile, with exclusive lock, and
127
- # switch the process to the specified group and/or user. Any of the
128
- # arguments may be null, indicating a no-op. Returns 0 on success,
129
- # -1 on failure. Note if you combine this with zsys_daemonize, run
329
+ # Drop the process ID into the lockfile, with exclusive lock, and
330
+ # switch the process to the specified group and/or user. Any of the
331
+ # arguments may be null, indicating a no-op. Returns 0 on success,
332
+ # -1 on failure. Note if you combine this with zsys_daemonize, run
130
333
  # after, not before that method, or the lockfile will hold the wrong
131
- # process ID.
334
+ # process ID.
132
335
  #
133
336
  # @param lockfile [String, #to_s, nil]
134
337
  # @param group [String, #to_s, nil]
@@ -139,11 +342,11 @@ module CZMQ
139
342
  result
140
343
  end
141
344
 
142
- # Configure the number of I/O threads that ZeroMQ will use. A good
143
- # rule of thumb is one thread per gigabit of traffic in or out. The
345
+ # Configure the number of I/O threads that ZeroMQ will use. A good
346
+ # rule of thumb is one thread per gigabit of traffic in or out. The
144
347
  # default is 1, sufficient for most applications. If the environment
145
- # variable ZSYS_IO_THREADS is defined, that provides the default.
146
- # Note that this method is valid only before any socket is created.
348
+ # variable ZSYS_IO_THREADS is defined, that provides the default.
349
+ # Note that this method is valid only before any socket is created.
147
350
  #
148
351
  # @param io_threads [Integer, #to_int, #to_i]
149
352
  # @return [void]
@@ -153,10 +356,10 @@ module CZMQ
153
356
  result
154
357
  end
155
358
 
156
- # Configure the number of sockets that ZeroMQ will allow. The default
359
+ # Configure the number of sockets that ZeroMQ will allow. The default
157
360
  # is 1024. The actual limit depends on the system, and you can query it
158
- # by using zsys_socket_limit (). A value of zero means "maximum".
159
- # Note that this method is valid only before any socket is created.
361
+ # by using zsys_socket_limit (). A value of zero means "maximum".
362
+ # Note that this method is valid only before any socket is created.
160
363
  #
161
364
  # @param max_sockets [Integer, #to_int, #to_i]
162
365
  # @return [void]
@@ -166,12 +369,12 @@ module CZMQ
166
369
  result
167
370
  end
168
371
 
169
- # Set network interface name to use for broadcasts, particularly zbeacon.
372
+ # Set network interface name to use for broadcasts, particularly zbeacon.
170
373
  # This lets the interface be configured for test environments where required.
171
- # For example, on Mac OS X, zbeacon cannot bind to 255.255.255.255 which is
172
- # the default when there is no specified interface. If the environment
173
- # variable ZSYS_INTERFACE is set, use that as the default interface name.
174
- # Setting the interface to "*" means "use all available interfaces".
374
+ # For example, on Mac OS X, zbeacon cannot bind to 255.255.255.255 which is
375
+ # the default when there is no specified interface. If the environment
376
+ # variable ZSYS_INTERFACE is set, use that as the default interface name.
377
+ # Setting the interface to "*" means "use all available interfaces".
175
378
  #
176
379
  # @param value [String, #to_s, nil]
177
380
  # @return [void]
@@ -189,8 +392,8 @@ module CZMQ
189
392
  end
190
393
 
191
394
  # Set log identity, which is a string that prefixes all log messages sent
192
- # by this process. The log identity defaults to the environment variable
193
- # ZSYS_LOGIDENT, if that is set.
395
+ # by this process. The log identity defaults to the environment variable
396
+ # ZSYS_LOGIDENT, if that is set.
194
397
  #
195
398
  # @param value [String, #to_s, nil]
196
399
  # @return [void]
@@ -199,13 +402,13 @@ module CZMQ
199
402
  result
200
403
  end
201
404
 
202
- # Sends log output to a PUB socket bound to the specified endpoint. To
203
- # collect such log output, create a SUB socket, subscribe to the traffic
204
- # you care about, and connect to the endpoint. Log traffic is sent as a
205
- # single string frame, in the same format as when sent to stdout. The
405
+ # Sends log output to a PUB socket bound to the specified endpoint. To
406
+ # collect such log output, create a SUB socket, subscribe to the traffic
407
+ # you care about, and connect to the endpoint. Log traffic is sent as a
408
+ # single string frame, in the same format as when sent to stdout. The
206
409
  # log system supports a single sender; multiple calls to this method will
207
410
  # bind the same sender to multiple endpoints. To disable the sender, call
208
- # this method with a null argument.
411
+ # this method with a null argument.
209
412
  #
210
413
  # @param endpoint [String, #to_s, nil]
211
414
  # @return [void]
@@ -215,7 +418,7 @@ module CZMQ
215
418
  end
216
419
 
217
420
  # Enable or disable logging to the system facility (syslog on POSIX boxes,
218
- # event log on Windows). By default this is disabled.
421
+ # event log on Windows). By default this is disabled.
219
422
  #
220
423
  # @param logsystem [Boolean]
221
424
  # @return [void]