VGServer::ByteBuffer Class Reference

ByteBuffer is an inline utility class used by the graph server to enclose a continuous memory space and securely return it to the client. More...

#include <ByteBuffer.h>

List of all members.

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)
ByteBufferoperator= (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


Detailed Description

ByteBuffer is an inline utility class used by the graph server to enclose a continuous memory space and securely return it to the client.

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.


Constructor & Destructor Documentation

VGServer::ByteBuffer::ByteBuffer (  )  [inline, explicit]

create an empty object

Definition at line 32 of file ByteBuffer.h.

References _buff, _data, and _size.

VGServer::ByteBuffer::ByteBuffer ( size_t  n  )  [inline, explicit]

create a object with n bytes preallocated

Definition at line 38 of file ByteBuffer.h.

References _buff, _data, _size, and alloc().

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]

destroys the memory space

Definition at line 58 of file ByteBuffer.h.

References dealloc().


Member Function Documentation

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]

returns true if the buffer is empty

Definition at line 79 of file ByteBuffer.h.

References size().

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.

References _data, and _size.

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.

References _buff, and _size.

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]

explicit conversion to std::string

Definition at line 91 of file ByteBuffer.h.


Member Data Documentation

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().


The documentation for this class was generated from the following file:
Generated on Wed Sep 27 14:34:01 2006 for VGServer by  doxygen 1.4.7