czmq-ffi-gen 0.9.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +1 -0
  3. data/CHANGES.md +88 -0
  4. data/Gemfile +2 -0
  5. data/LICENSE +14 -0
  6. data/README.md +112 -0
  7. data/lib/czmq-ffi-gen.rb +7 -0
  8. data/lib/czmq-ffi-gen/czmq/ffi.rb +1210 -0
  9. data/lib/czmq-ffi-gen/czmq/ffi/version.rb +15 -0
  10. data/lib/czmq-ffi-gen/czmq/ffi/zactor.rb +186 -0
  11. data/lib/czmq-ffi-gen/czmq/ffi/zarmour.rb +286 -0
  12. data/lib/czmq-ffi-gen/czmq/ffi/zcert.rb +307 -0
  13. data/lib/czmq-ffi-gen/czmq/ffi/zcertstore.rb +222 -0
  14. data/lib/czmq-ffi-gen/czmq/ffi/zchunk.rb +388 -0
  15. data/lib/czmq-ffi-gen/czmq/ffi/zclock.rb +140 -0
  16. data/lib/czmq-ffi-gen/czmq/ffi/zconfig.rb +442 -0
  17. data/lib/czmq-ffi-gen/czmq/ffi/zdigest.rb +156 -0
  18. data/lib/czmq-ffi-gen/czmq/ffi/zdir.rb +283 -0
  19. data/lib/czmq-ffi-gen/czmq/ffi/zdir_patch.rb +194 -0
  20. data/lib/czmq-ffi-gen/czmq/ffi/zfile.rb +353 -0
  21. data/lib/czmq-ffi-gen/czmq/ffi/zframe.rb +359 -0
  22. data/lib/czmq-ffi-gen/czmq/ffi/zhash.rb +416 -0
  23. data/lib/czmq-ffi-gen/czmq/ffi/zhashx.rb +659 -0
  24. data/lib/czmq-ffi-gen/czmq/ffi/ziflist.rb +189 -0
  25. data/lib/czmq-ffi-gen/czmq/ffi/zlist.rb +365 -0
  26. data/lib/czmq-ffi-gen/czmq/ffi/zlistx.rb +478 -0
  27. data/lib/czmq-ffi-gen/czmq/ffi/zloop.rb +396 -0
  28. data/lib/czmq-ffi-gen/czmq/ffi/zmsg.rb +515 -0
  29. data/lib/czmq-ffi-gen/czmq/ffi/zpoller.rb +194 -0
  30. data/lib/czmq-ffi-gen/czmq/ffi/zproc.rb +294 -0
  31. data/lib/czmq-ffi-gen/czmq/ffi/zsock.rb +3479 -0
  32. data/lib/czmq-ffi-gen/czmq/ffi/zstr.rb +203 -0
  33. data/lib/czmq-ffi-gen/czmq/ffi/ztimerset.rb +203 -0
  34. data/lib/czmq-ffi-gen/czmq/ffi/ztrie.rb +221 -0
  35. data/lib/czmq-ffi-gen/czmq/ffi/zuuid.rb +227 -0
  36. data/lib/czmq-ffi-gen/errors.rb +12 -0
  37. data/lib/czmq-ffi-gen/gem_version.rb +5 -0
  38. data/lib/czmq-ffi-gen/legacy.rb +16 -0
  39. data/lib/czmq-ffi-gen/libzmq.rb +18 -0
  40. data/lib/czmq-ffi-gen/signals.rb +27 -0
  41. data/lib/czmq-ffi-gen/vendor.rb +5 -0
  42. data/lib/czmq-ffi-gen/versions.rb +19 -0
  43. data/vendor/local/bin/inproc_lat.exe +0 -0
  44. data/vendor/local/bin/inproc_thr.exe +0 -0
  45. data/vendor/local/bin/libczmq.dll +0 -0
  46. data/vendor/local/bin/libgcc_s_sjlj-1.dll +0 -0
  47. data/vendor/local/bin/libstdc++-6.dll +0 -0
  48. data/vendor/local/bin/libzmq.dll +0 -0
  49. data/vendor/local/bin/local_lat.exe +0 -0
  50. data/vendor/local/bin/local_thr.exe +0 -0
  51. data/vendor/local/bin/remote_lat.exe +0 -0
  52. data/vendor/local/bin/remote_thr.exe +0 -0
  53. data/vendor/local/include/czmq.h +31 -0
  54. data/vendor/local/include/czmq_library.h +199 -0
  55. data/vendor/local/include/czmq_prelude.h +641 -0
  56. data/vendor/local/include/readme.txt +83 -0
  57. data/vendor/local/include/sha1.h +76 -0
  58. data/vendor/local/include/sha1.inc_c +335 -0
  59. data/vendor/local/include/slre.h +92 -0
  60. data/vendor/local/include/slre.inc_c +660 -0
  61. data/vendor/local/include/zactor.h +76 -0
  62. data/vendor/local/include/zarmour.h +114 -0
  63. data/vendor/local/include/zauth.h +100 -0
  64. data/vendor/local/include/zauth_v2.h +88 -0
  65. data/vendor/local/include/zbeacon.h +86 -0
  66. data/vendor/local/include/zbeacon_v2.h +75 -0
  67. data/vendor/local/include/zcert.h +136 -0
  68. data/vendor/local/include/zcertstore.h +100 -0
  69. data/vendor/local/include/zchunk.h +163 -0
  70. data/vendor/local/include/zclock.h +73 -0
  71. data/vendor/local/include/zconfig.h +185 -0
  72. data/vendor/local/include/zctx.h +107 -0
  73. data/vendor/local/include/zdigest.h +65 -0
  74. data/vendor/local/include/zdir.h +149 -0
  75. data/vendor/local/include/zdir_patch.h +82 -0
  76. data/vendor/local/include/zfile.h +177 -0
  77. data/vendor/local/include/zframe.h +176 -0
  78. data/vendor/local/include/zgossip.h +95 -0
  79. data/vendor/local/include/zgossip_engine.inc +927 -0
  80. data/vendor/local/include/zgossip_msg.h +129 -0
  81. data/vendor/local/include/zhash.h +195 -0
  82. data/vendor/local/include/zhash_primes.inc +329 -0
  83. data/vendor/local/include/zhashx.h +298 -0
  84. data/vendor/local/include/ziflist.h +77 -0
  85. data/vendor/local/include/zlist.h +158 -0
  86. data/vendor/local/include/zlistx.h +205 -0
  87. data/vendor/local/include/zloop.h +168 -0
  88. data/vendor/local/include/zmonitor.h +73 -0
  89. data/vendor/local/include/zmonitor_v2.h +56 -0
  90. data/vendor/local/include/zmq.h +617 -0
  91. data/vendor/local/include/zmq_utils.h +48 -0
  92. data/vendor/local/include/zmsg.h +280 -0
  93. data/vendor/local/include/zmutex.h +55 -0
  94. data/vendor/local/include/zpoller.h +92 -0
  95. data/vendor/local/include/zproc.h +168 -0
  96. data/vendor/local/include/zproxy.h +111 -0
  97. data/vendor/local/include/zproxy_v2.h +62 -0
  98. data/vendor/local/include/zrex.h +82 -0
  99. data/vendor/local/include/zsock.h +912 -0
  100. data/vendor/local/include/zsock_option.inc +4126 -0
  101. data/vendor/local/include/zsocket.h +110 -0
  102. data/vendor/local/include/zsockopt.h +256 -0
  103. data/vendor/local/include/zstr.h +110 -0
  104. data/vendor/local/include/zsys.h +386 -0
  105. data/vendor/local/include/zthread.h +50 -0
  106. data/vendor/local/include/ztimerset.h +90 -0
  107. data/vendor/local/include/ztrie.h +106 -0
  108. data/vendor/local/include/zuuid.h +96 -0
  109. data/vendor/local/lib/libczmq.dll.a +0 -0
  110. data/vendor/local/lib/liblibzmq.dll.a +0 -0
  111. data/vendor/local/lib/libzmq-static.a +0 -0
  112. data/vendor/local/lib/pkgconfig/libczmq.pc +23 -0
  113. data/vendor/local/lib/pkgconfig/libzmq.pc +11 -0
  114. data/vendor/local/share/zmq/AUTHORS.txt +147 -0
  115. data/vendor/local/share/zmq/COPYING.LESSER.txt +181 -0
  116. data/vendor/local/share/zmq/COPYING.txt +674 -0
  117. data/vendor/local/share/zmq/NEWS.txt +978 -0
  118. metadata +230 -0
@@ -0,0 +1,75 @@
1
+ /* =========================================================================
2
+ zbeacon - LAN discovery and presence (deprecated)
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ #ifndef __ZBEACON_V2_H_INCLUDED__
15
+ #define __ZBEACON_V2_H_INCLUDED__
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ // @interface
22
+ // Create a new beacon on a certain UDP port. If the system does not
23
+ // support UDP broadcasts (lacking a useful interface), returns NULL.
24
+ // To force the beacon to operate on a given port, set the environment
25
+ // variable ZSYS_INTERFACE, or call zsys_set_interface() beforehand.
26
+ // If you are using the new zsock API then pass NULL as the ctx here.
27
+ CZMQ_EXPORT zbeacon_t *
28
+ zbeacon_new (zctx_t *ctx, int port_nbr);
29
+
30
+ // Destroy a beacon
31
+ CZMQ_EXPORT void
32
+ zbeacon_destroy (zbeacon_t **self_p);
33
+
34
+ // Return our own IP address as printable string
35
+ CZMQ_EXPORT char *
36
+ zbeacon_hostname (zbeacon_t *self);
37
+
38
+ // Set broadcast interval in milliseconds (default is 1000 msec)
39
+ CZMQ_EXPORT void
40
+ zbeacon_set_interval (zbeacon_t *self, int interval);
41
+
42
+ // Filter out any beacon that looks exactly like ours
43
+ CZMQ_EXPORT void
44
+ zbeacon_noecho (zbeacon_t *self);
45
+
46
+ // Start broadcasting beacon to peers at the specified interval
47
+ CZMQ_EXPORT void
48
+ zbeacon_publish (zbeacon_t *self, byte *transmit, size_t size);
49
+
50
+ // Stop broadcasting beacons
51
+ CZMQ_EXPORT void
52
+ zbeacon_silence (zbeacon_t *self);
53
+
54
+ // Start listening to other peers; zero-sized filter means get everything
55
+ CZMQ_EXPORT void
56
+ zbeacon_subscribe (zbeacon_t *self, byte *filter, size_t size);
57
+
58
+ // Stop listening to other peers
59
+ CZMQ_EXPORT void
60
+ zbeacon_unsubscribe (zbeacon_t *self);
61
+
62
+ // Get beacon ZeroMQ socket, for polling or receiving messages
63
+ CZMQ_EXPORT void *
64
+ zbeacon_socket (zbeacon_t *self);
65
+
66
+ // Self test of this class
67
+ CZMQ_EXPORT void
68
+ zbeacon_v2_test (bool verbose);
69
+ // @end
70
+
71
+ #ifdef __cplusplus
72
+ }
73
+ #endif
74
+
75
+ #endif
@@ -0,0 +1,136 @@
1
+ /* =========================================================================
2
+ zcert - work with CURVE security certificates
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ #ifndef __ZCERT_H_INCLUDED__
15
+ #define __ZCERT_H_INCLUDED__
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ // @warning THE FOLLOWING @INTERFACE BLOCK IS AUTO-GENERATED BY ZPROJECT
22
+ // @warning Please edit the model at "api/zcert.api" to make changes.
23
+ // @interface
24
+ // This is a stable class, and may not change except for emergencies. It
25
+ // is provided in stable builds.
26
+ // This class has draft methods, which may change over time. They are not
27
+ // in stable releases, by default. Use --enable-drafts to enable.
28
+ // This class has legacy methods, which will be removed over time. You
29
+ // should not use them, and migrate any code that is still using them.
30
+ // Create and initialize a new certificate in memory
31
+ CZMQ_EXPORT zcert_t *
32
+ zcert_new (void);
33
+
34
+ // Accepts public/secret key pair from caller
35
+ CZMQ_EXPORT zcert_t *
36
+ zcert_new_from (const byte *public_key, const byte *secret_key);
37
+
38
+ // Load certificate from file
39
+ CZMQ_EXPORT zcert_t *
40
+ zcert_load (const char *filename);
41
+
42
+ // Destroy a certificate in memory
43
+ CZMQ_EXPORT void
44
+ zcert_destroy (zcert_t **self_p);
45
+
46
+ // Return public part of key pair as 32-byte binary string
47
+ CZMQ_EXPORT const byte *
48
+ zcert_public_key (zcert_t *self);
49
+
50
+ // Return secret part of key pair as 32-byte binary string
51
+ CZMQ_EXPORT const byte *
52
+ zcert_secret_key (zcert_t *self);
53
+
54
+ // Return public part of key pair as Z85 armored string
55
+ CZMQ_EXPORT const char *
56
+ zcert_public_txt (zcert_t *self);
57
+
58
+ // Return secret part of key pair as Z85 armored string
59
+ CZMQ_EXPORT const char *
60
+ zcert_secret_txt (zcert_t *self);
61
+
62
+ // Set certificate metadata from formatted string.
63
+ CZMQ_EXPORT void
64
+ zcert_set_meta (zcert_t *self, const char *name, const char *format, ...) CHECK_PRINTF (3);
65
+
66
+ // Get metadata value from certificate; if the metadata value doesn't
67
+ // exist, returns NULL.
68
+ CZMQ_EXPORT const char *
69
+ zcert_meta (zcert_t *self, const char *name);
70
+
71
+ // Get list of metadata fields from certificate. Caller is responsible for
72
+ // destroying list. Caller should not modify the values of list items.
73
+ CZMQ_EXPORT zlist_t *
74
+ zcert_meta_keys (zcert_t *self);
75
+
76
+ // Save full certificate (public + secret) to file for persistent storage
77
+ // This creates one public file and one secret file (filename + "_secret").
78
+ CZMQ_EXPORT int
79
+ zcert_save (zcert_t *self, const char *filename);
80
+
81
+ // Save public certificate only to file for persistent storage
82
+ CZMQ_EXPORT int
83
+ zcert_save_public (zcert_t *self, const char *filename);
84
+
85
+ // Save secret certificate only to file for persistent storage
86
+ CZMQ_EXPORT int
87
+ zcert_save_secret (zcert_t *self, const char *filename);
88
+
89
+ // Apply certificate to socket, i.e. use for CURVE security on socket.
90
+ // If certificate was loaded from public file, the secret key will be
91
+ // undefined, and this certificate will not work successfully.
92
+ CZMQ_EXPORT void
93
+ zcert_apply (zcert_t *self, void *socket);
94
+
95
+ // Return copy of certificate; if certificate is NULL or we exhausted
96
+ // heap memory, returns NULL.
97
+ // Caller owns return value and must destroy it when done.
98
+ CZMQ_EXPORT zcert_t *
99
+ zcert_dup (zcert_t *self);
100
+
101
+ // Return true if two certificates have the same keys
102
+ CZMQ_EXPORT bool
103
+ zcert_eq (zcert_t *self, zcert_t *compare);
104
+
105
+ // Print certificate contents to stdout
106
+ CZMQ_EXPORT void
107
+ zcert_print (zcert_t *self);
108
+
109
+ // *** Deprecated method, slated for removal: avoid using it ***
110
+ // Print certificate contents to open stream. This method is deprecated
111
+ // and you should use the print method.
112
+ CZMQ_EXPORT void
113
+ zcert_fprint (zcert_t *self, FILE *file);
114
+
115
+ // Self test of this class
116
+ CZMQ_EXPORT void
117
+ zcert_test (bool verbose);
118
+
119
+ #ifdef CZMQ_BUILD_DRAFT_API
120
+ // *** Draft method, for development use, may change without warning ***
121
+ // Unset certificate metadata.
122
+ CZMQ_EXPORT void
123
+ zcert_unset_meta (zcert_t *self, const char *name);
124
+
125
+ #endif // CZMQ_BUILD_DRAFT_API
126
+ // @end
127
+
128
+
129
+ #ifdef __cplusplus
130
+ }
131
+ #endif
132
+
133
+ // Deprecated method aliases
134
+ #define zcert_dump(s) zcert_print(s)
135
+
136
+ #endif
@@ -0,0 +1,100 @@
1
+ /* =========================================================================
2
+ zcertstore - work with CURVE security certificate stores
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ #ifndef __ZCERTSTORE_H_INCLUDED__
15
+ #define __ZCERTSTORE_H_INCLUDED__
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ // @warning THE FOLLOWING @INTERFACE BLOCK IS AUTO-GENERATED BY ZPROJECT
22
+ // @warning Please edit the model at "api/zcertstore.api" to make changes.
23
+ // @interface
24
+ // This is a stable class, and may not change except for emergencies. It
25
+ // is provided in stable builds.
26
+ // This class has draft methods, which may change over time. They are not
27
+ // in stable releases, by default. Use --enable-drafts to enable.
28
+ // This class has legacy methods, which will be removed over time. You
29
+ // should not use them, and migrate any code that is still using them.
30
+ // Create a new certificate store from a disk directory, loading and
31
+ // indexing all certificates in that location. The directory itself may be
32
+ // absent, and created later, or modified at any time. The certificate store
33
+ // is automatically refreshed on any zcertstore_lookup() call. If the
34
+ // location is specified as NULL, creates a pure-memory store, which you
35
+ // can work with by inserting certificates at runtime.
36
+ CZMQ_EXPORT zcertstore_t *
37
+ zcertstore_new (const char *location);
38
+
39
+ // Destroy a certificate store object in memory. Does not affect anything
40
+ // stored on disk.
41
+ CZMQ_EXPORT void
42
+ zcertstore_destroy (zcertstore_t **self_p);
43
+
44
+ // Look up certificate by public key, returns zcert_t object if found,
45
+ // else returns NULL. The public key is provided in Z85 text format.
46
+ CZMQ_EXPORT zcert_t *
47
+ zcertstore_lookup (zcertstore_t *self, const char *public_key);
48
+
49
+ // Insert certificate into certificate store in memory. Note that this
50
+ // does not save the certificate to disk. To do that, use zcert_save()
51
+ // directly on the certificate. Takes ownership of zcert_t object.
52
+ CZMQ_EXPORT void
53
+ zcertstore_insert (zcertstore_t *self, zcert_t **cert_p);
54
+
55
+ // Print list of certificates in store to logging facility
56
+ CZMQ_EXPORT void
57
+ zcertstore_print (zcertstore_t *self);
58
+
59
+ // *** Deprecated method, slated for removal: avoid using it ***
60
+ // Print list of certificates in store to open stream. This method is
61
+ // deprecated, and you should use the print method.
62
+ CZMQ_EXPORT void
63
+ zcertstore_fprint (zcertstore_t *self, FILE *file);
64
+
65
+ // Self test of this class
66
+ CZMQ_EXPORT void
67
+ zcertstore_test (bool verbose);
68
+
69
+ #ifdef CZMQ_BUILD_DRAFT_API
70
+ // Loaders retrieve certificates from an arbitrary source.
71
+ typedef void (zcertstore_loader) (
72
+ zcertstore_t *self);
73
+
74
+ // Destructor for loader state.
75
+ typedef void (zcertstore_destructor) (
76
+ void **self_p);
77
+
78
+ // *** Draft method, for development use, may change without warning ***
79
+ // Override the default disk loader with a custom loader fn.
80
+ CZMQ_EXPORT void
81
+ zcertstore_set_loader (zcertstore_t *self, zcertstore_loader loader, zcertstore_destructor destructor, void *state);
82
+
83
+ // *** Draft method, for development use, may change without warning ***
84
+ // Empty certificate hashtable. This wrapper exists to be friendly to bindings,
85
+ // which don't usually have access to struct internals.
86
+ CZMQ_EXPORT void
87
+ zcertstore_empty (zcertstore_t *self);
88
+
89
+ #endif // CZMQ_BUILD_DRAFT_API
90
+ // @end
91
+
92
+
93
+ #ifdef __cplusplus
94
+ }
95
+ #endif
96
+
97
+ // Deprecated method aliases
98
+ #define zcertstore_dump(s) zcertstore_print(s)
99
+
100
+ #endif
@@ -0,0 +1,163 @@
1
+ /* =========================================================================
2
+ zchunk - work with memory chunks
3
+
4
+ Copyright (c) the Contributors as noted in the AUTHORS file.
5
+ This file is part of CZMQ, the high-level C binding for 0MQ:
6
+ http://czmq.zeromq.org.
7
+
8
+ This Source Code Form is subject to the terms of the Mozilla Public
9
+ License, v. 2.0. If a copy of the MPL was not distributed with this
10
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
+ =========================================================================
12
+ */
13
+
14
+ #ifndef __ZCHUNK_H_INCLUDED__
15
+ #define __ZCHUNK_H_INCLUDED__
16
+
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ // @warning THE FOLLOWING @INTERFACE BLOCK IS AUTO-GENERATED BY ZPROJECT
22
+ // @warning Please edit the model at "api/zchunk.api" to make changes.
23
+ // @interface
24
+ // This is a stable class, and may not change except for emergencies. It
25
+ // is provided in stable builds.
26
+ // Create a new chunk of the specified size. If you specify the data, it
27
+ // is copied into the chunk. If you do not specify the data, the chunk is
28
+ // allocated and left empty, and you can then add data using zchunk_append.
29
+ CZMQ_EXPORT zchunk_t *
30
+ zchunk_new (const void *data, size_t size);
31
+
32
+ // Destroy a chunk
33
+ CZMQ_EXPORT void
34
+ zchunk_destroy (zchunk_t **self_p);
35
+
36
+ // Resizes chunk max_size as requested; chunk_cur size is set to zero
37
+ CZMQ_EXPORT void
38
+ zchunk_resize (zchunk_t *self, size_t size);
39
+
40
+ // Return chunk cur size
41
+ CZMQ_EXPORT size_t
42
+ zchunk_size (zchunk_t *self);
43
+
44
+ // Return chunk max size
45
+ CZMQ_EXPORT size_t
46
+ zchunk_max_size (zchunk_t *self);
47
+
48
+ // Return chunk data
49
+ CZMQ_EXPORT byte *
50
+ zchunk_data (zchunk_t *self);
51
+
52
+ // Set chunk data from user-supplied data; truncate if too large. Data may
53
+ // be null. Returns actual size of chunk
54
+ CZMQ_EXPORT size_t
55
+ zchunk_set (zchunk_t *self, const void *data, size_t size);
56
+
57
+ // Fill chunk data from user-supplied octet
58
+ CZMQ_EXPORT size_t
59
+ zchunk_fill (zchunk_t *self, byte filler, size_t size);
60
+
61
+ // Append user-supplied data to chunk, return resulting chunk size. If the
62
+ // data would exceeded the available space, it is truncated. If you want to
63
+ // grow the chunk to accommodate new data, use the zchunk_extend method.
64
+ CZMQ_EXPORT size_t
65
+ zchunk_append (zchunk_t *self, const void *data, size_t size);
66
+
67
+ // Append user-supplied data to chunk, return resulting chunk size. If the
68
+ // data would exceeded the available space, the chunk grows in size.
69
+ CZMQ_EXPORT size_t
70
+ zchunk_extend (zchunk_t *self, const void *data, size_t size);
71
+
72
+ // Copy as much data from 'source' into the chunk as possible; returns the
73
+ // new size of chunk. If all data from 'source' is used, returns exhausted
74
+ // on the source chunk. Source can be consumed as many times as needed until
75
+ // it is exhausted. If source was already exhausted, does not change chunk.
76
+ CZMQ_EXPORT size_t
77
+ zchunk_consume (zchunk_t *self, zchunk_t *source);
78
+
79
+ // Returns true if the chunk was exhausted by consume methods, or if the
80
+ // chunk has a size of zero.
81
+ CZMQ_EXPORT bool
82
+ zchunk_exhausted (zchunk_t *self);
83
+
84
+ // Read chunk from an open file descriptor
85
+ // Caller owns return value and must destroy it when done.
86
+ CZMQ_EXPORT zchunk_t *
87
+ zchunk_read (FILE *handle, size_t bytes);
88
+
89
+ // Write chunk to an open file descriptor
90
+ CZMQ_EXPORT int
91
+ zchunk_write (zchunk_t *self, FILE *handle);
92
+
93
+ // Try to slurp an entire file into a chunk. Will read up to maxsize of
94
+ // the file. If maxsize is 0, will attempt to read the entire file and
95
+ // fail with an assertion if that cannot fit into memory. Returns a new
96
+ // chunk containing the file data, or NULL if the file could not be read.
97
+ // Caller owns return value and must destroy it when done.
98
+ CZMQ_EXPORT zchunk_t *
99
+ zchunk_slurp (const char *filename, size_t maxsize);
100
+
101
+ // Create copy of chunk, as new chunk object. Returns a fresh zchunk_t
102
+ // object, or null if there was not enough heap memory. If chunk is null,
103
+ // returns null.
104
+ // Caller owns return value and must destroy it when done.
105
+ CZMQ_EXPORT zchunk_t *
106
+ zchunk_dup (zchunk_t *self);
107
+
108
+ // Return chunk data encoded as printable hex string. Caller must free
109
+ // string when finished with it.
110
+ // Caller owns return value and must destroy it when done.
111
+ CZMQ_EXPORT char *
112
+ zchunk_strhex (zchunk_t *self);
113
+
114
+ // Return chunk data copied into freshly allocated string
115
+ // Caller must free string when finished with it.
116
+ // Caller owns return value and must destroy it when done.
117
+ CZMQ_EXPORT char *
118
+ zchunk_strdup (zchunk_t *self);
119
+
120
+ // Return TRUE if chunk body is equal to string, excluding terminator
121
+ CZMQ_EXPORT bool
122
+ zchunk_streq (zchunk_t *self, const char *string);
123
+
124
+ // Transform zchunk into a zframe that can be sent in a message.
125
+ // Caller owns return value and must destroy it when done.
126
+ CZMQ_EXPORT zframe_t *
127
+ zchunk_pack (zchunk_t *self);
128
+
129
+ // Transform a zframe into a zchunk.
130
+ // Caller owns return value and must destroy it when done.
131
+ CZMQ_EXPORT zchunk_t *
132
+ zchunk_unpack (zframe_t *frame);
133
+
134
+ // Calculate SHA1 digest for chunk, using zdigest class.
135
+ CZMQ_EXPORT const char *
136
+ zchunk_digest (zchunk_t *self);
137
+
138
+ // Dump chunk to FILE stream, for debugging and tracing.
139
+ CZMQ_EXPORT void
140
+ zchunk_fprint (zchunk_t *self, FILE *file);
141
+
142
+ // Dump message to stderr, for debugging and tracing.
143
+ // See zchunk_fprint for details
144
+ CZMQ_EXPORT void
145
+ zchunk_print (zchunk_t *self);
146
+
147
+ // Probe the supplied object, and report if it looks like a zchunk_t.
148
+ CZMQ_EXPORT bool
149
+ zchunk_is (void *self);
150
+
151
+ // Self test of this class.
152
+ CZMQ_EXPORT void
153
+ zchunk_test (bool verbose);
154
+
155
+ // @end
156
+
157
+
158
+ #ifdef __cplusplus
159
+ }
160
+ #endif
161
+
162
+ #endif
163
+