X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c913512a4c9f36e11e07ea707002fab1608d324..06e9cf134f284d1ce992617bd63d3f781af70575:/interface/buffer.h diff --git a/interface/buffer.h b/interface/buffer.h index e5092f67cc..6de1c83f15 100644 --- a/interface/buffer.h +++ b/interface/buffer.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: buffer.h -// Purpose: documentation for wxMemoryBuffer class +// Purpose: interface of wxMemoryBuffer // Author: wxWidgets team // RCS-ID: $Id$ // Licence: wxWindows license @@ -11,102 +11,107 @@ @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); }; +