]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/buffer.h
Use /bin/echo for creation of Mac OS X PkgInfo files.
[wxWidgets.git] / interface / wx / buffer.h
index bb14bb1ab26dcfeb3ee1d20fd8222d962caf7317..dedb9d755e20bab8c5c2435dff2f5779370def54 100644 (file)
@@ -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<T>::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);
 };
 
 /**
@@ -253,9 +287,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.
@@ -265,6 +299,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
@@ -299,6 +354,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.
     */