#include <ByteBuffer.h>
Public Member Functions | |
| virtual void | alloc (size_t n) |
| make sure that at least n bytes are allocated. | |
| void | assign_copy (const void *data, size_t len) |
| copy a memory range into the buffer | |
| void | assign_keep (void *data, size_t len) |
| associate this object with a new memory buffer. | |
| size_t | buffsize () const |
| return the number of available bytes in the buffer | |
| ByteBuffer (const ByteBuffer &o) | |
| copy constructor: create a new duplicate object. | |
| ByteBuffer (size_t n) | |
| create a object with n bytes preallocated | |
| ByteBuffer () | |
| create an empty object | |
| void | clear () |
| clears the memory contents. does not deallocate the memory | |
| char * | data () |
| return a pointer to the currently kept memory | |
| const char * | data () const |
| return a const pointer to the currently kept memory | |
| void | dealloc () |
| deallocates the kept memory space (we use dealloc() instead of free() as a name, because sometimes "free" is replaced by the preprocessor) | |
| const char * | detach () |
| detach the memory from the object. returns the memory pointer | |
| std::pair< const char *, size_t > | detach_pair () |
| detach the memory from the object, returning a std::pair containing memory pointer and size. | |
| bool | empty () const |
| returns true if the buffer is empty | |
| virtual void | grow (size_t n) |
| make sure that at least n bytes are allocated. | |
| operator std::string () const | |
| automatic conversion cast to std::string (copies memory) | |
| ByteBuffer & | operator= (const ByteBuffer &o) |
| assignment: copy memory | |
| void | set_size (size_t s) |
| set the currently used data | |
| size_t | size () const |
| return the currently used length in bytes | |
| std::string | toString () const |
| explicit conversion to std::string | |
| virtual | ~ByteBuffer () |
| destroys the memory space | |
Protected Attributes | |
| size_t | _buff |
| allocated bytes at _data | |
| char * | _data |
| pointer to the allocated memory buffer | |
| size_t | _size |
| used bytes within the buffer | |
The class has two virtual functions, which can be used to implement ByteBuffer derivations, which use other alloc() and free() functions.
Definition at line 18 of file ByteBuffer.h.
| VGServer::ByteBuffer::ByteBuffer | ( | ) | [inline, explicit] |
| VGServer::ByteBuffer::ByteBuffer | ( | size_t | n | ) | [inline, explicit] |
| VGServer::ByteBuffer::ByteBuffer | ( | const ByteBuffer & | o | ) | [inline, explicit] |
copy constructor: create a new duplicate object.
Definition at line 45 of file ByteBuffer.h.
References _buff, _data, _size, assign_copy(), data(), and size().
| virtual VGServer::ByteBuffer::~ByteBuffer | ( | ) | [inline, virtual] |
| virtual void VGServer::ByteBuffer::alloc | ( | size_t | n | ) | [inline, virtual] |
make sure that at least n bytes are allocated.
if less than n bytes are available, then enlarge the buffer to exactly n bytes, or the next possible size.
Definition at line 101 of file ByteBuffer.h.
Referenced by ByteBuffer().
| void VGServer::ByteBuffer::assign_copy | ( | const void * | data, | |
| size_t | len | |||
| ) | [inline] |
copy a memory range into the buffer
Definition at line 165 of file ByteBuffer.h.
Referenced by ByteBuffer(), VGServer::ByteInBuffer::fetchBytes(), and operator=().
| void VGServer::ByteBuffer::assign_keep | ( | void * | data, | |
| size_t | len | |||
| ) | [inline] |
associate this object with a new memory buffer.
It will be deallocated with dealloc()!
Definition at line 157 of file ByteBuffer.h.
| size_t VGServer::ByteBuffer::buffsize | ( | ) | const [inline] |
return the number of available bytes in the buffer
Definition at line 75 of file ByteBuffer.h.
References _buff.
Referenced by VGServer::ByteOutBuffer::append(), and VGServer::ByteOutBuffer::appendBytes().
| void VGServer::ByteBuffer::clear | ( | ) | [inline] |
clears the memory contents. does not deallocate the memory
Definition at line 95 of file ByteBuffer.h.
| char* VGServer::ByteBuffer::data | ( | ) | [inline] |
return a pointer to the currently kept memory
Definition at line 67 of file ByteBuffer.h.
References _data.
| const char* VGServer::ByteBuffer::data | ( | ) | const [inline] |
return a const pointer to the currently kept memory
Definition at line 63 of file ByteBuffer.h.
References _data.
Referenced by VGServer::ByteOutBuffer::append(), VGServer::ByteOutBuffer::appendByteBuffer(), VGServer::ByteOutBuffer::appendBytes(), ByteBuffer(), VGServer::ByteInBuffer::fetch(), VGServer::ByteInBuffer::fetchBytes(), VGServer::ByteInBuffer::fetchLongString(), VGServer::ByteInBuffer::fetchString(), VGServer::GraphData::loadSnapshot(), operator=(), and VGServer::GraphData::saveSnapshot().
| void VGServer::ByteBuffer::dealloc | ( | ) | [inline] |
deallocates the kept memory space (we use dealloc() instead of free() as a name, because sometimes "free" is replaced by the preprocessor)
Definition at line 130 of file ByteBuffer.h.
Referenced by ~ByteBuffer().
| const char* VGServer::ByteBuffer::detach | ( | ) | [inline] |
detach the memory from the object. returns the memory pointer
Definition at line 138 of file ByteBuffer.h.
| std::pair<const char*, size_t> VGServer::ByteBuffer::detach_pair | ( | ) | [inline] |
detach the memory from the object, returning a std::pair containing memory pointer and size.
Definition at line 147 of file ByteBuffer.h.
| bool VGServer::ByteBuffer::empty | ( | ) | const [inline] |
| virtual void VGServer::ByteBuffer::grow | ( | size_t | n | ) | [inline, virtual] |
make sure that at least n bytes are allocated.
if less than n bytes are available, enlarge the buffer. this function may choose to allocate considerably more than n bytes in expectance of more memory need.
Definition at line 113 of file ByteBuffer.h.
Referenced by VGServer::ByteOutBuffer::append(), and VGServer::ByteOutBuffer::appendBytes().
| VGServer::ByteBuffer::operator std::string | ( | ) | const [inline] |
automatic conversion cast to std::string (copies memory)
Definition at line 87 of file ByteBuffer.h.
| ByteBuffer& VGServer::ByteBuffer::operator= | ( | const ByteBuffer & | o | ) | [inline] |
assignment: copy memory
Definition at line 52 of file ByteBuffer.h.
References assign_copy(), data(), and size().
| void VGServer::ByteBuffer::set_size | ( | size_t | s | ) | [inline] |
set the currently used data
Definition at line 83 of file ByteBuffer.h.
Referenced by VGServer::ByteOutBuffer::append(), and VGServer::ByteOutBuffer::appendBytes().
| size_t VGServer::ByteBuffer::size | ( | ) | const [inline] |
return the currently used length in bytes
Definition at line 71 of file ByteBuffer.h.
References _size.
Referenced by VGServer::ByteOutBuffer::append(), VGServer::ByteOutBuffer::appendByteBuffer(), VGServer::ByteOutBuffer::appendBytes(), ByteBuffer(), VGServer::ByteInBuffer::cursor_available(), empty(), VGServer::GraphContainer::getArea(), VGServer::GraphData::loadSnapshot(), operator=(), VGServer::ByteInBuffer::remaining(), and VGServer::GraphData::saveSnapshot().
| std::string VGServer::ByteBuffer::toString | ( | ) | const [inline] |
size_t VGServer::ByteBuffer::_buff [protected] |
allocated bytes at _data
Definition at line 28 of file ByteBuffer.h.
Referenced by buffsize(), ByteBuffer(), and set_size().
char* VGServer::ByteBuffer::_data [protected] |
pointer to the allocated memory buffer
Definition at line 22 of file ByteBuffer.h.
Referenced by ByteBuffer(), data(), and operator std::string().
size_t VGServer::ByteBuffer::_size [protected] |
used bytes within the buffer
Definition at line 25 of file ByteBuffer.h.
Referenced by ByteBuffer(), operator std::string(), set_size(), and size().
1.4.7