Public Types | Public Member Functions

XMLStorage::XS_String Struct Reference

string class for TCHAR strings More...

#include <xmlstorage.h>

Inheritance diagram for XMLStorage::XS_String:
Inheritance graph
[legend]
Collaboration diagram for XMLStorage::XS_String:
Collaboration graph
[legend]

List of all members.

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_Stringoperator= (LPCXSSTR s)
XS_Stringoperator= (const super &s)
void assign (LPCXSSTR s)
void assign (LPCXSSTR s, size_t l)
 operator LPCXSSTR () const
XS_Stringprintf (LPCXSSTR fmt,...)
XS_Stringvprintf (LPCXSSTR fmt, va_list vl)
XS_Stringappendf (LPCXSSTR fmt,...)
XS_Stringvappendf (LPCXSSTR fmt, va_list vl)

Detailed Description

string class for TCHAR strings

Definition at line 338 of file xmlstorage.h.


Member Typedef Documentation

typedef std::string XMLStorage::XS_String::super

Definition at line 348 of file xmlstorage.h.


Constructor & Destructor Documentation

XMLStorage::XS_String::XS_String (  ) [inline]

Definition at line 351 of file xmlstorage.h.

Referenced by XMLStorage::XMLDoc::read_file(), and XMLStorage::XMLNode::subvalue().

{}

Here is the caller graph for this function:

XMLStorage::XS_String::XS_String ( LPCXSSTR  s ) [inline]

Definition at line 353 of file xmlstorage.h.

{if (s) super::assign(s);}
XMLStorage::XS_String::XS_String ( LPCXSSTR  s,
size_t  l 
) [inline]

Definition at line 354 of file xmlstorage.h.

: super(s, l) {}
XMLStorage::XS_String::XS_String ( const super other ) [inline]

Definition at line 356 of file xmlstorage.h.

: super(other) {}
XMLStorage::XS_String::XS_String ( const XS_String other ) [inline]

Definition at line 357 of file xmlstorage.h.

: super(other) {}

Member Function Documentation

XS_String& XMLStorage::XS_String::appendf ( LPCXSSTR  fmt,
  ... 
) [inline]

Definition at line 447 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 389 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());}

Here is the call graph for this function:

Here is the caller graph for this function:

void XMLStorage::XS_String::assign ( LPCXSSTR  s ) [inline]

Definition at line 394 of file xmlstorage.h.

void XMLStorage::XS_String::assign ( LPCXSSTR  s,
size_t  l 
) [inline]

Definition at line 395 of file xmlstorage.h.

{super::assign(s, l);}
XMLStorage::XS_String::operator LPCXSSTR (  ) const [inline]

Definition at line 397 of file xmlstorage.h.

{return c_str();}
XS_String& XMLStorage::XS_String::operator= ( LPCXSSTR  s ) [inline]

Definition at line 392 of file xmlstorage.h.

{if (s) super::assign(s); else erase(); return *this;}
XS_String& XMLStorage::XS_String::operator= ( const super s ) [inline]

Definition at line 393 of file xmlstorage.h.

{super::assign(s); return *this;}
XS_String& XMLStorage::XS_String::printf ( LPCXSSTR  fmt,
  ... 
) [inline]

Definition at line 409 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 458 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);

#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);
        }

        return *this;
    }
XS_String& XMLStorage::XS_String::vprintf ( LPCXSSTR  fmt,
va_list  vl 
) [inline]

Definition at line 420 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);

#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);
        }

        return *this;
    }

The documentation for this struct was generated from the following file:

ROS Explorer Source Code Documentation
generated on 02.01.2013 by doxygen

ROS Explorer Homepage