summaryrefslogtreecommitdiff
path: root/cpp/src/msgpack/sbuffer.h
diff options
context:
space:
mode:
authorUENISHI Kota <kuenishi+github@gmail.com>2010-06-03 00:14:19 +0900
committerUENISHI Kota <kuenishi+github@gmail.com>2010-06-03 00:14:19 +0900
commit8ecaf7ad4ce4185e81fae775332282ed551fa886 (patch)
tree68b7fb5c875f5620033ac8fa4e046bfdd51f78d0 /cpp/src/msgpack/sbuffer.h
parent49f3872d047624b1995b8c60edec8bad35429fd3 (diff)
parentd4049fe593ae4465e7a258d138c2166571a0f1a7 (diff)
downloadmsgpack-python-8ecaf7ad4ce4185e81fae775332282ed551fa886.tar.gz
Merge branch 'master' of ssh://github.com/msgpack/msgpack
Diffstat (limited to 'cpp/src/msgpack/sbuffer.h')
-rw-r--r--cpp/src/msgpack/sbuffer.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/cpp/src/msgpack/sbuffer.h b/cpp/src/msgpack/sbuffer.h
index 57f424a..778dea7 100644
--- a/cpp/src/msgpack/sbuffer.h
+++ b/cpp/src/msgpack/sbuffer.h
@@ -21,15 +21,17 @@
#include <stdlib.h>
#include <string.h>
-#ifndef MSGPACK_SBUFFER_INIT_SIZE
-#define MSGPACK_SBUFFER_INIT_SIZE 8192
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif
+/**
+ * @defgroup msgpack_sbuffer Simple buffer
+ * @ingroup msgpack_buffer
+ * @{
+ */
+
typedef struct msgpack_sbuffer {
size_t size;
char* data;
@@ -46,6 +48,22 @@ static inline void msgpack_sbuffer_destroy(msgpack_sbuffer* sbuf)
free(sbuf->data);
}
+static inline msgpack_sbuffer* msgpack_sbuffer_new(void)
+{
+ return (msgpack_sbuffer*)calloc(1, sizeof(msgpack_sbuffer));
+}
+
+static inline void msgpack_sbuffer_free(msgpack_sbuffer* sbuf)
+{
+ if(sbuf == NULL) { return; }
+ msgpack_sbuffer_destroy(sbuf);
+ free(sbuf);
+}
+
+#ifndef MSGPACK_SBUFFER_INIT_SIZE
+#define MSGPACK_SBUFFER_INIT_SIZE 8192
+#endif
+
static inline int msgpack_sbuffer_write(void* data, const char* buf, unsigned int len)
{
msgpack_sbuffer* sbuf = (msgpack_sbuffer*)data;
@@ -82,6 +100,9 @@ static inline void msgpack_sbuffer_clear(msgpack_sbuffer* sbuf)
sbuf->size = 0;
}
+/** @} */
+
+
#ifdef __cplusplus
}
#endif