osgEarth 2.1.1
|
#include <tinystr.h>
Classes | |
struct | Rep |
Public Types | |
typedef size_t | size_type |
Public Member Functions | |
TiXmlString () | |
TiXmlString (const TiXmlString ©) | |
TIXML_EXPLICIT | TiXmlString (const char *copy) |
TIXML_EXPLICIT | TiXmlString (const char *str, size_type len) |
~TiXmlString () | |
TiXmlString & | operator= (const char *copy) |
TiXmlString & | operator= (const TiXmlString ©) |
TiXmlString & | operator+= (const char *suffix) |
TiXmlString & | operator+= (char single) |
TiXmlString & | operator+= (const TiXmlString &suffix) |
const char * | c_str () const |
const char * | data () const |
size_type | length () const |
size_type | size () const |
bool | empty () const |
size_type | capacity () const |
const char & | at (size_type index) const |
char & | operator[] (size_type index) const |
size_type | find (char lookup) const |
size_type | find (char tofind, size_type offset) const |
void | clear () |
void | reserve (size_type cap) |
TiXmlString & | assign (const char *str, size_type len) |
TiXmlString & | append (const char *str, size_type len) |
void | swap (TiXmlString &other) |
Static Public Attributes | |
static const size_type | npos = static_cast< TiXmlString::size_type >(-1) |
Private Member Functions | |
void | init (size_type sz) |
void | set_size (size_type sz) |
char * | start () const |
char * | finish () const |
void | init (size_type sz, size_type cap) |
void | quit () |
Private Attributes | |
Rep * | rep_ |
Static Private Attributes | |
static Rep | nullrep_ = { 0, 0, { '\0' } } |
typedef size_t TiXmlString::size_type |
TiXmlString::TiXmlString | ( | ) | [inline] |
TiXmlString::TiXmlString | ( | const TiXmlString & | copy | ) | [inline] |
TIXML_EXPLICIT TiXmlString::TiXmlString | ( | const char * | copy | ) | [inline] |
TIXML_EXPLICIT TiXmlString::TiXmlString | ( | const char * | str, |
size_type | len | ||
) | [inline] |
TiXmlString::~TiXmlString | ( | ) | [inline] |
TiXmlString & TiXmlString::append | ( | const char * | str, |
size_type | len | ||
) |
TiXmlString & TiXmlString::assign | ( | const char * | str, |
size_type | len | ||
) |
Definition at line 54 of file tinystr.cpp.
{ size_type cap = capacity(); if (len > cap || cap > 3*(len + 8)) { TiXmlString tmp; tmp.init(len); memcpy(tmp.start(), str, len); swap(tmp); } else { memmove(start(), str, len); set_size(len); } return *this; }
const char& TiXmlString::at | ( | size_type | index | ) | const [inline] |
const char* TiXmlString::c_str | ( | ) | const [inline] |
size_type TiXmlString::capacity | ( | ) | const [inline] |
void TiXmlString::clear | ( | ) | [inline] |
const char* TiXmlString::data | ( | ) | const [inline] |
bool TiXmlString::empty | ( | ) | const [inline] |
size_type TiXmlString::find | ( | char | lookup | ) | const [inline] |
char* TiXmlString::finish | ( | ) | const [inline, private] |
Definition at line 231 of file tinystr.h.
{ if (cap) { // Lee: the original form: // rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap)); // doesn't work in some cases of new being overloaded. Switching // to the normal allocation, although use an 'int' for systems // that are overly picky about structure alignment. const size_type bytesNeeded = sizeof(Rep) + cap; const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] ); rep_->str[ rep_->size = sz ] = '\0'; rep_->capacity = cap; } else { rep_ = &nullrep_; } }
void TiXmlString::init | ( | size_type | sz | ) | [inline, private] |
size_type TiXmlString::length | ( | ) | const [inline] |
TiXmlString& TiXmlString::operator+= | ( | char | single | ) | [inline] |
TiXmlString& TiXmlString::operator+= | ( | const TiXmlString & | suffix | ) | [inline] |
TiXmlString& TiXmlString::operator+= | ( | const char * | suffix | ) | [inline] |
TiXmlString& TiXmlString::operator= | ( | const TiXmlString & | copy | ) | [inline] |
TiXmlString& TiXmlString::operator= | ( | const char * | copy | ) | [inline] |
char& TiXmlString::operator[] | ( | size_type | index | ) | const [inline] |
void TiXmlString::quit | ( | ) | [inline, private] |
Definition at line 253 of file tinystr.h.
{ if (rep_ != &nullrep_) { // The rep_ is really an array of ints. (see the allocator, above). // Cast it back before delete, so the compiler won't incorrectly call destructors. delete [] ( reinterpret_cast<int*>( rep_ ) ); } }
void TiXmlString::reserve | ( | size_type | cap | ) |
Definition at line 42 of file tinystr.cpp.
{ if (cap > capacity()) { TiXmlString tmp; tmp.init(length(), cap); memcpy(tmp.start(), data(), length()); swap(tmp); } }
void TiXmlString::set_size | ( | size_type | sz | ) | [inline, private] |
size_type TiXmlString::size | ( | ) | const [inline] |
char* TiXmlString::start | ( | ) | const [inline, private] |
void TiXmlString::swap | ( | TiXmlString & | other | ) | [inline] |
const TiXmlString::size_type TiXmlString::npos = static_cast< TiXmlString::size_type >(-1) [static] |
TiXmlString::Rep TiXmlString::nullrep_ = { 0, 0, { '\0' } } [static, private] |
Rep* TiXmlString::rep_ [private] |