czmq-ffi-gen 0.9.2-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/AUTHORS +1 -0
- data/CHANGES.md +92 -0
- data/Gemfile +2 -0
- data/LICENSE +14 -0
- data/README.md +112 -0
- data/lib/czmq-ffi-gen.rb +7 -0
- data/lib/czmq-ffi-gen/czmq/ffi.rb +1210 -0
- data/lib/czmq-ffi-gen/czmq/ffi/version.rb +15 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zactor.rb +186 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zarmour.rb +286 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zcert.rb +307 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zcertstore.rb +222 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zchunk.rb +388 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zclock.rb +140 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zconfig.rb +442 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zdigest.rb +156 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zdir.rb +283 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zdir_patch.rb +194 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zfile.rb +353 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zframe.rb +359 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zhash.rb +416 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zhashx.rb +659 -0
- data/lib/czmq-ffi-gen/czmq/ffi/ziflist.rb +189 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zlist.rb +365 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zlistx.rb +478 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zloop.rb +396 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zmsg.rb +515 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zpoller.rb +194 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zproc.rb +294 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zsock.rb +3479 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zstr.rb +203 -0
- data/lib/czmq-ffi-gen/czmq/ffi/ztimerset.rb +203 -0
- data/lib/czmq-ffi-gen/czmq/ffi/ztrie.rb +221 -0
- data/lib/czmq-ffi-gen/czmq/ffi/zuuid.rb +227 -0
- data/lib/czmq-ffi-gen/errors.rb +12 -0
- data/lib/czmq-ffi-gen/gem_version.rb +5 -0
- data/lib/czmq-ffi-gen/legacy.rb +16 -0
- data/lib/czmq-ffi-gen/libzmq.rb +18 -0
- data/lib/czmq-ffi-gen/signals.rb +27 -0
- data/lib/czmq-ffi-gen/vendor.rb +5 -0
- data/lib/czmq-ffi-gen/versions.rb +19 -0
- data/vendor/local/bin/inproc_lat.exe +0 -0
- data/vendor/local/bin/inproc_thr.exe +0 -0
- data/vendor/local/bin/libczmq.dll +0 -0
- data/vendor/local/bin/libgcc_s_seh-1.dll +0 -0
- data/vendor/local/bin/libstdc++-6.dll +0 -0
- data/vendor/local/bin/libzmq.dll +0 -0
- data/vendor/local/bin/local_lat.exe +0 -0
- data/vendor/local/bin/local_thr.exe +0 -0
- data/vendor/local/bin/remote_lat.exe +0 -0
- data/vendor/local/bin/remote_thr.exe +0 -0
- data/vendor/local/include/czmq.h +31 -0
- data/vendor/local/include/czmq_library.h +199 -0
- data/vendor/local/include/czmq_prelude.h +641 -0
- data/vendor/local/include/readme.txt +83 -0
- data/vendor/local/include/sha1.h +76 -0
- data/vendor/local/include/sha1.inc_c +335 -0
- data/vendor/local/include/slre.h +92 -0
- data/vendor/local/include/slre.inc_c +660 -0
- data/vendor/local/include/zactor.h +76 -0
- data/vendor/local/include/zarmour.h +114 -0
- data/vendor/local/include/zauth.h +100 -0
- data/vendor/local/include/zauth_v2.h +88 -0
- data/vendor/local/include/zbeacon.h +86 -0
- data/vendor/local/include/zbeacon_v2.h +75 -0
- data/vendor/local/include/zcert.h +136 -0
- data/vendor/local/include/zcertstore.h +100 -0
- data/vendor/local/include/zchunk.h +163 -0
- data/vendor/local/include/zclock.h +73 -0
- data/vendor/local/include/zconfig.h +185 -0
- data/vendor/local/include/zctx.h +107 -0
- data/vendor/local/include/zdigest.h +65 -0
- data/vendor/local/include/zdir.h +149 -0
- data/vendor/local/include/zdir_patch.h +82 -0
- data/vendor/local/include/zfile.h +177 -0
- data/vendor/local/include/zframe.h +176 -0
- data/vendor/local/include/zgossip.h +95 -0
- data/vendor/local/include/zgossip_engine.inc +927 -0
- data/vendor/local/include/zgossip_msg.h +129 -0
- data/vendor/local/include/zhash.h +195 -0
- data/vendor/local/include/zhash_primes.inc +329 -0
- data/vendor/local/include/zhashx.h +298 -0
- data/vendor/local/include/ziflist.h +77 -0
- data/vendor/local/include/zlist.h +158 -0
- data/vendor/local/include/zlistx.h +205 -0
- data/vendor/local/include/zloop.h +168 -0
- data/vendor/local/include/zmonitor.h +73 -0
- data/vendor/local/include/zmonitor_v2.h +56 -0
- data/vendor/local/include/zmq.h +617 -0
- data/vendor/local/include/zmq_utils.h +48 -0
- data/vendor/local/include/zmsg.h +280 -0
- data/vendor/local/include/zmutex.h +55 -0
- data/vendor/local/include/zpoller.h +92 -0
- data/vendor/local/include/zproc.h +168 -0
- data/vendor/local/include/zproxy.h +111 -0
- data/vendor/local/include/zproxy_v2.h +62 -0
- data/vendor/local/include/zrex.h +82 -0
- data/vendor/local/include/zsock.h +912 -0
- data/vendor/local/include/zsock_option.inc +4126 -0
- data/vendor/local/include/zsocket.h +110 -0
- data/vendor/local/include/zsockopt.h +256 -0
- data/vendor/local/include/zstr.h +110 -0
- data/vendor/local/include/zsys.h +386 -0
- data/vendor/local/include/zthread.h +50 -0
- data/vendor/local/include/ztimerset.h +90 -0
- data/vendor/local/include/ztrie.h +106 -0
- data/vendor/local/include/zuuid.h +96 -0
- data/vendor/local/lib/libczmq.dll.a +0 -0
- data/vendor/local/lib/liblibzmq.dll.a +0 -0
- data/vendor/local/lib/libzmq-static.a +0 -0
- data/vendor/local/lib/pkgconfig/libczmq.pc +23 -0
- data/vendor/local/lib/pkgconfig/libzmq.pc +11 -0
- data/vendor/local/share/zmq/AUTHORS.txt +147 -0
- data/vendor/local/share/zmq/COPYING.LESSER.txt +181 -0
- data/vendor/local/share/zmq/COPYING.txt +674 -0
- data/vendor/local/share/zmq/NEWS.txt +978 -0
- metadata +230 -0
@@ -0,0 +1,48 @@
|
|
1
|
+
/*
|
2
|
+
Copyright (c) 2007-2016 Contributors as noted in the AUTHORS file
|
3
|
+
|
4
|
+
This file is part of libzmq, the ZeroMQ core engine in C++.
|
5
|
+
|
6
|
+
libzmq is free software; you can redistribute it and/or modify it under
|
7
|
+
the terms of the GNU Lesser General Public License (LGPL) as published
|
8
|
+
by the Free Software Foundation; either version 3 of the License, or
|
9
|
+
(at your option) any later version.
|
10
|
+
|
11
|
+
As a special exception, the Contributors give you permission to link
|
12
|
+
this library with independent modules to produce an executable,
|
13
|
+
regardless of the license terms of these independent modules, and to
|
14
|
+
copy and distribute the resulting executable under terms of your choice,
|
15
|
+
provided that you also meet, for each linked independent module, the
|
16
|
+
terms and conditions of the license of that module. An independent
|
17
|
+
module is a module which is not derived from or based on this library.
|
18
|
+
If you modify this library, you must extend this exception to your
|
19
|
+
version of the library.
|
20
|
+
|
21
|
+
libzmq is distributed in the hope that it will be useful, but WITHOUT
|
22
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
24
|
+
License for more details.
|
25
|
+
|
26
|
+
You should have received a copy of the GNU Lesser General Public License
|
27
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
28
|
+
*/
|
29
|
+
|
30
|
+
/* This file is deprecated, and all its functionality provided by zmq.h */
|
31
|
+
/* Note that -Wpedantic compilation requires GCC to avoid using its custom
|
32
|
+
extensions such as #warning, hence the trick below. Also, pragmas for
|
33
|
+
warnings or other messages are not standard, not portable, and not all
|
34
|
+
compilers even have an equivalent concept.
|
35
|
+
So in the worst case, this include file is treated as silently empty. */
|
36
|
+
|
37
|
+
#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) || defined(_MSC_VER)
|
38
|
+
#if defined(__GNUC__) || defined(__GNUG__)
|
39
|
+
#pragma GCC diagnostic push
|
40
|
+
#pragma GCC diagnostic warning "-Wcpp"
|
41
|
+
#pragma GCC diagnostic ignored "-Werror"
|
42
|
+
#pragma GCC diagnostic ignored "-Wall"
|
43
|
+
#endif
|
44
|
+
#pragma message("Warning: zmq_utils.h is deprecated. All its functionality is provided by zmq.h.")
|
45
|
+
#if defined(__GNUC__) || defined(__GNUG__)
|
46
|
+
#pragma GCC diagnostic pop
|
47
|
+
#endif
|
48
|
+
#endif
|
@@ -0,0 +1,280 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zmsg - working with multipart messages
|
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 __ZMSG_H_INCLUDED__
|
15
|
+
#define __ZMSG_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/zmsg.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
|
+
// Create a new empty message object
|
29
|
+
CZMQ_EXPORT zmsg_t *
|
30
|
+
zmsg_new (void);
|
31
|
+
|
32
|
+
// Receive message from socket, returns zmsg_t object or NULL if the recv
|
33
|
+
// was interrupted. Does a blocking recv. If you want to not block then use
|
34
|
+
// the zloop class or zmsg_recv_nowait or zmq_poll to check for socket input
|
35
|
+
// before receiving.
|
36
|
+
CZMQ_EXPORT zmsg_t *
|
37
|
+
zmsg_recv (void *source);
|
38
|
+
|
39
|
+
// Load/append an open file into new message, return the message.
|
40
|
+
// Returns NULL if the message could not be loaded.
|
41
|
+
CZMQ_EXPORT zmsg_t *
|
42
|
+
zmsg_load (FILE *file);
|
43
|
+
|
44
|
+
// Decodes a serialized message frame created by zmsg_encode () and returns
|
45
|
+
// a new zmsg_t object. Returns NULL if the frame was badly formatted or
|
46
|
+
// there was insufficient memory to work.
|
47
|
+
CZMQ_EXPORT zmsg_t *
|
48
|
+
zmsg_decode (zframe_t *frame);
|
49
|
+
|
50
|
+
// Generate a signal message encoding the given status. A signal is a short
|
51
|
+
// message carrying a 1-byte success/failure code (by convention, 0 means
|
52
|
+
// OK). Signals are encoded to be distinguishable from "normal" messages.
|
53
|
+
CZMQ_EXPORT zmsg_t *
|
54
|
+
zmsg_new_signal (byte status);
|
55
|
+
|
56
|
+
// Destroy a message object and all frames it contains
|
57
|
+
CZMQ_EXPORT void
|
58
|
+
zmsg_destroy (zmsg_t **self_p);
|
59
|
+
|
60
|
+
// Send message to destination socket, and destroy the message after sending
|
61
|
+
// it successfully. If the message has no frames, sends nothing but destroys
|
62
|
+
// the message anyhow. Nullifies the caller's reference to the message (as
|
63
|
+
// it is a destructor).
|
64
|
+
CZMQ_EXPORT int
|
65
|
+
zmsg_send (zmsg_t **self_p, void *dest);
|
66
|
+
|
67
|
+
// Send message to destination socket as part of a multipart sequence, and
|
68
|
+
// destroy the message after sending it successfully. Note that after a
|
69
|
+
// zmsg_sendm, you must call zmsg_send or another method that sends a final
|
70
|
+
// message part. If the message has no frames, sends nothing but destroys
|
71
|
+
// the message anyhow. Nullifies the caller's reference to the message (as
|
72
|
+
// it is a destructor).
|
73
|
+
CZMQ_EXPORT int
|
74
|
+
zmsg_sendm (zmsg_t **self_p, void *dest);
|
75
|
+
|
76
|
+
// Return size of message, i.e. number of frames (0 or more).
|
77
|
+
CZMQ_EXPORT size_t
|
78
|
+
zmsg_size (zmsg_t *self);
|
79
|
+
|
80
|
+
// Return total size of all frames in message.
|
81
|
+
CZMQ_EXPORT size_t
|
82
|
+
zmsg_content_size (zmsg_t *self);
|
83
|
+
|
84
|
+
// Push frame to the front of the message, i.e. before all other frames.
|
85
|
+
// Message takes ownership of frame, will destroy it when message is sent.
|
86
|
+
// Returns 0 on success, -1 on error. Deprecates zmsg_push, which did not
|
87
|
+
// nullify the caller's frame reference.
|
88
|
+
CZMQ_EXPORT int
|
89
|
+
zmsg_prepend (zmsg_t *self, zframe_t **frame_p);
|
90
|
+
|
91
|
+
// Add frame to the end of the message, i.e. after all other frames.
|
92
|
+
// Message takes ownership of frame, will destroy it when message is sent.
|
93
|
+
// Returns 0 on success. Deprecates zmsg_add, which did not nullify the
|
94
|
+
// caller's frame reference.
|
95
|
+
CZMQ_EXPORT int
|
96
|
+
zmsg_append (zmsg_t *self, zframe_t **frame_p);
|
97
|
+
|
98
|
+
// Remove first frame from message, if any. Returns frame, or NULL.
|
99
|
+
// Caller owns return value and must destroy it when done.
|
100
|
+
CZMQ_EXPORT zframe_t *
|
101
|
+
zmsg_pop (zmsg_t *self);
|
102
|
+
|
103
|
+
// Push block of memory to front of message, as a new frame.
|
104
|
+
// Returns 0 on success, -1 on error.
|
105
|
+
CZMQ_EXPORT int
|
106
|
+
zmsg_pushmem (zmsg_t *self, const void *data, size_t size);
|
107
|
+
|
108
|
+
// Add block of memory to the end of the message, as a new frame.
|
109
|
+
// Returns 0 on success, -1 on error.
|
110
|
+
CZMQ_EXPORT int
|
111
|
+
zmsg_addmem (zmsg_t *self, const void *data, size_t size);
|
112
|
+
|
113
|
+
// Push string as new frame to front of message.
|
114
|
+
// Returns 0 on success, -1 on error.
|
115
|
+
CZMQ_EXPORT int
|
116
|
+
zmsg_pushstr (zmsg_t *self, const char *string);
|
117
|
+
|
118
|
+
// Push string as new frame to end of message.
|
119
|
+
// Returns 0 on success, -1 on error.
|
120
|
+
CZMQ_EXPORT int
|
121
|
+
zmsg_addstr (zmsg_t *self, const char *string);
|
122
|
+
|
123
|
+
// Push formatted string as new frame to front of message.
|
124
|
+
// Returns 0 on success, -1 on error.
|
125
|
+
CZMQ_EXPORT int
|
126
|
+
zmsg_pushstrf (zmsg_t *self, const char *format, ...) CHECK_PRINTF (2);
|
127
|
+
|
128
|
+
// Push formatted string as new frame to end of message.
|
129
|
+
// Returns 0 on success, -1 on error.
|
130
|
+
CZMQ_EXPORT int
|
131
|
+
zmsg_addstrf (zmsg_t *self, const char *format, ...) CHECK_PRINTF (2);
|
132
|
+
|
133
|
+
// Pop frame off front of message, return as fresh string. If there were
|
134
|
+
// no more frames in the message, returns NULL.
|
135
|
+
// Caller owns return value and must destroy it when done.
|
136
|
+
CZMQ_EXPORT char *
|
137
|
+
zmsg_popstr (zmsg_t *self);
|
138
|
+
|
139
|
+
// Push encoded message as a new frame. Message takes ownership of
|
140
|
+
// submessage, so the original is destroyed in this call. Returns 0 on
|
141
|
+
// success, -1 on error.
|
142
|
+
CZMQ_EXPORT int
|
143
|
+
zmsg_addmsg (zmsg_t *self, zmsg_t **msg_p);
|
144
|
+
|
145
|
+
// Remove first submessage from message, if any. Returns zmsg_t, or NULL if
|
146
|
+
// decoding was not successful.
|
147
|
+
// Caller owns return value and must destroy it when done.
|
148
|
+
CZMQ_EXPORT zmsg_t *
|
149
|
+
zmsg_popmsg (zmsg_t *self);
|
150
|
+
|
151
|
+
// Remove specified frame from list, if present. Does not destroy frame.
|
152
|
+
CZMQ_EXPORT void
|
153
|
+
zmsg_remove (zmsg_t *self, zframe_t *frame);
|
154
|
+
|
155
|
+
// Set cursor to first frame in message. Returns frame, or NULL, if the
|
156
|
+
// message is empty. Use this to navigate the frames as a list.
|
157
|
+
CZMQ_EXPORT zframe_t *
|
158
|
+
zmsg_first (zmsg_t *self);
|
159
|
+
|
160
|
+
// Return the next frame. If there are no more frames, returns NULL. To move
|
161
|
+
// to the first frame call zmsg_first(). Advances the cursor.
|
162
|
+
CZMQ_EXPORT zframe_t *
|
163
|
+
zmsg_next (zmsg_t *self);
|
164
|
+
|
165
|
+
// Return the last frame. If there are no frames, returns NULL.
|
166
|
+
CZMQ_EXPORT zframe_t *
|
167
|
+
zmsg_last (zmsg_t *self);
|
168
|
+
|
169
|
+
// Save message to an open file, return 0 if OK, else -1. The message is
|
170
|
+
// saved as a series of frames, each with length and data. Note that the
|
171
|
+
// file is NOT guaranteed to be portable between operating systems, not
|
172
|
+
// versions of CZMQ. The file format is at present undocumented and liable
|
173
|
+
// to arbitrary change.
|
174
|
+
CZMQ_EXPORT int
|
175
|
+
zmsg_save (zmsg_t *self, FILE *file);
|
176
|
+
|
177
|
+
// Serialize multipart message to a single message frame. Use this method
|
178
|
+
// to send structured messages across transports that do not support
|
179
|
+
// multipart data. Allocates and returns a new frame containing the
|
180
|
+
// serialized message. To decode a serialized message frame, use
|
181
|
+
// zmsg_decode ().
|
182
|
+
// Caller owns return value and must destroy it when done.
|
183
|
+
CZMQ_EXPORT zframe_t *
|
184
|
+
zmsg_encode (zmsg_t *self);
|
185
|
+
|
186
|
+
// Create copy of message, as new message object. Returns a fresh zmsg_t
|
187
|
+
// object. If message is null, or memory was exhausted, returns null.
|
188
|
+
// Caller owns return value and must destroy it when done.
|
189
|
+
CZMQ_EXPORT zmsg_t *
|
190
|
+
zmsg_dup (zmsg_t *self);
|
191
|
+
|
192
|
+
// Send message to zsys log sink (may be stdout, or system facility as
|
193
|
+
// configured by zsys_set_logstream).
|
194
|
+
CZMQ_EXPORT void
|
195
|
+
zmsg_print (zmsg_t *self);
|
196
|
+
|
197
|
+
// Return true if the two messages have the same number of frames and each
|
198
|
+
// frame in the first message is identical to the corresponding frame in the
|
199
|
+
// other message. As with zframe_eq, return false if either message is NULL.
|
200
|
+
CZMQ_EXPORT bool
|
201
|
+
zmsg_eq (zmsg_t *self, zmsg_t *other);
|
202
|
+
|
203
|
+
// Return signal value, 0 or greater, if message is a signal, -1 if not.
|
204
|
+
CZMQ_EXPORT int
|
205
|
+
zmsg_signal (zmsg_t *self);
|
206
|
+
|
207
|
+
// Probe the supplied object, and report if it looks like a zmsg_t.
|
208
|
+
CZMQ_EXPORT bool
|
209
|
+
zmsg_is (void *self);
|
210
|
+
|
211
|
+
// Self test of this class.
|
212
|
+
CZMQ_EXPORT void
|
213
|
+
zmsg_test (bool verbose);
|
214
|
+
|
215
|
+
#ifdef CZMQ_BUILD_DRAFT_API
|
216
|
+
// *** Draft method, for development use, may change without warning ***
|
217
|
+
// Return message routing ID, if the message came from a ZMQ_SERVER socket.
|
218
|
+
// Else returns zero.
|
219
|
+
CZMQ_EXPORT uint32_t
|
220
|
+
zmsg_routing_id (zmsg_t *self);
|
221
|
+
|
222
|
+
// *** Draft method, for development use, may change without warning ***
|
223
|
+
// Set routing ID on message. This is used if/when the message is sent to a
|
224
|
+
// ZMQ_SERVER socket.
|
225
|
+
CZMQ_EXPORT void
|
226
|
+
zmsg_set_routing_id (zmsg_t *self, uint32_t routing_id);
|
227
|
+
|
228
|
+
#endif // CZMQ_BUILD_DRAFT_API
|
229
|
+
// @end
|
230
|
+
|
231
|
+
|
232
|
+
// DEPRECATED as over-engineered, poor style
|
233
|
+
// Pop frame off front of message, caller now owns frame
|
234
|
+
// If next frame is empty, pops and destroys that empty frame.
|
235
|
+
CZMQ_EXPORT zframe_t *
|
236
|
+
zmsg_unwrap (zmsg_t *self);
|
237
|
+
|
238
|
+
// DEPRECATED as poor style -- callers should use zloop or zpoller
|
239
|
+
// Receive message from socket, returns zmsg_t object, or NULL either if
|
240
|
+
// there was no input waiting, or the recv was interrupted.
|
241
|
+
CZMQ_EXPORT zmsg_t *
|
242
|
+
zmsg_recv_nowait (void *source);
|
243
|
+
|
244
|
+
// DEPRECATED as unsafe -- does not nullify frame reference.
|
245
|
+
// Push frame plus empty frame to front of message, before first frame.
|
246
|
+
// Message takes ownership of frame, will destroy it when message is sent.
|
247
|
+
CZMQ_EXPORT void
|
248
|
+
zmsg_wrap (zmsg_t *self, zframe_t *frame);
|
249
|
+
|
250
|
+
// DEPRECATED - will be removed for next + 1 stable release
|
251
|
+
// Add frame to the front of the message, i.e. before all other frames.
|
252
|
+
// Message takes ownership of frame, will destroy it when message is sent.
|
253
|
+
// Returns 0 on success, -1 on error.
|
254
|
+
CZMQ_EXPORT int
|
255
|
+
zmsg_push (zmsg_t *self, zframe_t *frame);
|
256
|
+
|
257
|
+
// DEPRECATED - will be removed for next stable release
|
258
|
+
CZMQ_EXPORT int
|
259
|
+
zmsg_add (zmsg_t *self, zframe_t *frame);
|
260
|
+
|
261
|
+
// DEPRECATED as inconsistent; breaks principle that logging should all go
|
262
|
+
// to a single destination.
|
263
|
+
// Print message to open stream
|
264
|
+
// Truncates to first 10 frames, for readability.
|
265
|
+
CZMQ_EXPORT void
|
266
|
+
zmsg_fprint (zmsg_t *self, FILE *file);
|
267
|
+
|
268
|
+
// Compiler hints
|
269
|
+
CZMQ_EXPORT int zmsg_addstrf (zmsg_t *self, const char *format, ...) CHECK_PRINTF (2);
|
270
|
+
CZMQ_EXPORT int zmsg_pushstrf (zmsg_t *self, const char *format, ...) CHECK_PRINTF (2);
|
271
|
+
|
272
|
+
#ifdef __cplusplus
|
273
|
+
}
|
274
|
+
#endif
|
275
|
+
|
276
|
+
// Deprecated method aliases
|
277
|
+
#define zmsg_dump(s) zmsg_print(s)
|
278
|
+
#define zmsg_dump_to_stream(s,F) zmsg_fprint(s,F)
|
279
|
+
|
280
|
+
#endif
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zmutex - working with mutexes
|
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 __ZMUTEX_H_INCLUDED__
|
15
|
+
#define __ZMUTEX_H_INCLUDED__
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
// @interface
|
22
|
+
// This is a deprecated class, and will be removed over time. It is
|
23
|
+
// provided in stable builds to support old applications. You should
|
24
|
+
// stop using this class, and migrate any code that is still using it.
|
25
|
+
|
26
|
+
// Create a new mutex container
|
27
|
+
CZMQ_EXPORT zmutex_t *
|
28
|
+
zmutex_new (void);
|
29
|
+
|
30
|
+
// Destroy a mutex container
|
31
|
+
CZMQ_EXPORT void
|
32
|
+
zmutex_destroy (zmutex_t **self_p);
|
33
|
+
|
34
|
+
// Lock mutex
|
35
|
+
CZMQ_EXPORT void
|
36
|
+
zmutex_lock (zmutex_t *self);
|
37
|
+
|
38
|
+
// Unlock mutex
|
39
|
+
CZMQ_EXPORT void
|
40
|
+
zmutex_unlock (zmutex_t *self);
|
41
|
+
|
42
|
+
// Try to lock mutex
|
43
|
+
CZMQ_EXPORT int
|
44
|
+
zmutex_try_lock (zmutex_t *self);
|
45
|
+
|
46
|
+
// Self test of this class.
|
47
|
+
CZMQ_EXPORT void
|
48
|
+
zmutex_test (bool verbose);
|
49
|
+
// @end
|
50
|
+
|
51
|
+
#ifdef __cplusplus
|
52
|
+
}
|
53
|
+
#endif
|
54
|
+
|
55
|
+
#endif
|
@@ -0,0 +1,92 @@
|
|
1
|
+
/* =========================================================================
|
2
|
+
zpoller - trivial socket poller class
|
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 __zpoller_H_INCLUDED__
|
15
|
+
#define __zpoller_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/zpoller.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
|
+
// Create new poller, specifying zero or more readers. The list of
|
29
|
+
// readers ends in a NULL. Each reader can be a zsock_t instance, a
|
30
|
+
// zactor_t instance, a libzmq socket (void *), or a file handle.
|
31
|
+
CZMQ_EXPORT zpoller_t *
|
32
|
+
zpoller_new (void *reader, ...);
|
33
|
+
|
34
|
+
// Destroy a poller
|
35
|
+
CZMQ_EXPORT void
|
36
|
+
zpoller_destroy (zpoller_t **self_p);
|
37
|
+
|
38
|
+
// Add a reader to be polled. Returns 0 if OK, -1 on failure. The reader may
|
39
|
+
// be a libzmq void * socket, a zsock_t instance, or a zactor_t instance.
|
40
|
+
CZMQ_EXPORT int
|
41
|
+
zpoller_add (zpoller_t *self, void *reader);
|
42
|
+
|
43
|
+
// Remove a reader from the poller; returns 0 if OK, -1 on failure. The reader
|
44
|
+
// must have been passed during construction, or in an zpoller_add () call.
|
45
|
+
CZMQ_EXPORT int
|
46
|
+
zpoller_remove (zpoller_t *self, void *reader);
|
47
|
+
|
48
|
+
// Poll the registered readers for I/O, return first reader that has input.
|
49
|
+
// The reader will be a libzmq void * socket, or a zsock_t or zactor_t
|
50
|
+
// instance as specified in zpoller_new/zpoller_add. The timeout should be
|
51
|
+
// zero or greater, or -1 to wait indefinitely. Socket priority is defined
|
52
|
+
// by their order in the poll list. If you need a balanced poll, use the low
|
53
|
+
// level zmq_poll method directly. If the poll call was interrupted (SIGINT),
|
54
|
+
// or the ZMQ context was destroyed, or the timeout expired, returns NULL.
|
55
|
+
// You can test the actual exit condition by calling zpoller_expired () and
|
56
|
+
// zpoller_terminated (). The timeout is in msec.
|
57
|
+
CZMQ_EXPORT void *
|
58
|
+
zpoller_wait (zpoller_t *self, int timeout);
|
59
|
+
|
60
|
+
// Return true if the last zpoller_wait () call ended because the timeout
|
61
|
+
// expired, without any error.
|
62
|
+
CZMQ_EXPORT bool
|
63
|
+
zpoller_expired (zpoller_t *self);
|
64
|
+
|
65
|
+
// Return true if the last zpoller_wait () call ended because the process
|
66
|
+
// was interrupted, or the parent context was destroyed.
|
67
|
+
CZMQ_EXPORT bool
|
68
|
+
zpoller_terminated (zpoller_t *self);
|
69
|
+
|
70
|
+
// Self test of this class.
|
71
|
+
CZMQ_EXPORT void
|
72
|
+
zpoller_test (bool verbose);
|
73
|
+
|
74
|
+
#ifdef CZMQ_BUILD_DRAFT_API
|
75
|
+
// *** Draft method, for development use, may change without warning ***
|
76
|
+
// By default the poller stops if the process receives a SIGINT or SIGTERM
|
77
|
+
// signal. This makes it impossible to shut-down message based architectures
|
78
|
+
// like zactors. This method lets you switch off break handling. The default
|
79
|
+
// nonstop setting is off (false).
|
80
|
+
CZMQ_EXPORT void
|
81
|
+
zpoller_set_nonstop (zpoller_t *self, bool nonstop);
|
82
|
+
|
83
|
+
#endif // CZMQ_BUILD_DRAFT_API
|
84
|
+
// @end
|
85
|
+
|
86
|
+
|
87
|
+
#ifdef __cplusplus
|
88
|
+
}
|
89
|
+
#endif
|
90
|
+
|
91
|
+
#endif
|
92
|
+
|