X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6df09f32fd0bbc2324a6a96683109e6c6cc47db5..92c0fc34c104c8d7c12d6a3b78ea232690fc23f4:/interface/wx/buffer.h diff --git a/interface/wx/buffer.h b/interface/wx/buffer.h index 3d5287b6c7..8ab9dce8aa 100644 --- a/interface/wx/buffer.h +++ b/interface/wx/buffer.h @@ -2,8 +2,7 @@ // Name: buffer.h // Purpose: interface of wxMemoryBuffer // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -74,7 +73,7 @@ public: @param len If specified, length of the string, otherwise the string is considered to be NUL-terminated. */ - static const wxScopedCharTypeBuffer CreateOwned(const CharType *str, size_t len = wxNO_LEN); + static const wxScopedCharTypeBuffer CreateOwned(CharType *str, size_t len = wxNO_LEN); /** Copy constructor. @@ -178,7 +177,7 @@ public: wxCharTypeBuffer(const wxScopedCharTypeBuffer& src); /** - Assigns @a str to this buffer and takes ownership of it (i.e. the + Assigns @a str to this buffer and takes ownership of it (i.e.\ the buffer becomes "owned"). */ wxCharTypeBuffer& operator=(const CharType *str); @@ -200,8 +199,27 @@ public: Can only be called on buffers that don't share data with another buffer (i.e. reference count of the data is 1). + + @see shrink() */ bool extend(size_t len); + + /** + Shrinks the buffer to have size @a len and NUL-terminates the string + at this length. + + Can only be called on buffers that don't share data with another + buffer (i.e. reference count of the data is 1). + + @param len Length to shrink to. Must not be larger than current length. + + @note The string is not reallocated to take less memory. + + @since 2.9.0 + + @see extend() + */ + bool shrink(size_t len); }; /** @@ -268,9 +286,9 @@ public: Create a new buffer. @param size - size of the new buffer. + size of the new buffer, 1KiB by default. */ - wxMemoryBuffer(size_t size = DefBufSize); + wxMemoryBuffer(size_t size = 1024); /** Append a single byte to the buffer. @@ -280,6 +298,27 @@ public: */ void AppendByte(char data); + /** + Single call to append a data block to the buffer. + + @param data + Pointer to block to append to the buffer. + @param len + Length of data to append. + */ + void AppendData(const void *data, size_t len); + + /** + Clear the buffer contents. + + The buffer won't contain any data after this method is called. + + @see IsEmpty() + + @since 2.9.4 + */ + void Clear(); + /** 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 @@ -314,6 +353,15 @@ public: */ void* GetWriteBuf(size_t sizeNeeded); + /** + Returns true if the buffer contains no data. + + @see Clear() + + @since 2.9.4 + */ + bool IsEmpty() const; + /** Ensures the buffer has at least @a size bytes available. */