czmq-ffi-gen 0.14.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+ ################################################################################