czmq-ffi-gen 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 385ee7e824a0e1dff718d374dd1edb70859e55ab
4
- data.tar.gz: f9d3e26d677f11dbf6cb0b0f59094570d52f508f
2
+ SHA256:
3
+ metadata.gz: 3ffd5d519db4e5f9bc36ef574bd6ebefe6bcf539ef98d8151a36c7c24354e055
4
+ data.tar.gz: 8ba3a88ae7a96d1f4ac92581d4c8506130432f32e212e8092647a9e9d98dc39d
5
5
  SHA512:
6
- metadata.gz: 30d3bfdcab57c11a91739058f9244acb38538ab698d9cb9e81feef8fc9e1a9918ad6c23bcf1c6eb55b106befbeac8b6dffc1363f665cd4d46320a89d2de472e4
7
- data.tar.gz: 7c7802743eaf98e517f09b1b88ed22e9a6b86bbe532bf69679bda5ff2fc72ab4afa06951fe1153b4f8a947e6b90b35288436b679b4854c156d2d2851cda5669c
6
+ metadata.gz: 714bf8b301bb7b2d7968aa4649220458697355fb7a517b7a5a5f8495d15ddb67184311425cd73c29d46db2ad476b17ba9cc45c9982788ea277e3ab0bdbd9e2f1
7
+ data.tar.gz: a6e0ca8b78f8003d2d6c159efd217f69707992179e6de4d8a4a6e00296c0e023099f185c3275dfd831bdcb7cfb0af25099db670e9d7aad3dd2c0da8f69988a25
data/CHANGES.md CHANGED
@@ -1,3 +1,12 @@
1
+ 0.16.0 (11/20/2019)
2
+ -----
3
+ * relax gem dependencies
4
+ * update CZMQ low-level binding
5
+ * remove support for CZMQ 3
6
+ * add CZMQ::FFI::LibZMQ.zmq_has, .has?(cap), .has_curve?, .has_draft?
7
+ * add CZMQ::FFI:has_draft?
8
+ * add CZMQ::FFI::LibZMQ::VERSION
9
+
1
10
  0.15.0 (03/04/2018)
2
11
  -----
3
12
  * update CZMQ low-level binding to include fixed errno for unsupported features (ENOTSUP)
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
- [![Build Status on Travis CI](https://travis-ci.org/paddor/czmq-ffi-gen.svg?branch=master)](https://travis-ci.org/paddor/czmq-ffi-gen?branch=master)
2
- [![Dependency Status](https://gemnasium.com/paddor/czmq-ffi-gen.svg)](https://gemnasium.com/paddor/czmq-ffi-gen)
1
+ [![pipeline status](https://gitlab.com/paddor/czmq-ffi-gen/badges/master/pipeline.svg)](https://gitlab.com/paddor/czmq-ffi-gen/commits/master)
3
2
 
4
3
  # Generated CZMQ::FFI
5
4
 
@@ -15,14 +14,13 @@ anything you want. :-)
15
14
  This is generated code. It is generated from the API models in CZMQ using
16
15
  [zproject](https://github.com/zeromq/zproject). It doesn't feel like Ruby. It's
17
16
  not intended to be used directly. Instead, use
18
- [CZTop](https://github.com/paddor/cztop), or write your own wrapper for this
17
+ [CZTop](https://gitlab.com/paddor/cztop), or write your own wrapper for this
19
18
  library.
20
19
 
21
20
  ### Generated code isn't actually in this repository
22
- The actual generated code lies in CZMQ, which is Git submodule of this
23
- repository, registered under `vendor/czmq`.
24
-
25
- So if you're not happy with any of the generated code, go have a closer look at
21
+ The actual generated code lies in CZMQ, which is a Git submodule of this
22
+ repository, registered under `vendor/czmq`. So if you're not happy with any of
23
+ the generated code, go have a closer look at
26
24
  [CZMQ](https://github.com/zeromq/czmq) (or
27
25
  [zproject](https://github.com/zeromq/zproject), which is used by CZMQ to
28
26
  generate the low-level binding).
@@ -30,7 +28,7 @@ generate the low-level binding).
30
28
  ### API Documentation
31
29
  For that same reason, API documentation of unreleased code (directly off this
32
30
  repository), like
33
- [rubydoc.info/github/paddor/czmq-ffi-gen](http://www.rubydoc.info/github/paddor/czmq-ffi-gen)
31
+ [rubydoc.info/github/paddor/czmq-ffi-gen](http://www.rubydoc.info/gitlab/paddor/czmq-ffi-gen)
34
32
  **does NOT include any of the generated code**. _Rubydoc.info_ doesn't check
35
33
  out Git submodules as part of its documentation procedure.
36
34
 
@@ -44,16 +42,14 @@ for the API documentation **for the released gem**.
44
42
 
45
43
  ## Requirements
46
44
 
47
- * CZMQ >= 4.0
48
- * ZMQ >= 4.0
45
+ * CZMQ >= 4.1
46
+ * ZMQ >= 4.2
49
47
 
50
48
  For security mechanisms like CURVE, you can use an external library:
51
49
  * [libsodium](https://github.com/jedisct1/libsodium)
52
50
 
53
- On OSX using homebrew, run:
51
+ On macOS using homebrew, run:
54
52
 
55
- $ brew install libsodium
56
- $ brew install zmq --with-libsodium
57
53
  $ brew install czmq
58
54
 
59
55
  If you're running Linux, go check [this page](http://zeromq.org/distro:_start)
@@ -61,19 +57,12 @@ to get more help. Make sure to install CZMQ, not only ZMQ.
61
57
 
62
58
  ### Supported Rubies
63
59
 
64
- See [.travis.yml](https://github.com/paddor/czmq-ffi-gen/blob/master/.travis.yml)
65
- for a list of Ruby versions against which czmq-ffi-gen is tested.
66
-
67
- At the time of writing, these include:
68
-
69
- * MRI 2.3, 2.2.4, 2.1.8
70
- * Rubinius (HEAD)
71
- * JRuby 9000 (HEAD)
60
+ The latest MRI (currently the 2.6 series) is tested on CI.
72
61
 
73
- #### Known NOT to work
62
+ The following *SHOULD* work, but are untested:
63
+ * Rubinius
64
+ * JRuby 9000
74
65
 
75
- * JRuby 1.7.x and MRI < 2.0
76
- * doesn't work because of the use of the double splat operator (`**opts`)
77
66
 
78
67
  ## Installation
79
68
 
@@ -93,7 +82,7 @@ Or install it yourself as:
93
82
 
94
83
  ## Usage
95
84
 
96
- Check out [CZTop](https://github.com/paddor/cztop) or the API documentation to
85
+ Check out [CZTop](https://gitlab.com/paddor/cztop) or the API documentation to
97
86
  see how this project can be used. :-)
98
87
 
99
88
  ## Development
@@ -106,4 +95,4 @@ prompt that will allow you to experiment.
106
95
 
107
96
  The gem is available as open source under the terms of the [ISC
108
97
  License](http://opensource.org/licenses/ISC). See the
109
- [LICENSE](https://github.com/paddor/cztop/blob/master/LICENSE) file.
98
+ [LICENSE](https://gitlab.com/paddor/cztop/blob/master/LICENSE) file.
@@ -1,7 +1,9 @@
1
+ require_relative "czmq-ffi-gen/gem_version"
1
2
  require_relative "czmq-ffi-gen/vendor"
2
3
  require_relative "czmq-ffi-gen/czmq/ffi"
3
- require_relative "czmq-ffi-gen/versions"
4
+ require_relative "czmq-ffi-gen/libzmq"
4
5
  require_relative "czmq-ffi-gen/errors"
5
6
  require_relative "czmq-ffi-gen/signals"
6
- require_relative "czmq-ffi-gen/legacy"
7
+ require_relative "czmq-ffi-gen/czmq_ffi_extensions"
8
+ require_relative "czmq-ffi-gen/versions"
7
9
  CZMQ::FFI.available? or raise LoadError, "libczmq is not available"
@@ -74,10 +74,10 @@ module CZMQ
74
74
  attach_function :zargs_param_first, [:pointer], :string, **opts
75
75
  attach_function :zargs_param_next, [:pointer], :string, **opts
76
76
  attach_function :zargs_param_name, [:pointer], :string, **opts
77
- attach_function :zargs_param_lookup, [:pointer, :string], :string, **opts
78
- attach_function :zargs_param_lookupx, [:pointer, :string, :varargs], :string, **opts
79
- attach_function :zargs_has_help, [:pointer], :bool, **opts
80
- attach_function :zargs_param_empty, [:string], :bool, **opts
77
+ attach_function :zargs_get, [:pointer, :string], :string, **opts
78
+ attach_function :zargs_getx, [:pointer, :string, :varargs], :string, **opts
79
+ attach_function :zargs_has, [:pointer, :string], :bool, **opts
80
+ attach_function :zargs_hasx, [:pointer, :string, :varargs], :bool, **opts
81
81
  attach_function :zargs_print, [:pointer], :void, **opts
82
82
  attach_function :zargs_test, [:bool], :void, **opts
83
83
 
@@ -140,6 +140,7 @@ module CZMQ
140
140
  require_relative 'ffi/zcertstore'
141
141
 
142
142
  attach_function :zchunk_new, [:pointer, :size_t], :pointer, **opts
143
+ attach_function :zchunk_frommem, [:pointer, :size_t, :pointer, :pointer], :pointer, **opts
143
144
  attach_function :zchunk_destroy, [:pointer], :void, **opts
144
145
  attach_function :zchunk_resize, [:pointer, :size_t], :void, **opts
145
146
  attach_function :zchunk_size, [:pointer], :size_t, **opts
@@ -159,6 +160,7 @@ module CZMQ
159
160
  attach_function :zchunk_strdup, [:pointer], :pointer, **opts
160
161
  attach_function :zchunk_streq, [:pointer, :string], :bool, **opts
161
162
  attach_function :zchunk_pack, [:pointer], :pointer, **opts
163
+ attach_function :zchunk_packx, [:pointer], :pointer, **opts
162
164
  attach_function :zchunk_unpack, [:pointer], :pointer, **opts
163
165
  attach_function :zchunk_digest, [:pointer], :string, **opts
164
166
  attach_function :zchunk_fprint, [:pointer, :pointer], :void, **opts
@@ -181,6 +183,7 @@ module CZMQ
181
183
  attach_function :zconfig_load, [:string], :pointer, **opts
182
184
  attach_function :zconfig_loadf, [:string, :varargs], :pointer, **opts
183
185
  attach_function :zconfig_destroy, [:pointer], :void, **opts
186
+ attach_function :zconfig_dup, [:pointer], :pointer, **opts
184
187
  attach_function :zconfig_name, [:pointer], :pointer, **opts
185
188
  attach_function :zconfig_value, [:pointer], :pointer, **opts
186
189
  attach_function :zconfig_put, [:pointer, :string, :string], :void, **opts
@@ -284,6 +287,7 @@ module CZMQ
284
287
  attach_function :zframe_new, [:pointer, :size_t], :pointer, **opts
285
288
  attach_function :zframe_new_empty, [], :pointer, **opts
286
289
  attach_function :zframe_from, [:string], :pointer, **opts
290
+ attach_function :zframe_frommem, [:pointer, :size_t, :pointer, :pointer], :pointer, **opts
287
291
  attach_function :zframe_recv, [:pointer], :pointer, **opts
288
292
  attach_function :zframe_destroy, [:pointer], :void, **opts
289
293
  attach_function :zframe_send, [:pointer, :pointer, :int], :int, **opts
@@ -410,6 +414,7 @@ module CZMQ
410
414
  require_relative 'ffi/zlist'
411
415
 
412
416
  attach_function :zlistx_new, [], :pointer, **opts
417
+ attach_function :zlistx_unpack, [:pointer], :pointer, **opts
413
418
  attach_function :zlistx_destroy, [:pointer], :void, **opts
414
419
  attach_function :zlistx_add_start, [:pointer, :pointer], :pointer, **opts
415
420
  attach_function :zlistx_add_end, [:pointer, :pointer], :pointer, **opts
@@ -437,6 +442,7 @@ module CZMQ
437
442
  attach_function :zlistx_set_destructor, [:pointer, :pointer], :void, **opts
438
443
  attach_function :zlistx_set_duplicator, [:pointer, :pointer], :void, **opts
439
444
  attach_function :zlistx_set_comparator, [:pointer, :pointer], :void, **opts
445
+ attach_function :zlistx_pack, [:pointer], :pointer, **opts
440
446
  attach_function :zlistx_test, [:bool], :void, **opts
441
447
 
442
448
  require_relative 'ffi/zlistx'
@@ -530,7 +536,8 @@ module CZMQ
530
536
  attach_function :zproc_returncode, [:pointer], :int, **opts
531
537
  attach_function :zproc_pid, [:pointer], :int, **opts
532
538
  attach_function :zproc_running, [:pointer], :bool, **opts
533
- attach_function :zproc_wait, [:pointer, :bool], :int, **opts
539
+ attach_function :zproc_wait, [:pointer, :int], :int, **opts
540
+ attach_function :zproc_shutdown, [:pointer, :int], :void, **opts
534
541
  attach_function :zproc_actor, [:pointer], :pointer, **opts
535
542
  attach_function :zproc_kill, [:pointer, :int], :void, **opts
536
543
  attach_function :zproc_set_verbose, [:pointer, :bool], :void, **opts
@@ -581,6 +588,23 @@ module CZMQ
581
588
  attach_function :zsock_leave, [:pointer, :string], :int, **opts
582
589
  attach_function :zsock_is, [:pointer], :bool, **opts
583
590
  attach_function :zsock_resolve, [:pointer], :pointer, **opts
591
+ attach_function :zsock_has_in, [:pointer], :bool, **opts
592
+ attach_function :zsock_router_notify, [:pointer], :int, **opts
593
+ attach_function :zsock_set_router_notify, [:pointer, :int], :void, **opts
594
+ attach_function :zsock_multicast_loop, [:pointer], :int, **opts
595
+ attach_function :zsock_set_multicast_loop, [:pointer, :int], :void, **opts
596
+ attach_function :zsock_metadata, [:pointer], :pointer, **opts
597
+ attach_function :zsock_set_metadata, [:pointer, :string], :void, **opts
598
+ attach_function :zsock_loopback_fastpath, [:pointer], :int, **opts
599
+ attach_function :zsock_set_loopback_fastpath, [:pointer, :int], :void, **opts
600
+ attach_function :zsock_zap_enforce_domain, [:pointer], :int, **opts
601
+ attach_function :zsock_set_zap_enforce_domain, [:pointer, :int], :void, **opts
602
+ attach_function :zsock_gssapi_principal_nametype, [:pointer], :int, **opts
603
+ attach_function :zsock_set_gssapi_principal_nametype, [:pointer, :int], :void, **opts
604
+ attach_function :zsock_gssapi_service_principal_nametype, [:pointer], :int, **opts
605
+ attach_function :zsock_set_gssapi_service_principal_nametype, [:pointer, :int], :void, **opts
606
+ attach_function :zsock_bindtodevice, [:pointer], :pointer, **opts
607
+ attach_function :zsock_set_bindtodevice, [:pointer, :string], :void, **opts
584
608
  attach_function :zsock_heartbeat_ivl, [:pointer], :int, **opts
585
609
  attach_function :zsock_set_heartbeat_ivl, [:pointer, :int], :void, **opts
586
610
  attach_function :zsock_heartbeat_ttl, [:pointer], :int, **opts
@@ -761,6 +785,7 @@ module CZMQ
761
785
  attach_function :zsys_file_mode_private, [], :void, **opts
762
786
  attach_function :zsys_file_mode_default, [], :void, **opts
763
787
  attach_function :zsys_version, [:pointer, :pointer, :pointer], :void, **opts
788
+ attach_function :zsys_sprintf_hint, [:int, :string, :varargs], :pointer, **opts
764
789
  attach_function :zsys_sprintf, [:string, :varargs], :pointer, **opts
765
790
  attach_function :zsys_vprintf, [:string, :pointer], :pointer, **opts
766
791
  attach_function :zsys_udp_new, [:bool], (::FFI::Platform.unix? ? :int : :uint64), **opts
@@ -775,10 +800,16 @@ module CZMQ
775
800
  attach_function :zsys_set_io_threads, [:size_t], :void, **opts
776
801
  attach_function :zsys_set_thread_sched_policy, [:int], :void, **opts
777
802
  attach_function :zsys_set_thread_priority, [:int], :void, **opts
803
+ attach_function :zsys_set_thread_name_prefix, [:int], :void, **opts
804
+ attach_function :zsys_thread_name_prefix, [], :int, **opts
805
+ attach_function :zsys_thread_affinity_cpu_add, [:int], :void, **opts
806
+ attach_function :zsys_thread_affinity_cpu_remove, [:int], :void, **opts
778
807
  attach_function :zsys_set_max_sockets, [:size_t], :void, **opts
779
808
  attach_function :zsys_socket_limit, [], :size_t, **opts
780
809
  attach_function :zsys_set_max_msgsz, [:int], :void, **opts
781
810
  attach_function :zsys_max_msgsz, [], :int, **opts
811
+ attach_function :zsys_set_zero_copy_recv, [:int], :void, **opts
812
+ attach_function :zsys_zero_copy_recv, [], :int, **opts
782
813
  attach_function :zsys_set_file_stable_age_msec, [:pointer], :void, **opts
783
814
  attach_function :zsys_file_stable_age_msec, [], :pointer, **opts
784
815
  attach_function :zsys_set_linger, [:size_t], :void, **opts
@@ -796,6 +827,10 @@ module CZMQ
796
827
  attach_function :zsys_ipv6_mcast_address, [], :string, **opts
797
828
  attach_function :zsys_set_auto_use_fd, [:int], :void, **opts
798
829
  attach_function :zsys_auto_use_fd, [], :int, **opts
830
+ attach_function :zsys_zprintf, [:string, :pointer], :pointer, **opts
831
+ attach_function :zsys_zprintf_error, [:string, :pointer], :pointer, **opts
832
+ attach_function :zsys_zplprintf, [:string, :pointer], :pointer, **opts
833
+ attach_function :zsys_zplprintf_error, [:string, :pointer], :pointer, **opts
799
834
  attach_function :zsys_set_logident, [:string], :void, **opts
800
835
  attach_function :zsys_set_logstream, [:pointer], :void, **opts
801
836
  attach_function :zsys_set_logsender, [:string], :void, **opts
@@ -851,6 +886,71 @@ module CZMQ
851
886
  attach_function :zuuid_test, [:bool], :void, **opts
852
887
 
853
888
  require_relative 'ffi/zuuid'
889
+
890
+ attach_function :zhttp_client_new, [:bool], :pointer, **opts
891
+ attach_function :zhttp_client_destroy, [:pointer], :void, **opts
892
+ attach_function :zhttp_client_test, [:bool], :void, **opts
893
+
894
+ require_relative 'ffi/zhttp_client'
895
+
896
+ attach_function :zhttp_server_new, [:pointer], :pointer, **opts
897
+ attach_function :zhttp_server_destroy, [:pointer], :void, **opts
898
+ attach_function :zhttp_server_port, [:pointer], :int, **opts
899
+ attach_function :zhttp_server_test, [:bool], :void, **opts
900
+
901
+ require_relative 'ffi/zhttp_server'
902
+
903
+ attach_function :zhttp_server_options_new, [], :pointer, **opts
904
+ attach_function :zhttp_server_options_from_config, [:pointer], :pointer, **opts
905
+ attach_function :zhttp_server_options_destroy, [:pointer], :void, **opts
906
+ attach_function :zhttp_server_options_port, [:pointer], :int, **opts
907
+ attach_function :zhttp_server_options_set_port, [:pointer, :int], :void, **opts
908
+ attach_function :zhttp_server_options_backend_address, [:pointer], :string, **opts
909
+ attach_function :zhttp_server_options_set_backend_address, [:pointer, :string], :void, **opts
910
+ attach_function :zhttp_server_options_test, [:bool], :void, **opts
911
+
912
+ require_relative 'ffi/zhttp_server_options'
913
+
914
+ attach_function :zhttp_request_new, [], :pointer, **opts
915
+ attach_function :zhttp_request_destroy, [:pointer], :void, **opts
916
+ attach_function :zhttp_request_recv, [:pointer, :pointer], :pointer, **opts
917
+ attach_function :zhttp_request_send, [:pointer, :pointer, :int, :pointer, :pointer], :int, **opts
918
+ attach_function :zhttp_request_method, [:pointer], :string, **opts
919
+ attach_function :zhttp_request_set_method, [:pointer, :string], :void, **opts
920
+ attach_function :zhttp_request_url, [:pointer], :string, **opts
921
+ attach_function :zhttp_request_set_url, [:pointer, :string], :void, **opts
922
+ attach_function :zhttp_request_content_type, [:pointer], :string, **opts
923
+ attach_function :zhttp_request_set_content_type, [:pointer, :string], :void, **opts
924
+ attach_function :zhttp_request_content_length, [:pointer], :size_t, **opts
925
+ attach_function :zhttp_request_headers, [:pointer], :pointer, **opts
926
+ attach_function :zhttp_request_content, [:pointer], :string, **opts
927
+ attach_function :zhttp_request_get_content, [:pointer], :pointer, **opts
928
+ attach_function :zhttp_request_set_content, [:pointer, :pointer], :void, **opts
929
+ attach_function :zhttp_request_set_content_const, [:pointer, :string], :void, **opts
930
+ attach_function :zhttp_request_reset_content, [:pointer], :void, **opts
931
+ attach_function :zhttp_request_match, [:pointer, :string, :string, :varargs], :bool, **opts
932
+ attach_function :zhttp_request_test, [:bool], :void, **opts
933
+
934
+ require_relative 'ffi/zhttp_request'
935
+
936
+ attach_function :zhttp_response_new, [], :pointer, **opts
937
+ attach_function :zhttp_response_destroy, [:pointer], :void, **opts
938
+ attach_function :zhttp_response_send, [:pointer, :pointer, :pointer], :int, **opts
939
+ attach_function :zhttp_response_recv, [:pointer, :pointer, :pointer, :pointer], :int, **opts
940
+ attach_function :zhttp_response_content_type, [:pointer], :string, **opts
941
+ attach_function :zhttp_response_set_content_type, [:pointer, :string], :void, **opts
942
+ attach_function :zhttp_response_status_code, [:pointer], :uint32, **opts
943
+ attach_function :zhttp_response_set_status_code, [:pointer, :uint32], :void, **opts
944
+ attach_function :zhttp_response_headers, [:pointer], :pointer, **opts
945
+ attach_function :zhttp_response_content_length, [:pointer], :size_t, **opts
946
+ attach_function :zhttp_response_content, [:pointer], :string, **opts
947
+ attach_function :zhttp_response_get_content, [:pointer], :pointer, **opts
948
+ attach_function :zhttp_response_set_content, [:pointer, :pointer], :void, **opts
949
+ attach_function :zhttp_response_set_content_const, [:pointer, :string], :void, **opts
950
+ attach_function :zhttp_response_reset_content, [:pointer], :void, **opts
951
+ attach_function :zhttp_response_test, [:bool], :void, **opts
952
+
953
+ require_relative 'ffi/zhttp_response'
854
954
  end
855
955
  end
856
956
  end
@@ -5,7 +5,7 @@
5
5
 
6
6
  module CZMQ
7
7
  module FFI
8
- VERSION = '4.1.1'
8
+ VERSION = '4.2.1'
9
9
  end
10
10
  end
11
11
 
@@ -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
 
@@ -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]