| OpenTTD
    | 
Blob based case sensitive ANSI/UTF-8 string. More...
#include <str.hpp>
 
  
 | Public Types | |
| typedef CBlobT< char > | base | 
| base class | |
|  Public Types inherited from CBlobT< char > | |
| typedef ByteBlob | base | 
| Public Member Functions | |
| CStrA () | |
| Create an empty CStrT. | |
| CStrA (const CStrA &src) | |
| Copy constructor. | |
| CStrA (const OnTransfer &ot) | |
| Take over ownership constructor. | |
| char * | GrowSizeNC (uint count) | 
| Grow the actual buffer and fix the trailing zero at the end. | |
| void | AppendStr (const char *str) | 
| Append zero-ended C string. | |
| void | Append (const CStrA &src) | 
| Append another CStrA. | |
| CStrA & | operator= (const char *src) | 
| Assignment from C string. | |
| CStrA & | operator= (const CStrA &src) | 
| Assignment from another CStrA. | |
| bool | operator< (const CStrA &other) const | 
| Lower-than operator (to support stl collections) | |
| int | AddFormatL (const char *format, va_list args) | 
| Add formated string (like vsprintf) at the end of existing contents. | |
| int CDECL | WARN_FORMAT (2, 3) AddFormat(const char *format | 
| Add formated string (like sprintf) at the end of existing contents. | |
|  Public Member Functions inherited from CBlobT< char > | |
| CBlobT () | |
| Default constructor - makes new Blob ready to accept any data. | |
| CBlobT (const OnTransfer &ot) | |
| Take ownership constructor. | |
| ~CBlobT () | |
| Destructor - ensures that allocated memory (if any) is freed. | |
| void | CheckIdx (size_t index) const | 
| Check the validity of item index (only in debug mode) | |
| char * | Data () | 
| Return pointer to the first data item - non-const version. | |
| const char * | Data () const | 
| Return pointer to the first data item - const version. | |
| char * | Data (size_t index) | 
| Return pointer to the index-th data item - non-const version. | |
| const char * | Data (size_t index) const | 
| Return pointer to the index-th data item - const version. | |
| size_t | Size () const | 
| Return number of items in the Blob. | |
| size_t | MaxSize () const | 
| Return total number of items that can fit in the Blob without buffer reallocation. | |
| size_t | GetReserve () const | 
| Return number of additional items that can fit in the Blob without buffer reallocation. | |
| char * | GrowSizeNC (size_t num_items) | 
| Grow number of data items in Blob by given number - doesn't construct items. | |
| char * | MakeFreeSpace (size_t num_items) | 
| Ensures that given number of items can be added to the end of Blob. | |
| OnTransfer | Transfer () | 
|  Public Member Functions inherited from ByteBlob | |
| ByteBlob () | |
| default constructor - initializes empty blob | |
| ByteBlob (const ByteBlob &src) | |
| copy constructor | |
| ByteBlob (BlobHeader *const &src) | |
| move constructor - take ownership of blob data | |
| ~ByteBlob () | |
| destructor | |
| bool | IsEmpty () const | 
| return true if blob doesn't contain valid data | |
| size_t | Length () const | 
| return the number of valid data bytes in the blob | |
| size_t | Capacity () const | 
| return the current blob capacity in bytes | |
| byte * | Begin () | 
| return pointer to the first byte of data - non-const version | |
| const byte * | Begin () const | 
| return pointer to the first byte of data - const version | |
| void | Clear () | 
| invalidate blob's data - doesn't free buffer | |
| void | Free () | 
| free the blob's memory | |
| void | AppendRaw (const void *p, size_t num_bytes) | 
| append new bytes at the end of existing data bytes - reallocates if necessary | |
| void | AppendRaw (const ByteBlob &src) | 
| append bytes from given source blob to the end of existing data bytes - reallocates if necessary | |
| byte * | Prepare (size_t num_bytes) | 
| Reallocate if there is no free space for num_bytes bytes. | |
| byte * | Append (size_t num_bytes) | 
| Increase Length() by num_bytes. | |
| void | SmartAlloc (size_t new_size) | 
| reallocate blob data if needed | |
| void | FixTail () const | 
| fixing the four bytes at the end of blob data - useful when blob is used to hold string | |
| Additional Inherited Members | |
|  Static Public Attributes inherited from CBlobT< char > | |
| static const size_t | type_size | 
|  Protected Member Functions inherited from ByteBlob | |
| void | InitEmpty () | 
| initialize the empty blob | |
| void | Init (BlobHeader *src) | 
| initialize blob by attaching it to the given header followed by data | |
| BlobHeader & | Hdr () | 
| blob header accessor - use it rather than using the pointer arithmetics directly - non-const version | |
| const BlobHeader & | Hdr () const | 
| blob header accessor - use it rather than using the pointer arithmetics directly - const version | |
| size_t & | LengthRef () | 
| return reference to the actual blob size - used when the size needs to be modified | |
|  Static Protected Member Functions inherited from ByteBlob | |
| static BlobHeader * | RawAlloc (size_t num_bytes) | 
| all allocation should happen here | |
| static BlobHeader * | Zero () | 
| Return header pointer to the static BlobHeader with both items and capacity containing zero. | |
| static size_t | AllocPolicy (size_t min_alloc) | 
| simple allocation policy - can be optimized later | |
| static void | RawFree (BlobHeader *p) | 
| all deallocations should happen here | |
|  Protected Attributes inherited from ByteBlob | |
| union { | |
| byte * data | |
| ptr to the first byte of data | |
| BlobHeader * header | |
| ptr just after the BlobHeader holding items and capacity | |
| }; | |
| type used as class member | |
| 
 | inline | 
Add formated string (like vsprintf) at the end of existing contents.
Definition at line 95 of file str.hpp.
References ByteBlob::FixTail(), CBlobT< char >::GetReserve(), GrowSizeNC(), CBlobT< char >::MakeFreeSpace(), and vseprintf().
Referenced by DumpTarget::WriteLine().
| 
 | inline | 
Append another CStrA.
Definition at line 61 of file str.hpp.
References ByteBlob::AppendRaw(), ByteBlob::FixTail(), and ByteBlob::Length().
| 
 | inline | 
Append zero-ended C string.
Definition at line 52 of file str.hpp.
References ByteBlob::AppendRaw(), ByteBlob::FixTail(), and StrEmpty().
Referenced by DumpTarget::BeginStruct(), operator=(), and DumpTarget::WriteLine().
| 
 | inline | 
Grow the actual buffer and fix the trailing zero at the end.
Definition at line 44 of file str.hpp.
References ByteBlob::FixTail(), and CBlobT< char >::GrowSizeNC().
Referenced by AddFormatL(), and DumpTarget::WriteIndent().
| 
 | inline | 
Assignment from C string.
Definition at line 70 of file str.hpp.
References AppendStr(), and ByteBlob::Clear().
Assignment from another CStrA.
Definition at line 78 of file str.hpp.
References ByteBlob::AppendRaw(), ByteBlob::Clear(), CBlobT< T >::Data(), ByteBlob::FixTail(), and CBlobT< T >::Size().
| int CDECL CStrA::WARN_FORMAT | ( | 2 | , | 
| 3 | |||
| ) | const | 
Add formated string (like sprintf) at the end of existing contents.
 1.8.1.2
 1.8.1.2