#include <OBTtinystr.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' } } |
Definition at line 68 of file OBTtinystr.h.
typedef size_t OBT::TiXmlString::size_type |
Definition at line 72 of file OBTtinystr.h.
OBT::TiXmlString::TiXmlString | ( | ) | [inline] |
Definition at line 79 of file OBTtinystr.h.
OBT::TiXmlString::TiXmlString | ( | const TiXmlString & | copy | ) | [inline] |
TIXML_EXPLICIT OBT::TiXmlString::TiXmlString | ( | const char * | copy | ) | [inline] |
TIXML_EXPLICIT OBT::TiXmlString::TiXmlString | ( | const char * | str, | |
size_type | len | |||
) | [inline] |
OBT::TiXmlString::~TiXmlString | ( | ) | [inline] |
TiXmlString & OBT::TiXmlString::append | ( | const char * | str, | |
size_type | len | |||
) |
Definition at line 75 of file OBTtinystr.cpp.
References capacity(), finish(), length(), reserve(), and set_size().
Referenced by operator+=().
TiXmlString & OBT::TiXmlString::assign | ( | const char * | str, | |
size_type | len | |||
) |
Definition at line 56 of file OBTtinystr.cpp.
References capacity(), init(), set_size(), start(), and swap().
Referenced by operator=().
00057 { 00058 size_type cap = capacity(); 00059 if (len > cap || cap > 3*(len + 8)) 00060 { 00061 TiXmlString tmp; 00062 tmp.init(len); 00063 memcpy(tmp.start(), str, len); 00064 swap(tmp); 00065 } 00066 else 00067 { 00068 memmove(start(), str, len); 00069 set_size(len); 00070 } 00071 return *this; 00072 }
const char& OBT::TiXmlString::at | ( | size_type | index | ) | const [inline] |
Definition at line 162 of file OBTtinystr.h.
References length(), rep_, and OBT::TiXmlString::Rep::str.
const char* OBT::TiXmlString::c_str | ( | ) | const [inline] |
Definition at line 143 of file OBTtinystr.h.
References rep_, and OBT::TiXmlString::Rep::str.
Referenced by find(), OBT::main(), OBT::operator<(), and OBT::operator==().
size_type OBT::TiXmlString::capacity | ( | ) | const [inline] |
Definition at line 158 of file OBTtinystr.h.
References OBT::TiXmlString::Rep::capacity, and rep_.
void OBT::TiXmlString::clear | ( | ) | [inline] |
const char* OBT::TiXmlString::data | ( | ) | const [inline] |
Definition at line 146 of file OBTtinystr.h.
References rep_, and OBT::TiXmlString::Rep::str.
Referenced by operator+=(), reserve(), and TiXmlString().
bool OBT::TiXmlString::empty | ( | ) | const [inline] |
Definition at line 155 of file OBTtinystr.h.
References rep_, and OBT::TiXmlString::Rep::size.
Definition at line 182 of file OBTtinystr.h.
size_type OBT::TiXmlString::find | ( | char | lookup | ) | const [inline] |
Definition at line 176 of file OBTtinystr.h.
00177 { 00178 return find(lookup, 0); 00179 }
char* OBT::TiXmlString::finish | ( | ) | const [inline, private] |
Definition at line 224 of file OBTtinystr.h.
References rep_, OBT::TiXmlString::Rep::size, and OBT::TiXmlString::Rep::str.
Referenced by append().
Definition at line 232 of file OBTtinystr.h.
References OBT::TiXmlString::Rep::capacity, nullrep_, rep_, OBT::TiXmlString::Rep::size, and OBT::TiXmlString::Rep::str.
00233 { 00234 if (cap) 00235 { 00236 // Lee: the original form: 00237 // rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap)); 00238 // doesn't work in some cases of new being overloaded. Switching 00239 // to the normal allocation, although use an 'int' for systems 00240 // that are overly picky about structure alignment. 00241 const size_type bytesNeeded = sizeof(Rep) + cap; 00242 const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); 00243 rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] ); 00244 00245 rep_->str[ rep_->size = sz ] = '\0'; 00246 rep_->capacity = cap; 00247 } 00248 else 00249 { 00250 rep_ = &nullrep_; 00251 } 00252 }
void OBT::TiXmlString::init | ( | size_type | sz | ) | [inline, private] |
Definition at line 221 of file OBTtinystr.h.
References init().
Referenced by assign(), clear(), init(), reserve(), and TiXmlString().
00221 { init(sz, sz); }
size_type OBT::TiXmlString::length | ( | ) | const [inline] |
Definition at line 149 of file OBTtinystr.h.
References rep_, and OBT::TiXmlString::Rep::size.
Referenced by append(), at(), find(), operator+=(), operator=(), OBT::operator==(), operator[](), reserve(), and TiXmlString().
TiXmlString& OBT::TiXmlString::operator+= | ( | const TiXmlString & | suffix | ) | [inline] |
TiXmlString& OBT::TiXmlString::operator+= | ( | char | single | ) | [inline] |
Definition at line 130 of file OBTtinystr.h.
References append().
00131 { 00132 return append(&single, 1); 00133 }
TiXmlString& OBT::TiXmlString::operator+= | ( | const char * | suffix | ) | [inline] |
Definition at line 124 of file OBTtinystr.h.
References append().
00125 { 00126 return append(suffix, static_cast<size_type>( strlen(suffix) )); 00127 }
TiXmlString& OBT::TiXmlString::operator= | ( | const TiXmlString & | copy | ) | [inline] |
TiXmlString& OBT::TiXmlString::operator= | ( | const char * | copy | ) | [inline] |
Definition at line 111 of file OBTtinystr.h.
References assign().
char& OBT::TiXmlString::operator[] | ( | size_type | index | ) | const [inline] |
Definition at line 169 of file OBTtinystr.h.
References length(), rep_, and OBT::TiXmlString::Rep::str.
void OBT::TiXmlString::quit | ( | ) | [inline, private] |
Definition at line 254 of file OBTtinystr.h.
References nullrep_, and rep_.
Referenced by clear(), and ~TiXmlString().
void OBT::TiXmlString::reserve | ( | size_type | cap | ) |
Definition at line 44 of file OBTtinystr.cpp.
References capacity(), data(), init(), length(), start(), and swap().
Referenced by append().
void OBT::TiXmlString::set_size | ( | size_type | sz | ) | [inline, private] |
Definition at line 222 of file OBTtinystr.h.
References rep_, OBT::TiXmlString::Rep::size, and OBT::TiXmlString::Rep::str.
size_type OBT::TiXmlString::size | ( | ) | const [inline] |
Definition at line 152 of file OBTtinystr.h.
References rep_, and OBT::TiXmlString::Rep::size.
char* OBT::TiXmlString::start | ( | ) | const [inline, private] |
Definition at line 223 of file OBTtinystr.h.
References rep_, and OBT::TiXmlString::Rep::str.
Referenced by assign(), operator=(), reserve(), and TiXmlString().
void OBT::TiXmlString::swap | ( | TiXmlString & | other | ) | [inline] |
const TiXmlString::size_type OBT::TiXmlString::npos = static_cast< TiXmlString::size_type >(-1) [static] |
Definition at line 75 of file OBTtinystr.h.
Referenced by find().
TiXmlString::Rep OBT::TiXmlString::nullrep_ = { 0, 0, { '\0' } } [static, private] |
Definition at line 265 of file OBTtinystr.h.
Rep* OBT::TiXmlString::rep_ [private] |
Definition at line 264 of file OBTtinystr.h.
Referenced by at(), c_str(), capacity(), data(), empty(), finish(), init(), length(), operator[](), quit(), set_size(), size(), start(), and swap().