10 #ifndef HAKA_VBUFFER_H 11 #define HAKA_VBUFFER_H 14 #include <haka/container/list2.h> 15 #include <haka/lua/object.h> 22 #define ALL (size_t)-1 24 typedef uint32 vbsize_t; 65 struct lua_object lua_object;
66 struct vbuffer_chunk *chunks;
69 extern const struct vbuffer vbuffer_init;
78 struct vbuffer_chunk *chunk;
106 struct vbuffer_chunk *data;
INLINE const uint8 * vbuffer_flatten(struct vbuffer *buf, size_t *size)
Definition: vbuffer.h:570
void vbuffer_iterator_clear(struct vbuffer_iterator *position)
Definition: vbuffer.c:509
bool vbuffer_replace(struct vbuffer_sub *data, struct vbuffer *buffer)
Definition: vbuffer.c:1490
uint8 * vbuffer_mmap(struct vbuffer_sub *data, size_t *len, bool write, struct vbuffer_sub_mmap *mmap_iter, struct vbuffer_iterator *iter)
Definition: vbuffer.c:1261
bool vbuffer_iterator_unmark(struct vbuffer_iterator *position)
Definition: vbuffer.c:972
bool vbuffer_iterator_insert(struct vbuffer_iterator *position, struct vbuffer *buffer, struct vbuffer_sub *sub)
Definition: vbuffer.c:712
bool vbuffer_sub_check_size(struct vbuffer_sub *data, size_t minsize, size_t *size)
Definition: vbuffer.c:1139
size_t vbuffer_iterator_sub(struct vbuffer_iterator *position, size_t len, struct vbuffer_sub *sub, bool split)
Definition: vbuffer.c:822
size_t vbuffer_asstring(struct vbuffer_sub *data, char *str, size_t len)
Definition: vbuffer.c:1946
const uint8 * vbuffer_sub_flatten(struct vbuffer_sub *data, size_t *size)
Definition: vbuffer.c:1619
void vbuffer_clear(struct vbuffer *buf)
Definition: vbuffer.c:304
bool vbuffer_setnumber(struct vbuffer_sub *data, bool bigendian, int64 num)
Definition: vbuffer.c:1745
bool vbuffer_create_empty(struct vbuffer *buf)
Definition: vbuffer.c:215
uint32 vbsize_t
Definition: vbuffer.h:24
bool vbuffer_zero(struct vbuffer_sub *data)
Definition: vbuffer.c:1303
bool vbuffer_isvalid(const struct vbuffer *buf)
Definition: vbuffer.c:209
bool vbuffer_sub_clone(struct vbuffer_sub *data, struct vbuffer *buffer, clone_mode mode)
Definition: vbuffer.c:1650
INLINE void vbuffer_begin(const struct vbuffer *buf, struct vbuffer_iterator *position)
Definition: vbuffer.h:546
INLINE bool vbuffer_clone(struct vbuffer *data, struct vbuffer *buffer, bool copy)
Definition: vbuffer.h:577
size_t vbuffer_size(struct vbuffer *buf)
Definition: vbuffer.c:326
bool vbuffer_sub_sub(struct vbuffer_sub *data, size_t offset, size_t length, struct vbuffer_sub *buffer)
Definition: vbuffer.c:1116
bool vbuffer_setbits(struct vbuffer_sub *data, size_t offset, size_t bits, bool bigendian, int64 num)
Definition: vbuffer.c:1882
bool vbuffer_extract(struct vbuffer_sub *data, struct vbuffer *buffer)
Definition: vbuffer.c:1420
bool vbuffer_ismodified(struct vbuffer *buf)
Definition: vbuffer.c:397
bool vbuffer_restore(struct vbuffer_iterator *position, struct vbuffer *data, bool clone)
Definition: vbuffer.c:1442
bool vbuffer_iswritable(struct vbuffer *buf)
Definition: vbuffer.c:391
size_t vbuffer_setfixedstring(struct vbuffer_sub *data, const char *str, size_t len)
Definition: vbuffer.c:1956
void vbuffer_iterator_move(struct vbuffer_iterator *iter, const struct vbuffer_iterator *pos)
Definition: vbuffer.c:498
bool vbuffer_iterator_split(struct vbuffer_iterator *position)
Definition: vbuffer.c:811
void vbuffer_clearmodified(struct vbuffer *buf)
Definition: vbuffer.c:411
size_t vbuffer_iterator_advance(struct vbuffer_iterator *position, size_t len)
Definition: vbuffer.c:775
void vbuffer_sub_begin(struct vbuffer_sub *data, struct vbuffer_iterator *begin)
Definition: vbuffer.c:1085
bool vbuffer_setstring(struct vbuffer_sub *data, const char *str, size_t len)
Definition: vbuffer.c:1961
bool vbuffer_append(struct vbuffer *buf, struct vbuffer *buffer)
Definition: vbuffer.c:422
size_t vbuffer_iterator_available(struct vbuffer_iterator *position)
Definition: vbuffer.c:576
INLINE bool vbuffer_isflat(struct vbuffer *buf)
Definition: vbuffer.h:563
INLINE bool vbuffer_check_size(struct vbuffer *buf, size_t minsize, size_t *size)
Definition: vbuffer.h:556
void vbuffer_sub_create(struct vbuffer_sub *data, struct vbuffer *buffer, size_t offset, size_t length)
Definition: vbuffer.c:1042
bool vbuffer_sub_position(struct vbuffer_sub *data, struct vbuffer_iterator *iter, size_t offset)
Definition: vbuffer.c:1101
uint8 vbuffer_iterator_getbyte(struct vbuffer_iterator *position)
Definition: vbuffer.c:851
size_t vbuffer_sub_write(struct vbuffer_sub *data, const uint8 *ptr, size_t size)
Definition: vbuffer.c:1174
bool vbuffer_sub_compact(struct vbuffer_sub *data)
Definition: vbuffer.c:1645
HAKA_64BIT_TYPE int64
Definition: types.h:25
void vbuffer_sub_clear(struct vbuffer_sub *data)
Definition: vbuffer.c:1022
bool vbuffer_create_new(struct vbuffer *buf, size_t size, bool zero)
Definition: vbuffer.c:253
bool vbuffer_iterator_isinsertable(struct vbuffer_iterator *position, struct vbuffer *buffer)
Definition: vbuffer.c:991
unsigned char bool
Definition: types.h:17
bool vbuffer_iterator_isend(struct vbuffer_iterator *position)
Definition: vbuffer.c:879
bool vbuffer_iterator_mark(struct vbuffer_iterator *position, bool readonly)
Definition: vbuffer.c:949
void vbuffer_position(const struct vbuffer *buf, struct vbuffer_iterator *position, size_t offset)
Definition: vbuffer.c:340
uint8 * vbuffer_iterator_mmap(struct vbuffer_iterator *position, size_t maxsize, size_t *size, bool write)
Definition: vbuffer.c:913
#define ALL
Definition: vbuffer.h:22
bool vbuffer_sub_isflat(struct vbuffer_sub *data)
Definition: vbuffer.c:1519
int64 vbuffer_asbits(struct vbuffer_sub *data, size_t offset, size_t bits, bool bigendian)
Definition: vbuffer.c:1832
void vbuffer_swap(struct vbuffer *a, struct vbuffer *b)
Definition: vbuffer.c:436
void vbuffer_setwritable(struct vbuffer *buf, bool writable)
Definition: vbuffer.c:380
void vbuffer_iterator_copy(const struct vbuffer_iterator *src, struct vbuffer_iterator *dst)
Definition: vbuffer.c:487
bool vbuffer_iterator_isvalid(const struct vbuffer_iterator *position)
Definition: vbuffer.c:481
bool vbuffer_create_from(struct vbuffer *buf, const char *str, size_t len)
Definition: vbuffer.c:267
bool vbuffer_sub_create_from_position(struct vbuffer_sub *data, struct vbuffer_iterator *position, size_t length)
Definition: vbuffer.c:1063
bool vbuffer_iterator_unregister(struct vbuffer_iterator *position)
Definition: vbuffer.c:662
unsigned char uint8
Definition: types.h:27
bool vbuffer_select(struct vbuffer_sub *data, struct vbuffer *buffer, struct vbuffer_iterator *ref)
Definition: vbuffer.c:1427
bool vbuffer_iterator_iseof(struct vbuffer_iterator *position)
Definition: vbuffer.c:896
bool vbuffer_isempty(const struct vbuffer *buf)
Definition: vbuffer.c:357
bool vbuffer_iterator_check_available(struct vbuffer_iterator *position, size_t minsize, size_t *size)
Definition: vbuffer.c:643
bool vbuffer_sub_unregister(struct vbuffer_sub *data)
Definition: vbuffer.c:1035
bool vbuffer_sub_register(struct vbuffer_sub *data)
Definition: vbuffer.c:1028
INLINE void vbuffer_end(const struct vbuffer *buf, struct vbuffer_iterator *position)
Definition: vbuffer.h:551
Definition: vbuffer.h:105
size_t vbuffer_sub_read(struct vbuffer_sub *data, uint8 *ptr, size_t size)
Definition: vbuffer.c:1154
bool vbuffer_iterator_setbyte(struct vbuffer_iterator *position, uint8 byte)
Definition: vbuffer.c:865
int64 vbuffer_asnumber(struct vbuffer_sub *data, bool bigendian)
Definition: vbuffer.c:1704
bool vbuffer_setbyte(struct vbuffer_sub *data, size_t offset, uint8 byte)
Definition: vbuffer.c:1979
void vbuffer_release(struct vbuffer *buf)
Definition: vbuffer.c:320
bool vbuffer_iterator_register(struct vbuffer_iterator *position)
Definition: vbuffer.c:648
bool vbuffer_sub_create_between_position(struct vbuffer_sub *data, struct vbuffer_iterator *begin, struct vbuffer_iterator *end)
Definition: vbuffer.c:1074
void vbuffer_sub_end(struct vbuffer_sub *data, struct vbuffer_iterator *end)
Definition: vbuffer.c:1090
bool vbuffer_erase(struct vbuffer_sub *data)
Definition: vbuffer.c:1480
void vbuffer_iterator_skip_empty(struct vbuffer_iterator *position)
Definition: vbuffer.c:755
void vbuffer_last(const struct vbuffer *buf, struct vbuffer_iterator *position)
Definition: vbuffer.c:363
clone_mode
Definition: vbuffer.h:30
size_t vbuffer_sub_size(struct vbuffer_sub *data)
Definition: vbuffer.c:1132
uint8 vbuffer_getbyte(struct vbuffer_sub *data, size_t offset)
Definition: vbuffer.c:1971