Skip to content

Commit 9bc1ec0

Browse files
committed
Merge pull request #153 from ulikoehler/master
Add zero-copy version of zmsg_addmem
2 parents d709521 + 3b4593e commit 9bc1ec0

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/zmsg.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,6 @@ zmsg_pushmem (zmsg_t *self, const void *src, size_t size)
229229
return -1;
230230
}
231231

232-
233232
// --------------------------------------------------------------------------
234233
// Add block of memory to the end of the message, as a new frame.
235234

@@ -246,6 +245,22 @@ zmsg_addmem (zmsg_t *self, const void *src, size_t size)
246245
return -1;
247246
}
248247

248+
// --------------------------------------------------------------------------
249+
// Add block of memory to the end of the message, as a new frame.
250+
// The new frame is zero-copy-constructed (see zframe_new_zero_copy(...) for detailed description)
251+
252+
int
253+
zmsg_addmem_zero_copy (zmsg_t *self, void *src, size_t size, zframe_free_fn *free_fn, void *arg)
254+
{
255+
assert (self);
256+
zframe_t *frame = zframe_new_zero_copy (src, size, free_fn, arg);
257+
if (frame) {
258+
self->content_size += size;
259+
return zlist_append (self->frames, frame);
260+
}
261+
else
262+
return -1;
263+
}
249264

250265
// --------------------------------------------------------------------------
251266
// Push string as new frame to front of message

0 commit comments

Comments
 (0)