/////////////////////////////////////////////////////////////////////////////
// Name: buffer.h
-// Purpose: documentation for wxMemoryBuffer class
+// Purpose: interface of wxMemoryBuffer
// Author: wxWidgets team
// RCS-ID: $Id$
// Licence: wxWindows license
@wxheader{buffer.h}
A @b wxMemoryBuffer is a useful data structure for storing arbitrary sized
- blocks
- of memory. wxMemoryBuffer guarantees deletion of the memory block when the
- object
- is destroyed.
+ blocks of memory. wxMemoryBuffer guarantees deletion of the memory block when
+ the object is destroyed.
@library{wxbase}
- @category{FIXME}
+ @category{data}
*/
class wxMemoryBuffer
{
public:
- //@{
+ /**
+ Copy constructor, refcounting is used for performance, but wxMemoryBuffer
+ is not a copy-on-write structure so changes made to one buffer effect all
+ copies made from it.
+
+ @see @ref overview_refcount
+ */
+ wxMemoryBuffer(const wxMemoryBuffer& src);
+
/**
Create a new buffer.
-
+
@param size
- size of new buffer.
+ size of the new buffer.
*/
- wxMemoryBuffer(const wxMemoryBuffer& src);
wxMemoryBuffer(size_t size);
- //@}
/**
Append a single byte to the buffer.
-
+
@param data
- New byte to append to the buffer.
+ New byte to append to the buffer.
*/
void AppendByte(char data);
/**
Ensure that the buffer is big enough and return a pointer to the start
of the empty space in the buffer. This pointer can be used to directly
- write data into the buffer, this new data will be appended to
- the existing data.
-
+ write data into the buffer, this new data will be appended to the
+ existing data.
+
@param sizeNeeded
- Amount of extra space required in the buffer for
- the append operation
+ Amount of extra space required in the buffer for
+ the append operation
*/
- void * GetAppendBuf(size_t sizeNeeded);
+ void* GetAppendBuf(size_t sizeNeeded);
/**
Returns the size of the buffer.
*/
- size_t GetBufSize();
+ size_t GetBufSize() const;
/**
Return a pointer to the data in the buffer.
*/
- void* GetData();
+ void* GetData() const;
/**
Returns the length of the valid data in the buffer.
*/
- size_t GetDataLen();
+ size_t GetDataLen() const;
/**
Ensure the buffer is big enough and return a pointer to the
buffer which can be used to directly write into the buffer
- up to @e sizeNeeded bytes.
+ up to @a sizeNeeded bytes.
*/
- void * GetWriteBuf(size_t sizeNeeded);
+ void* GetWriteBuf(size_t sizeNeeded);
/**
- Ensures the buffer has at least @e size bytes available.
+ Ensures the buffer has at least @a size bytes available.
*/
void SetBufSize(size_t size);
/**
- Sets the length of the data stored in the buffer. Mainly useful for truncating
- existing data.
-
+ Sets the length of the data stored in the buffer.
+ Mainly useful for truncating existing data.
+
@param size
- New length of the valid data in the buffer. This is
- distinct from the allocated size
+ New length of the valid data in the buffer. This is
+ distinct from the allocated size
*/
void SetDataLen(size_t size);
/**
Update the length after completing a direct append, which
you must have used GetAppendBuf() to initialise.
-
+
@param sizeUsed
- This is the amount of new data that has been
- appended.
+ This is the amount of new data that has been
+ appended.
*/
void UngetAppendBuf(size_t sizeUsed);
/**
Update the buffer after completing a direct write, which
you must have used GetWriteBuf() to initialise.
-
+
@param sizeUsed
- The amount of data written in to buffer
- by the direct write
+ The amount of data written in to buffer
+ by the direct write
*/
void UngetWriteBuf(size_t sizeUsed);
};
+