10#ifndef MSGPACK_VREFBUFFER_H
11#define MSGPACK_VREFBUFFER_H
17#if defined(unix) || defined(__unix) || defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__QNX__) || defined(__QNXTO__) || defined(__HAIKU__)
60#ifndef MSGPACK_VREFBUFFER_REF_SIZE
61#define MSGPACK_VREFBUFFER_REF_SIZE 32
64#ifndef MSGPACK_VREFBUFFER_CHUNK_SIZE
65#define MSGPACK_VREFBUFFER_CHUNK_SIZE 8192
70 size_t ref_size,
size_t chunk_size);
74static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(
size_t ref_size,
size_t chunk_size);
77static inline int msgpack_vrefbuffer_write(
void*
data,
const char* buf,
size_t len);
84 const char* buf,
size_t len);
88 const char* buf,
size_t len);
99static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(
size_t ref_size,
size_t chunk_size)
102 if (vbuf == NULL)
return NULL;
112 if(vbuf == NULL) {
return; }
117static inline int msgpack_vrefbuffer_write(
void*
data,
const char* buf,
size_t len)
120 assert(buf ||
len == 0);
138 return (
size_t)(
vref->tail -
vref->array);
MSGPACK_DLLEXPORT int msgpack_vrefbuffer_migrate(msgpack_vrefbuffer *vbuf, msgpack_vrefbuffer *to)
MSGPACK_DLLEXPORT int msgpack_vrefbuffer_append_copy(msgpack_vrefbuffer *vbuf, const char *buf, size_t len)
MSGPACK_DLLEXPORT void msgpack_vrefbuffer_destroy(msgpack_vrefbuffer *vbuf)
MSGPACK_DLLEXPORT void msgpack_vrefbuffer_clear(msgpack_vrefbuffer *vref)
struct msgpack_vrefbuffer_chunk msgpack_vrefbuffer_chunk
Definition vrefbuffer.h:40
MSGPACK_DLLEXPORT int msgpack_vrefbuffer_append_ref(msgpack_vrefbuffer *vbuf, const char *buf, size_t len)
MSGPACK_DLLEXPORT bool msgpack_vrefbuffer_init(msgpack_vrefbuffer *vbuf, size_t ref_size, size_t chunk_size)
Definition vrefbuffer.h:21
size_t iov_len
Definition vrefbuffer.h:23
void * iov_base
Definition vrefbuffer.h:22
Definition vrefbuffer.h:42
size_t free
Definition vrefbuffer.h:43
char * ptr
Definition vrefbuffer.h:44
msgpack_vrefbuffer_chunk * head
Definition vrefbuffer.h:45
Definition vrefbuffer.h:48
size_t chunk_size
Definition vrefbuffer.h:53
msgpack_iovec * tail
Definition vrefbuffer.h:49
msgpack_iovec * array
Definition vrefbuffer.h:51
msgpack_iovec * end
Definition vrefbuffer.h:50
msgpack_vrefbuffer_inner_buffer inner_buffer
Definition vrefbuffer.h:56
size_t ref_size
Definition vrefbuffer.h:54
const char * data
Definition unpack_template.h:94
const char size_t len
Definition unpack_template.h:94