c: msgpack_unpacker_buffered_size; c++: unpacker::buffered_size

This commit is contained in:
frsyuki 2009-02-25 23:31:53 +09:00
parent a89dfc70b9
commit 8893523776
2 changed files with 15 additions and 0 deletions

View File

@ -46,6 +46,7 @@ void msgpack_unpacker_destroy(msgpack_unpacker* mpac);
msgpack_unpacker* msgpack_unpacker_new(size_t initial_buffer_size);
void msgpack_unpacker_free(msgpack_unpacker* mpac);
static inline size_t msgpack_unpacker_buffered_size(const msgpack_unpacker* mpac);
static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size);
static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac);
static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac);
@ -77,6 +78,11 @@ bool msgpack_unpacker_flush_zone(msgpack_unpacker* mpac);
bool msgpack_unpacker_expand_buffer(msgpack_unpacker* mpac, size_t size);
size_t msgpack_unpacker_buffered_size(const msgpack_unpacker* mpac)
{
return mpac->used;
}
bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size)
{
if(mpac->free >= size) { return true; }

View File

@ -43,6 +43,9 @@ public:
~unpacker();
public:
/*! 0. check if the buffered size is not exceed the assumption. */
size_t buffered_size() const;
/*! 1. reserve buffer. at least `size' bytes of capacity will be ready */
void reserve_buffer(size_t size);
@ -154,6 +157,12 @@ inline unpacker::~unpacker()
msgpack_unpacker_destroy(this);
}
inline size_t unpacker::buffered_size() const
{
return msgpack_unpacker_buffered_size(this);
}
inline void unpacker::reserve_buffer(size_t size)
{
if(!msgpack_unpacker_reserve_buffer(this, size)) {