Lines Matching refs:zbuf

47 static inline bool msgpack_zbuffer_init(msgpack_zbuffer* zbuf,
49 static inline void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf);
52 static inline void msgpack_zbuffer_free(msgpack_zbuffer* zbuf);
54 static inline char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf);
56 static inline const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf);
57 static inline size_t msgpack_zbuffer_size(const msgpack_zbuffer* zbuf);
59 static inline bool msgpack_zbuffer_reset(msgpack_zbuffer* zbuf);
60 static inline void msgpack_zbuffer_reset_buffer(msgpack_zbuffer* zbuf);
61 static inline char* msgpack_zbuffer_release_buffer(msgpack_zbuffer* zbuf);
70 static inline bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf);
73 bool msgpack_zbuffer_init(msgpack_zbuffer* zbuf, in msgpack_zbuffer_init() argument
76 memset(zbuf, 0, sizeof(msgpack_zbuffer)); in msgpack_zbuffer_init()
77 zbuf->init_size = init_size; in msgpack_zbuffer_init()
78 if(deflateInit(&zbuf->stream, level) != Z_OK) { in msgpack_zbuffer_init()
79 free(zbuf->data); in msgpack_zbuffer_init()
85 void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf) in msgpack_zbuffer_destroy() argument
87 deflateEnd(&zbuf->stream); in msgpack_zbuffer_destroy()
88 free(zbuf->data); in msgpack_zbuffer_destroy()
93 msgpack_zbuffer* zbuf = (msgpack_zbuffer*)malloc(sizeof(msgpack_zbuffer)); in msgpack_zbuffer_new() local
94 if(!msgpack_zbuffer_init(zbuf, level, init_size)) { in msgpack_zbuffer_new()
95 free(zbuf); in msgpack_zbuffer_new()
98 return zbuf; in msgpack_zbuffer_new()
101 void msgpack_zbuffer_free(msgpack_zbuffer* zbuf) in msgpack_zbuffer_free() argument
103 if(zbuf == NULL) { return; } in msgpack_zbuffer_free()
104 msgpack_zbuffer_destroy(zbuf); in msgpack_zbuffer_free()
105 free(zbuf); in msgpack_zbuffer_free()
108 bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf) in msgpack_zbuffer_expand() argument
110 size_t used = (char*)zbuf->stream.next_out - zbuf->data; in msgpack_zbuffer_expand()
111 size_t csize = used + zbuf->stream.avail_out; in msgpack_zbuffer_expand()
112 size_t nsize = (csize == 0) ? zbuf->init_size : csize * 2; in msgpack_zbuffer_expand()
114 char* tmp = (char*)realloc(zbuf->data, nsize); in msgpack_zbuffer_expand()
119 zbuf->data = tmp; in msgpack_zbuffer_expand()
120 zbuf->stream.next_out = (Bytef*)(tmp + used); in msgpack_zbuffer_expand()
121 zbuf->stream.avail_out = nsize - used; in msgpack_zbuffer_expand()
128 msgpack_zbuffer* zbuf = (msgpack_zbuffer*)data; in msgpack_zbuffer_write() local
130 zbuf->stream.next_in = (Bytef*)buf; in msgpack_zbuffer_write()
131 zbuf->stream.avail_in = len; in msgpack_zbuffer_write()
134 if(zbuf->stream.avail_out < MSGPACK_ZBUFFER_RESERVE_SIZE) { in msgpack_zbuffer_write()
135 if(!msgpack_zbuffer_expand(zbuf)) { in msgpack_zbuffer_write()
140 if(deflate(&zbuf->stream, Z_NO_FLUSH) != Z_OK) { in msgpack_zbuffer_write()
143 } while(zbuf->stream.avail_in > 0); in msgpack_zbuffer_write()
148 char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf) in msgpack_zbuffer_flush() argument
151 switch(deflate(&zbuf->stream, Z_FINISH)) { in msgpack_zbuffer_flush()
153 return zbuf->data; in msgpack_zbuffer_flush()
155 if(!msgpack_zbuffer_expand(zbuf)) { in msgpack_zbuffer_flush()
165 const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf) in msgpack_zbuffer_data() argument
167 return zbuf->data; in msgpack_zbuffer_data()
170 size_t msgpack_zbuffer_size(const msgpack_zbuffer* zbuf) in msgpack_zbuffer_size() argument
172 return (char*)zbuf->stream.next_out - zbuf->data; in msgpack_zbuffer_size()
175 void msgpack_zbuffer_reset_buffer(msgpack_zbuffer* zbuf) in msgpack_zbuffer_reset_buffer() argument
177 zbuf->stream.avail_out += (char*)zbuf->stream.next_out - zbuf->data; in msgpack_zbuffer_reset_buffer()
178 zbuf->stream.next_out = (Bytef*)zbuf->data; in msgpack_zbuffer_reset_buffer()
181 bool msgpack_zbuffer_reset(msgpack_zbuffer* zbuf) in msgpack_zbuffer_reset() argument
183 if(deflateReset(&zbuf->stream) != Z_OK) { in msgpack_zbuffer_reset()
186 msgpack_zbuffer_reset_buffer(zbuf); in msgpack_zbuffer_reset()
190 char* msgpack_zbuffer_release_buffer(msgpack_zbuffer* zbuf) in msgpack_zbuffer_release_buffer() argument
192 char* tmp = zbuf->data; in msgpack_zbuffer_release_buffer()
193 zbuf->data = NULL; in msgpack_zbuffer_release_buffer()
194 zbuf->stream.next_out = NULL; in msgpack_zbuffer_release_buffer()
195 zbuf->stream.avail_out = 0; in msgpack_zbuffer_release_buffer()