string class for TCHAR strings More...
#include <xmlstorage.h>


Public Types | |
| typedef std::string | super |
Public Member Functions | |
| XS_String () | |
| XS_String (LPCXSSTR s) | |
| XS_String (LPCXSSTR s, size_t l) | |
| XS_String (const super &other) | |
| XS_String (const XS_String &other) | |
| void | assign (const XS_String &s) |
| XS_String & | operator= (LPCXSSTR s) |
| XS_String & | operator= (const super &s) |
| void | assign (LPCXSSTR s) |
| void | assign (LPCXSSTR s, size_t l) |
| operator LPCXSSTR () const | |
| XS_String & | printf (LPCXSSTR fmt,...) |
| XS_String & | vprintf (LPCXSSTR fmt, va_list vl) |
| XS_String & | appendf (LPCXSSTR fmt,...) |
| XS_String & | vappendf (LPCXSSTR fmt, va_list vl) |
string class for TCHAR strings
Definition at line 352 of file xmlstorage.h.
| typedef std::string XMLStorage::XS_String::super |
Definition at line 362 of file xmlstorage.h.
| XMLStorage::XS_String::XS_String | ( | ) | [inline] |
Definition at line 365 of file xmlstorage.h.
Referenced by XMLStorage::XMLDoc::read_file(), and XMLStorage::XMLNode::subvalue().
{}

| XMLStorage::XS_String::XS_String | ( | LPCXSSTR | s ) | [inline] |
Definition at line 367 of file xmlstorage.h.
{if (s) super::assign(s);}
| XMLStorage::XS_String::XS_String | ( | LPCXSSTR | s, |
| size_t | l | ||
| ) | [inline] |
Definition at line 368 of file xmlstorage.h.
: super(s, l) {}
| XMLStorage::XS_String::XS_String | ( | const super & | other ) | [inline] |
Definition at line 370 of file xmlstorage.h.
: super(other) {}
| XMLStorage::XS_String::XS_String | ( | const XS_String & | other ) | [inline] |
Definition at line 371 of file xmlstorage.h.
: super(other) {}
| XS_String& XMLStorage::XS_String::appendf | ( | LPCXSSTR | fmt, |
| ... | |||
| ) | [inline] |
Definition at line 464 of file xmlstorage.h.
{
va_list vl;
va_start(vl, fmt);
vappendf(fmt, vl);
va_end(vl);
return *this;
}
| void XMLStorage::XS_String::assign | ( | const XS_String & | s ) | [inline] |
Definition at line 403 of file xmlstorage.h.
References assign().
Referenced by XMLStorage::XMLStringRef::assign(), XMLStorage::XMLDoubleRef::assign(), XMLStorage::XMLInt64Ref::assign(), XMLStorage::XMLIntRef::assign(), XMLStorage::XMLBoolRef::assign(), assign(), and XMLStorage::XPathElement::parse().
{assign(s.c_str());}


| void XMLStorage::XS_String::assign | ( | LPCXSSTR | s ) | [inline] |
Definition at line 408 of file xmlstorage.h.
{super::assign(s);}
| void XMLStorage::XS_String::assign | ( | LPCXSSTR | s, |
| size_t | l | ||
| ) | [inline] |
Definition at line 409 of file xmlstorage.h.
{super::assign(s, l);}
| XMLStorage::XS_String::operator LPCXSSTR | ( | ) | const [inline] |
Definition at line 411 of file xmlstorage.h.
{return c_str();}
| XS_String& XMLStorage::XS_String::operator= | ( | LPCXSSTR | s ) | [inline] |
Definition at line 406 of file xmlstorage.h.
{if (s) super::assign(s); else erase(); return *this;}
Definition at line 407 of file xmlstorage.h.
{super::assign(s); return *this;}
| XS_String& XMLStorage::XS_String::printf | ( | LPCXSSTR | fmt, |
| ... | |||
| ) | [inline] |
Definition at line 423 of file xmlstorage.h.
{
va_list vl;
va_start(vl, fmt);
vprintf(fmt, vl);
va_end(vl);
return *this;
}
| XS_String& XMLStorage::XS_String::vappendf | ( | LPCXSSTR | fmt, |
| va_list | vl | ||
| ) | [inline] |
Definition at line 475 of file xmlstorage.h.
References BUFFER_HUGE, BUFFER_LEN, COUNTOF, XS_CHAR, XS_vsnprintf, and XS_vsnprintf_s.
{
XS_CHAR b[BUFFER_LEN];
int l = XS_vsnprintf(b, COUNTOF(b), fmt, vl);
if (l >= 0)
super::append(b, l);
else {
LPTSTR p = (LPTSTR)malloc(sizeof(TCHAR)*BUFFER_HUGE);
if (p) {
#ifdef __STDC_WANT_SECURE_LIB__
l = XS_vsnprintf_s(p, BUFFER_HUGE, _TRUNCATE, fmt, vl);
#else
l = XS_vsnprintf(p, BUFFER_HUGE, fmt, vl);
#endif
if (l >= 0)
super::append(p, l);
else
super::append(fmt); // snprintf() failed
free(p);
} else
super::append(fmt); // malloc() failed
}
return *this;
}
| XS_String& XMLStorage::XS_String::vprintf | ( | LPCXSSTR | fmt, |
| va_list | vl | ||
| ) | [inline] |
Definition at line 434 of file xmlstorage.h.
References BUFFER_HUGE, BUFFER_LEN, COUNTOF, XS_CHAR, XS_vsnprintf, and XS_vsnprintf_s.
{
XS_CHAR b[BUFFER_LEN];
int l = XS_vsnprintf(b, COUNTOF(b), fmt, vl);
if (l >= 0)
super::assign(b, l);
else {
LPTSTR p = (LPTSTR)malloc(sizeof(TCHAR)*BUFFER_HUGE);
if (p) {
#ifdef __STDC_WANT_SECURE_LIB__
l = XS_vsnprintf_s(p, BUFFER_HUGE, _TRUNCATE, fmt, vl);
#else
l = XS_vsnprintf(p, BUFFER_HUGE, fmt, vl);
#endif
if (l >= 0)
super::assign(p, l);
else
super::assign(fmt); // snprintf() failed
free(p);
} else
super::assign(fmt); // malloc() failed
}
return *this;
}
1.7.2