-
Notifications
You must be signed in to change notification settings - Fork 172
/
qzframe.cpp
231 lines (199 loc) · 5.6 KB
/
qzframe.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
/*
################################################################################
# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
# Read the zproject/README.md for information about making permanent changes. #
################################################################################
*/
#include "qtzyre.h"
///
// Copy-construct to return the proper wrapped c types
QZframe::QZframe (zframe_t *self, QObject *qObjParent) : QObject (qObjParent)
{
this->self = self;
}
///
// Create a new frame. If size is not null, allocates the frame data
// to the specified size. If additionally, data is not null, copies
// size octets from the specified data into the frame body.
QZframe::QZframe (const void *data, size_t size, QObject *qObjParent) : QObject (qObjParent)
{
this->self = zframe_new (data, size);
}
///
// Create an empty (zero-sized) frame
QZframe* QZframe::newEmpty (QObject *qObjParent)
{
return new QZframe (zframe_new_empty (), qObjParent);
}
///
// Create a frame with a specified string content.
QZframe* QZframe::from (const QString &string, QObject *qObjParent)
{
return new QZframe (zframe_from (string.toUtf8().data()), qObjParent);
}
///
// Receive frame from socket, returns zframe_t object or NULL if the recv
// was interrupted. Does a blocking recv, if you want to not block then use
// zpoller or zloop.
QZframe* QZframe::recv (void *source, QObject *qObjParent)
{
return new QZframe (zframe_recv (source), qObjParent);
}
///
// Destroy a frame
QZframe::~QZframe ()
{
zframe_destroy (&self);
}
///
// Send a frame to a socket, destroy frame after sending.
// Return -1 on error, 0 on success.
int QZframe::send (void *dest, int flags)
{
int rv = zframe_send (&self, dest, flags);
return rv;
}
///
// Return number of bytes in frame data
size_t QZframe::size ()
{
size_t rv = zframe_size (self);
return rv;
}
///
// Return address of frame data
byte * QZframe::data ()
{
byte * rv = zframe_data (self);
return rv;
}
///
// Return meta data property for frame
// The caller shall not modify or free the returned value, which shall be
// owned by the message.
const QString QZframe::meta (const QString &property)
{
const QString rv = QString (zframe_meta (self, property.toUtf8().data()));
return rv;
}
///
// Create a new frame that duplicates an existing frame. If frame is null,
// or memory was exhausted, returns null.
QZframe * QZframe::dup ()
{
QZframe *rv = new QZframe (zframe_dup (self));
return rv;
}
///
// Return frame data encoded as printable hex string, useful for 0MQ UUIDs.
// Caller must free string when finished with it.
QString QZframe::strhex ()
{
char *retStr_ = zframe_strhex (self);
QString rv = QString (retStr_);
zstr_free (&retStr_);
return rv;
}
///
// Return frame data copied into freshly allocated string
// Caller must free string when finished with it.
QString QZframe::strdup ()
{
char *retStr_ = zframe_strdup (self);
QString rv = QString (retStr_);
zstr_free (&retStr_);
return rv;
}
///
// Return TRUE if frame body is equal to string, excluding terminator
bool QZframe::streqNoConflict (const QString &string)
{
bool rv = zframe_streq (self, string.toUtf8().data());
return rv;
}
///
// Return frame MORE indicator (1 or 0), set when reading frame from socket
// or by the zframe_set_more() method
int QZframe::more ()
{
int rv = zframe_more (self);
return rv;
}
///
// Set frame MORE indicator (1 or 0). Note this is NOT used when sending
// frame to socket, you have to specify flag explicitly.
void QZframe::setMore (int more)
{
zframe_set_more (self, more);
}
///
// Return frame routing ID, if the frame came from a ZMQ_SERVER socket.
// Else returns zero.
quint32 QZframe::routingId ()
{
uint32_t rv = zframe_routing_id (self);
return rv;
}
///
// Set routing ID on frame. This is used if/when the frame is sent to a
// ZMQ_SERVER socket.
void QZframe::setRoutingId (quint32 routingId)
{
zframe_set_routing_id (self, (uint32_t) routingId);
}
///
// Return frame group of radio-dish pattern.
const QString QZframe::group ()
{
const QString rv = QString (zframe_group (self));
return rv;
}
///
// Set group on frame. This is used if/when the frame is sent to a
// ZMQ_RADIO socket.
// Return -1 on error, 0 on success.
int QZframe::setGroup (const QString &group)
{
int rv = zframe_set_group (self, group.toUtf8().data());
return rv;
}
///
// Return TRUE if two frames have identical size and data
// If either frame is NULL, equality is always false.
bool QZframe::eq (QZframe *other)
{
bool rv = zframe_eq (self, other->self);
return rv;
}
///
// Set new contents for frame
void QZframe::reset (const void *data, size_t size)
{
zframe_reset (self, data, size);
}
///
// Send message to zsys log sink (may be stdout, or system facility as
// configured by zsys_set_logstream). Prefix shows before frame, if not null.
void QZframe::print (const QString &prefix)
{
zframe_print (self, prefix.toUtf8().data());
}
///
// Probe the supplied object, and report if it looks like a zframe_t.
bool QZframe::is (void *self)
{
bool rv = zframe_is (self);
return rv;
}
///
// Self test of this class.
void QZframe::test (bool verbose)
{
zframe_test (verbose);
}
/*
################################################################################
# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
# Read the zproject/README.md for information about making permanent changes. #
################################################################################
*/