czmq-ffi-gen 0.14.0 → 1.0.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.
@@ -5,7 +5,7 @@
5
5
 
6
6
  module CZMQ
7
7
  module FFI
8
- VERSION = '4.0.3'
8
+ VERSION = '4.2.1'
9
9
  end
10
10
  end
11
11
 
@@ -95,8 +95,8 @@ module CZMQ
95
95
  #
96
96
  # An example - to send $KTHXBAI string
97
97
  #
98
- # if (zstr_send (self->pipe, "$KTHXBAI") == 0)
99
- # zsock_wait (self->pipe);
98
+ # if (zstr_send (self, "$KTHXBAI") == 0)
99
+ # zsock_wait (self);
100
100
  # typedef void (zactor_destructor_fn) (
101
101
  # zactor_t *self);
102
102
  #
@@ -9,14 +9,17 @@ module CZMQ
9
9
  # Platform independent command line argument parsing helpers
10
10
  #
11
11
  # There are two kind of elements provided by this class
12
- # foo --named-parameter --parameter with_value positional arguments -a gain-parameter
13
- # zargs keeps poision only for arguments, parameters are to be accessed like hash.
12
+ # Named parameters, accessed by param_get and param_has methods
13
+ # * --named-parameter
14
+ # * --parameter with_value
15
+ # * -a val
16
+ # Positional arguments, accessed by zargs_first, zargs_next
14
17
  #
15
18
  # It DOES:
16
19
  # * provide easy to use CLASS compatible API for accessing argv
17
20
  # * is platform independent
18
21
  # * provide getopt_long style -- argument, which delimits parameters from arguments
19
- # * makes parameters positon independent
22
+ # * makes parameters position independent
20
23
  #
21
24
  # It does NOT
22
25
  # * change argv
@@ -173,8 +176,7 @@ module CZMQ
173
176
  result
174
177
  end
175
178
 
176
- # Return current parameter name, or NULL if there are no named
177
- # parameters.
179
+ # Return current parameter name, or NULL if there are no named parameters.
178
180
  #
179
181
  # @return [String]
180
182
  def param_name()
@@ -184,49 +186,49 @@ module CZMQ
184
186
  result
185
187
  end
186
188
 
187
- # Return value of named parameter, NULL if no given parameter has
188
- # been specified, or special value for wich zargs_param_empty ()
189
- # returns true.
189
+ # Return value of named parameter or NULL is it has no value (or was not specified)
190
190
  #
191
- # @param keys [String, #to_s, nil]
191
+ # @param name [String, #to_s, nil]
192
192
  # @return [String]
193
- def param_lookup(keys)
193
+ def get(name)
194
194
  raise DestroyedError unless @ptr
195
195
  self_p = @ptr
196
- result = ::CZMQ::FFI.zargs_param_lookup(self_p, keys)
196
+ result = ::CZMQ::FFI.zargs_get(self_p, name)
197
197
  result
198
198
  end
199
199
 
200
- # Return value of named parameter(s), NULL if no given parameter has
201
- # been specified, or special value for wich zargs_param_empty ()
202
- # returns true.
200
+ # Return value of one of parameter(s) or NULL is it has no value (or was not specified)
203
201
  #
204
- # @param keys [String, #to_s, nil]
202
+ # @param name [String, #to_s, nil]
205
203
  # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
206
204
  # @return [String]
207
- def param_lookupx(keys, *args)
205
+ def getx(name, *args)
208
206
  raise DestroyedError unless @ptr
209
207
  self_p = @ptr
210
- result = ::CZMQ::FFI.zargs_param_lookupx(self_p, keys, *args)
208
+ result = ::CZMQ::FFI.zargs_getx(self_p, name, *args)
211
209
  result
212
210
  end
213
211
 
214
- # Returns true if there are --help -h arguments
212
+ # Returns true if named parameter was specified on command line
215
213
  #
214
+ # @param name [String, #to_s, nil]
216
215
  # @return [Boolean]
217
- def has_help()
216
+ def has(name)
218
217
  raise DestroyedError unless @ptr
219
218
  self_p = @ptr
220
- result = ::CZMQ::FFI.zargs_has_help(self_p)
219
+ result = ::CZMQ::FFI.zargs_has(self_p, name)
221
220
  result
222
221
  end
223
222
 
224
- # Returns true if parameter did not have a value
223
+ # Returns true if named parameter(s) was specified on command line
225
224
  #
226
- # @param arg [String, #to_s, nil]
225
+ # @param name [String, #to_s, nil]
226
+ # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
227
227
  # @return [Boolean]
228
- def self.param_empty(arg)
229
- result = ::CZMQ::FFI.zargs_param_empty(arg)
228
+ def hasx(name, *args)
229
+ raise DestroyedError unless @ptr
230
+ self_p = @ptr
231
+ result = ::CZMQ::FFI.zargs_hasx(self_p, name, *args)
230
232
  result
231
233
  end
232
234
 
@@ -205,6 +205,16 @@ module CZMQ
205
205
  result
206
206
  end
207
207
 
208
+ # Return the state stored in certstore
209
+ #
210
+ # @return [::FFI::Pointer]
211
+ def state()
212
+ raise DestroyedError unless @ptr
213
+ self_p = @ptr
214
+ result = ::CZMQ::FFI.zcertstore_state(self_p)
215
+ result
216
+ end
217
+
208
218
  # Self test of this class
209
219
  #
210
220
  # @param verbose [Boolean]
@@ -73,6 +73,22 @@ module CZMQ
73
73
  @finalizer = nil
74
74
  end
75
75
 
76
+ # Create a new callback of the following type:
77
+ # Destroy an item
78
+ # typedef void (zchunk_destructor_fn) (
79
+ # void **hint);
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.destructor_fn
86
+ ::FFI::Function.new :void, [:pointer], blocking: true do |hint|
87
+ result = yield hint
88
+ result
89
+ end
90
+ end
91
+
76
92
  # Create a new chunk of the specified size. If you specify the data, it
77
93
  # is copied into the chunk. If you do not specify the data, the chunk is
78
94
  # allocated and left empty, and you can then add data using zchunk_append.
@@ -85,6 +101,19 @@ module CZMQ
85
101
  __new ptr
86
102
  end
87
103
 
104
+ # Create a new chunk from memory. Take ownership of the memory and calling the destructor
105
+ # on destroy.
106
+ # @param data [::FFI::Pointer, #to_ptr]
107
+ # @param size [Integer, #to_int, #to_i]
108
+ # @param destructor [::FFI::Pointer, #to_ptr]
109
+ # @param hint [::FFI::Pointer, #to_ptr]
110
+ # @return [CZMQ::Zchunk]
111
+ def self.frommem(data, size, destructor, hint)
112
+ size = Integer(size)
113
+ ptr = ::CZMQ::FFI.zchunk_frommem(data, size, destructor, hint)
114
+ __new ptr
115
+ end
116
+
88
117
  # Destroy a chunk
89
118
  #
90
119
  # @return [void]
@@ -317,6 +346,18 @@ module CZMQ
317
346
  result
318
347
  end
319
348
 
349
+ # Transform zchunk into a zframe that can be sent in a message.
350
+ # Take ownership of the chunk.
351
+ #
352
+ # @param self_p [#__ptr_give_ref]
353
+ # @return [Zframe]
354
+ def self.packx(self_p)
355
+ self_p = self_p.__ptr_give_ref
356
+ result = ::CZMQ::FFI.zchunk_packx(self_p)
357
+ result = Zframe.__new result, true
358
+ result
359
+ end
360
+
320
361
  # Transform a zframe into a zchunk.
321
362
  #
322
363
  # @param frame [Zframe, #__ptr]
@@ -131,6 +131,19 @@ module CZMQ
131
131
  result
132
132
  end
133
133
 
134
+ # Create copy of zconfig, caller MUST free the value
135
+ # Create copy of config, as new zconfig object. Returns a fresh zconfig_t
136
+ # object. If config is null, or memory was exhausted, returns null.
137
+ #
138
+ # @return [Zconfig]
139
+ def dup()
140
+ raise DestroyedError unless @ptr
141
+ self_p = @ptr
142
+ result = ::CZMQ::FFI.zconfig_dup(self_p)
143
+ result = Zconfig.__new result, true
144
+ result
145
+ end
146
+
134
147
  # Return name of config item
135
148
  #
136
149
  # @return [::FFI::Pointer]
@@ -402,12 +415,22 @@ module CZMQ
402
415
  result
403
416
  end
404
417
 
405
- # Destroy subtree (child)
418
+ # Destroy subtree (all children)
406
419
  #
407
420
  # @return [void]
408
- def remove()
421
+ def remove_subtree()
409
422
  raise DestroyedError unless @ptr
410
423
  self_p = @ptr
424
+ result = ::CZMQ::FFI.zconfig_remove_subtree(self_p)
425
+ result
426
+ end
427
+
428
+ # Destroy node and subtree (all children)
429
+ #
430
+ # @param self_p [#__ptr_give_ref]
431
+ # @return [void]
432
+ def self.remove(self_p)
433
+ self_p = self_p.__ptr_give_ref
411
434
  result = ::CZMQ::FFI.zconfig_remove(self_p)
412
435
  result
413
436
  end
@@ -86,7 +86,7 @@ module CZMQ
86
86
  __new ptr
87
87
  end
88
88
 
89
- # Create new temporary file for writing via tmpfile. File is automaticaly
89
+ # Create new temporary file for writing via tmpfile. File is automatically
90
90
  # deleted on destroy
91
91
  # @return [CZMQ::Zfile]
92
92
  def self.tmp()
@@ -82,6 +82,22 @@ module CZMQ
82
82
  @finalizer = nil
83
83
  end
84
84
 
85
+ # Create a new callback of the following type:
86
+ # Destroy an item
87
+ # typedef void (zframe_destructor_fn) (
88
+ # void **hint);
89
+ #
90
+ # @note WARNING: If your Ruby code doesn't retain a reference to the
91
+ # FFI::Function object after passing it to a C function call,
92
+ # it may be garbage collected while C still holds the pointer,
93
+ # potentially resulting in a segmentation fault.
94
+ def self.destructor_fn
95
+ ::FFI::Function.new :void, [:pointer], blocking: true do |hint|
96
+ result = yield hint
97
+ result
98
+ end
99
+ end
100
+
85
101
  # Create a new frame. If size is not null, allocates the frame data
86
102
  # to the specified size. If additionally, data is not null, copies
87
103
  # size octets from the specified data into the frame body.
@@ -109,6 +125,19 @@ module CZMQ
109
125
  __new ptr
110
126
  end
111
127
 
128
+ # Create a new frame from memory. Take ownership of the memory and calling the destructor
129
+ # on destroy.
130
+ # @param data [::FFI::Pointer, #to_ptr]
131
+ # @param size [Integer, #to_int, #to_i]
132
+ # @param destructor [::FFI::Pointer, #to_ptr]
133
+ # @param hint [::FFI::Pointer, #to_ptr]
134
+ # @return [CZMQ::Zframe]
135
+ def self.frommem(data, size, destructor, hint)
136
+ size = Integer(size)
137
+ ptr = ::CZMQ::FFI.zframe_frommem(data, size, destructor, hint)
138
+ __new ptr
139
+ end
140
+
112
141
  # Receive frame from socket, returns zframe_t object or NULL if the recv
113
142
  # was interrupted. Does a blocking recv, if you want to not block then use
114
143
  # zpoller or zloop.
@@ -322,6 +351,7 @@ module CZMQ
322
351
 
323
352
  # Send message to zsys log sink (may be stdout, or system facility as
324
353
  # configured by zsys_set_logstream). Prefix shows before frame, if not null.
354
+ # Long messages are truncated.
325
355
  #
326
356
  # @param prefix [String, #to_s, nil]
327
357
  # @return [void]
@@ -332,6 +362,22 @@ module CZMQ
332
362
  result
333
363
  end
334
364
 
365
+ # Send message to zsys log sink (may be stdout, or system facility as
366
+ # configured by zsys_set_logstream). Prefix shows before frame, if not null.
367
+ # Message length is specified; no truncation unless length is zero.
368
+ # Backwards compatible with zframe_print when length is zero.
369
+ #
370
+ # @param prefix [String, #to_s, nil]
371
+ # @param length [Integer, #to_int, #to_i]
372
+ # @return [void]
373
+ def print_n(prefix, length)
374
+ raise DestroyedError unless @ptr
375
+ self_p = @ptr
376
+ length = Integer(length)
377
+ result = ::CZMQ::FFI.zframe_print_n(self_p, prefix, length)
378
+ result
379
+ end
380
+
335
381
  # Probe the supplied object, and report if it looks like a zframe_t.
336
382
  #
337
383
  # @param self_ [::FFI::Pointer, #to_ptr]
@@ -0,0 +1,113 @@
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
+ # Http client, allowing multiple requests simultaneously and integrate easily with zpoller.
10
+ # Use zhttp_request class to create and send the request.
11
+ # Use zhttp_response class to receive the response.
12
+ # @note This class is 100% generated using zproject.
13
+ class ZhttpClient
14
+ # Raised when one tries to use an instance of {ZhttpClient} after
15
+ # the internal pointer to the native object has been nullified.
16
+ class DestroyedError < RuntimeError; end
17
+
18
+ # Boilerplate for self pointer, initializer, and finalizer
19
+ class << self
20
+ alias :__new :new
21
+ end
22
+ # Attaches the pointer _ptr_ to this instance and defines a finalizer for
23
+ # it if necessary.
24
+ # @param ptr [::FFI::Pointer]
25
+ # @param finalize [Boolean]
26
+ def initialize(ptr, finalize = true)
27
+ @ptr = ptr
28
+ if @ptr.null?
29
+ @ptr = nil # Remove null pointers so we don't have to test for them.
30
+ elsif finalize
31
+ @finalizer = self.class.create_finalizer_for @ptr
32
+ ObjectSpace.define_finalizer self, @finalizer
33
+ end
34
+ end
35
+ # @param ptr [::FFI::Pointer]
36
+ # @return [Proc]
37
+ def self.create_finalizer_for(ptr)
38
+ Proc.new do
39
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
40
+ ptr_ptr.write_pointer ptr
41
+ ::CZMQ::FFI.zhttp_client_destroy ptr_ptr
42
+ end
43
+ end
44
+ # @return [Boolean]
45
+ def null?
46
+ !@ptr or @ptr.null?
47
+ end
48
+ # Return internal pointer
49
+ # @return [::FFI::Pointer]
50
+ def __ptr
51
+ raise DestroyedError unless @ptr
52
+ @ptr
53
+ end
54
+ # So external Libraries can just pass the Object to a FFI function which expects a :pointer
55
+ alias_method :to_ptr, :__ptr
56
+ # Nullify internal pointer and return pointer pointer.
57
+ # @note This detaches the current instance from the native object
58
+ # and thus makes it unusable.
59
+ # @return [::FFI::MemoryPointer] the pointer pointing to a pointer
60
+ # pointing to the native object
61
+ def __ptr_give_ref
62
+ raise DestroyedError unless @ptr
63
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
64
+ ptr_ptr.write_pointer @ptr
65
+ __undef_finalizer if @finalizer
66
+ @ptr = nil
67
+ ptr_ptr
68
+ end
69
+ # Undefines the finalizer for this object.
70
+ # @note Only use this if you need to and can guarantee that the native
71
+ # object will be freed by other means.
72
+ # @return [void]
73
+ def __undef_finalizer
74
+ ObjectSpace.undefine_finalizer self
75
+ @finalizer = nil
76
+ end
77
+
78
+ # Create a new http client
79
+ # @param verbose [Boolean]
80
+ # @return [CZMQ::ZhttpClient]
81
+ def self.new(verbose)
82
+ verbose = !(0==verbose||!verbose) # boolean
83
+ ptr = ::CZMQ::FFI.zhttp_client_new(verbose)
84
+ __new ptr
85
+ end
86
+
87
+ # Destroy an http client
88
+ #
89
+ # @return [void]
90
+ def destroy()
91
+ return unless @ptr
92
+ self_p = __ptr_give_ref
93
+ result = ::CZMQ::FFI.zhttp_client_destroy(self_p)
94
+ result
95
+ end
96
+
97
+ # Self test of this class.
98
+ #
99
+ # @param verbose [Boolean]
100
+ # @return [void]
101
+ def self.test(verbose)
102
+ verbose = !(0==verbose||!verbose) # boolean
103
+ result = ::CZMQ::FFI.zhttp_client_test(verbose)
104
+ result
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ ################################################################################
111
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
112
+ # Read the zproject/README.md for information about making permanent changes. #
113
+ ################################################################################
@@ -0,0 +1,312 @@
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
+ # Http request that can be received from zhttp_server or sent to zhttp_client.
10
+ # Class can be reused between send & recv calls.
11
+ # Headers and Content is being destroyed after every send call.
12
+ # @note This class is 100% generated using zproject.
13
+ class ZhttpRequest
14
+ # Raised when one tries to use an instance of {ZhttpRequest} after
15
+ # the internal pointer to the native object has been nullified.
16
+ class DestroyedError < RuntimeError; end
17
+
18
+ # Boilerplate for self pointer, initializer, and finalizer
19
+ class << self
20
+ alias :__new :new
21
+ end
22
+ # Attaches the pointer _ptr_ to this instance and defines a finalizer for
23
+ # it if necessary.
24
+ # @param ptr [::FFI::Pointer]
25
+ # @param finalize [Boolean]
26
+ def initialize(ptr, finalize = true)
27
+ @ptr = ptr
28
+ if @ptr.null?
29
+ @ptr = nil # Remove null pointers so we don't have to test for them.
30
+ elsif finalize
31
+ @finalizer = self.class.create_finalizer_for @ptr
32
+ ObjectSpace.define_finalizer self, @finalizer
33
+ end
34
+ end
35
+ # @param ptr [::FFI::Pointer]
36
+ # @return [Proc]
37
+ def self.create_finalizer_for(ptr)
38
+ Proc.new do
39
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
40
+ ptr_ptr.write_pointer ptr
41
+ ::CZMQ::FFI.zhttp_request_destroy ptr_ptr
42
+ end
43
+ end
44
+ # @return [Boolean]
45
+ def null?
46
+ !@ptr or @ptr.null?
47
+ end
48
+ # Return internal pointer
49
+ # @return [::FFI::Pointer]
50
+ def __ptr
51
+ raise DestroyedError unless @ptr
52
+ @ptr
53
+ end
54
+ # So external Libraries can just pass the Object to a FFI function which expects a :pointer
55
+ alias_method :to_ptr, :__ptr
56
+ # Nullify internal pointer and return pointer pointer.
57
+ # @note This detaches the current instance from the native object
58
+ # and thus makes it unusable.
59
+ # @return [::FFI::MemoryPointer] the pointer pointing to a pointer
60
+ # pointing to the native object
61
+ def __ptr_give_ref
62
+ raise DestroyedError unless @ptr
63
+ ptr_ptr = ::FFI::MemoryPointer.new :pointer
64
+ ptr_ptr.write_pointer @ptr
65
+ __undef_finalizer if @finalizer
66
+ @ptr = nil
67
+ ptr_ptr
68
+ end
69
+ # Undefines the finalizer for this object.
70
+ # @note Only use this if you need to and can guarantee that the native
71
+ # object will be freed by other means.
72
+ # @return [void]
73
+ def __undef_finalizer
74
+ ObjectSpace.undefine_finalizer self
75
+ @finalizer = nil
76
+ end
77
+
78
+ # Create a new http request.
79
+ # @return [CZMQ::ZhttpRequest]
80
+ def self.new()
81
+ ptr = ::CZMQ::FFI.zhttp_request_new()
82
+ __new ptr
83
+ end
84
+
85
+ # Destroy an http request.
86
+ #
87
+ # @return [void]
88
+ def destroy()
89
+ return unless @ptr
90
+ self_p = __ptr_give_ref
91
+ result = ::CZMQ::FFI.zhttp_request_destroy(self_p)
92
+ result
93
+ end
94
+
95
+ # Receive a new request from zhttp_server.
96
+ # Return the underlying connection if successful, to be used when calling zhttp_response_send.
97
+ #
98
+ # @param sock [Zsock, #__ptr]
99
+ # @return [::FFI::Pointer]
100
+ def recv(sock)
101
+ raise DestroyedError unless @ptr
102
+ self_p = @ptr
103
+ sock = sock.__ptr if sock
104
+ result = ::CZMQ::FFI.zhttp_request_recv(self_p, sock)
105
+ result
106
+ end
107
+
108
+ # Send a request to zhttp_client.
109
+ # Url and the request path will be concatenated.
110
+ # This behavior is useful for url rewrite and reverse proxy.
111
+ #
112
+ # Send also allow two user provided arguments which will be returned with the response.
113
+ # The reason for two, is to be able to pass around the server connection when forwarding requests or both a callback function and an arg.
114
+ #
115
+ # @param client [ZhttpClient, #__ptr]
116
+ # @param timeout [Integer, #to_int, #to_i]
117
+ # @param arg [::FFI::Pointer, #to_ptr]
118
+ # @param arg2 [::FFI::Pointer, #to_ptr]
119
+ # @return [Integer]
120
+ def send(client, timeout, arg, arg2)
121
+ raise DestroyedError unless @ptr
122
+ self_p = @ptr
123
+ client = client.__ptr if client
124
+ timeout = Integer(timeout)
125
+ result = ::CZMQ::FFI.zhttp_request_send(self_p, client, timeout, arg, arg2)
126
+ result
127
+ end
128
+
129
+ # Get the request method
130
+ #
131
+ # @return [String]
132
+ def method()
133
+ raise DestroyedError unless @ptr
134
+ self_p = @ptr
135
+ result = ::CZMQ::FFI.zhttp_request_method(self_p)
136
+ result
137
+ end
138
+
139
+ # Set the request method
140
+ #
141
+ # @param method [String, #to_s, nil]
142
+ # @return [void]
143
+ def set_method(method)
144
+ raise DestroyedError unless @ptr
145
+ self_p = @ptr
146
+ result = ::CZMQ::FFI.zhttp_request_set_method(self_p, method)
147
+ result
148
+ end
149
+
150
+ # Get the request url.
151
+ # When receiving a request from http server this is only the path part of the url.
152
+ #
153
+ # @return [String]
154
+ def url()
155
+ raise DestroyedError unless @ptr
156
+ self_p = @ptr
157
+ result = ::CZMQ::FFI.zhttp_request_url(self_p)
158
+ result
159
+ end
160
+
161
+ # Set the request url
162
+ # When sending a request to http client this should be full url.
163
+ #
164
+ # @param url [String, #to_s, nil]
165
+ # @return [void]
166
+ def set_url(url)
167
+ raise DestroyedError unless @ptr
168
+ self_p = @ptr
169
+ result = ::CZMQ::FFI.zhttp_request_set_url(self_p, url)
170
+ result
171
+ end
172
+
173
+ # Get the request content type
174
+ #
175
+ # @return [String]
176
+ def content_type()
177
+ raise DestroyedError unless @ptr
178
+ self_p = @ptr
179
+ result = ::CZMQ::FFI.zhttp_request_content_type(self_p)
180
+ result
181
+ end
182
+
183
+ # Set the request content type
184
+ #
185
+ # @param content_type [String, #to_s, nil]
186
+ # @return [void]
187
+ def set_content_type(content_type)
188
+ raise DestroyedError unless @ptr
189
+ self_p = @ptr
190
+ result = ::CZMQ::FFI.zhttp_request_set_content_type(self_p, content_type)
191
+ result
192
+ end
193
+
194
+ # Get the content length of the request
195
+ #
196
+ # @return [Integer]
197
+ def content_length()
198
+ raise DestroyedError unless @ptr
199
+ self_p = @ptr
200
+ result = ::CZMQ::FFI.zhttp_request_content_length(self_p)
201
+ result
202
+ end
203
+
204
+ # Get the headers of the request
205
+ #
206
+ # @return [Zhash]
207
+ def headers()
208
+ raise DestroyedError unless @ptr
209
+ self_p = @ptr
210
+ result = ::CZMQ::FFI.zhttp_request_headers(self_p)
211
+ result = Zhash.__new result, false
212
+ result
213
+ end
214
+
215
+ # Get the content of the request.
216
+ #
217
+ # @return [String]
218
+ def content()
219
+ raise DestroyedError unless @ptr
220
+ self_p = @ptr
221
+ result = ::CZMQ::FFI.zhttp_request_content(self_p)
222
+ result
223
+ end
224
+
225
+ # Get the content of the request.
226
+ #
227
+ # @return [::FFI::AutoPointer]
228
+ def get_content()
229
+ raise DestroyedError unless @ptr
230
+ self_p = @ptr
231
+ result = ::CZMQ::FFI.zhttp_request_get_content(self_p)
232
+ result = ::FFI::AutoPointer.new(result, LibC.method(:free))
233
+ result
234
+ end
235
+
236
+ # Set the content of the request.
237
+ # Content must by dynamically allocated string.
238
+ # Takes ownership of the content.
239
+ #
240
+ # @param content [::FFI::Pointer, #to_ptr]
241
+ # @return [void]
242
+ def set_content(content)
243
+ raise DestroyedError unless @ptr
244
+ self_p = @ptr
245
+ result = ::CZMQ::FFI.zhttp_request_set_content(self_p, content)
246
+ result
247
+ end
248
+
249
+ # Set the content of the request..
250
+ # The content is assumed to be constant-memory and will therefore not be copied or deallocated in any way.
251
+ #
252
+ # @param content [String, #to_s, nil]
253
+ # @return [void]
254
+ def set_content_const(content)
255
+ raise DestroyedError unless @ptr
256
+ self_p = @ptr
257
+ result = ::CZMQ::FFI.zhttp_request_set_content_const(self_p, content)
258
+ result
259
+ end
260
+
261
+ # Set the content to NULL
262
+ #
263
+ # @return [void]
264
+ def reset_content()
265
+ raise DestroyedError unless @ptr
266
+ self_p = @ptr
267
+ result = ::CZMQ::FFI.zhttp_request_reset_content(self_p)
268
+ result
269
+ end
270
+
271
+ # Match the path of the request.
272
+ # Support wildcards with '%s' symbol inside the match string.
273
+ # Matching wildcards until the next '/', '?' or '\0'.
274
+ # On successful match the variadic arguments will be filled with the matching strings.
275
+ # On successful match the method is modifying the url field and break it into substrings.
276
+ # If you need to use the url, do it before matching or take a copy.
277
+ #
278
+ # User must not free the variadic arguments as they are part of the url.
279
+ #
280
+ # To use the percent symbol, just double it, e.g "%%something".
281
+ #
282
+ # Example:
283
+ # if (zhttp_request_match (request, "POST", "/send/%s/%s", &name, &id))
284
+ #
285
+ # @param method [String, #to_s, nil]
286
+ # @param path [String, #to_s, nil]
287
+ # @param args [Array<Object>] see https://github.com/ffi/ffi/wiki/examples#using-varargs
288
+ # @return [Boolean]
289
+ def match(method, path, *args)
290
+ raise DestroyedError unless @ptr
291
+ self_p = @ptr
292
+ result = ::CZMQ::FFI.zhttp_request_match(self_p, method, path, *args)
293
+ result
294
+ end
295
+
296
+ # Self test of this class.
297
+ #
298
+ # @param verbose [Boolean]
299
+ # @return [void]
300
+ def self.test(verbose)
301
+ verbose = !(0==verbose||!verbose) # boolean
302
+ result = ::CZMQ::FFI.zhttp_request_test(verbose)
303
+ result
304
+ end
305
+ end
306
+ end
307
+ end
308
+
309
+ ################################################################################
310
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
311
+ # Read the zproject/README.md for information about making permanent changes. #
312
+ ################################################################################