summaryrefslogtreecommitdiff
path: root/cpp/src/msgpack
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/msgpack')
-rw-r--r--cpp/src/msgpack/zbuffer.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/cpp/src/msgpack/zbuffer.h b/cpp/src/msgpack/zbuffer.h
index 2a32206..0ff9675 100644
--- a/cpp/src/msgpack/zbuffer.h
+++ b/cpp/src/msgpack/zbuffer.h
@@ -47,6 +47,9 @@ static inline bool msgpack_zbuffer_init(msgpack_zbuffer* zbuf,
int level, size_t init_size);
static inline void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf);
+static inline msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size);
+static inline void msgpack_zbuffer_free(msgpack_zbuffer* zbuf);
+
static inline char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf);
static inline const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf);
@@ -80,6 +83,23 @@ void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf)
free(zbuf->data);
}
+msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size)
+{
+ msgpack_zbuffer* zbuf = (msgpack_zbuffer*)malloc(sizeof(msgpack_zbuffer));
+ if(!msgpack_zbuffer_init(zbuf, level, init_size)) {
+ free(zbuf);
+ return NULL;
+ }
+ return zbuf;
+}
+
+void msgpack_zbuffer_free(msgpack_zbuffer* zbuf)
+{
+ if(zbuf == NULL) { return; }
+ msgpack_zbuffer_destroy(zbuf);
+ free(zbuf);
+}
+
bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf)
{
size_t used = (char*)zbuf->stream.next_out - zbuf->data;