X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/de4983f3236c2043479abb21857aca958a7b61f0..94e0018723919fe2ca2f5b5f0a42804c16dbf3a1:/interface/wx/buffer.h?ds=sidebyside diff --git a/interface/wx/buffer.h b/interface/wx/buffer.h index bb14bb1ab2..f9ce4835ef 100644 --- a/interface/wx/buffer.h +++ b/interface/wx/buffer.h @@ -3,7 +3,7 @@ // Purpose: interface of wxMemoryBuffer // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -57,16 +57,24 @@ public: The buffer's destructor will not destroy @a str. The returned buffer's data is valid only as long as @a str is valid. + + @param str String data. + @param len If specified, length of the string, otherwise the string + is considered to be NUL-terminated. */ - static const wxScopedCharTypeBuffer CreateNonOwned(const CharType *str); + static const wxScopedCharTypeBuffer CreateNonOwned(const CharType *str, size_t len = wxNO_LEN); /** Creates owned buffer from @a str and takes ownership of it. The buffer's destructor will free @a str when its reference count reaches zero (initial count is 1). + + @param str String data. + @param len If specified, length of the string, otherwise the string + is considered to be NUL-terminated. */ - static const wxScopedCharTypeBuffer CreateOwned(const CharType *str); + static const wxScopedCharTypeBuffer CreateOwned(CharType *str, size_t len = wxNO_LEN); /** Copy constructor. @@ -94,6 +102,9 @@ public: /// Returns const pointer to the stored data. const CharType *data() const; + /// Returns length of the string stored. + size_t length() const; + /// Implicit conversion to C string. operator const CharType *() const; @@ -133,9 +144,13 @@ public: /** Creates (owned) buffer from @a str and takes ownership of it. + @param str String data. + @param len If specified, length of the string, otherwise the string + is considered to be NUL-terminated. + @see wxScopedCharTypeBuffer::CreateOwned() */ - wxCharTypeBuffer(const CharType *str = NULL); + wxCharTypeBuffer(const CharType *str = NULL, size_t len = wxNO_LEN); /** @@ -185,8 +200,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); }; /** @@ -265,6 +299,16 @@ 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); + /** 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