Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #define TIXML_USE_STL
00033
00034 #ifndef TIXML_USE_STL
00035
00036 #include "FWCore/Utilities/interface/tinystr.h"
00037
00038
00039 const TiXmlString::size_type TiXmlString::npos = static_cast< TiXmlString::size_type >(-1);
00040
00041
00042
00043 TiXmlString::Rep TiXmlString::nullrep_ = { 0, 0, { '\0' } };
00044
00045
00046 void TiXmlString::reserve (size_type cap)
00047 {
00048 if (cap > capacity())
00049 {
00050 TiXmlString tmp;
00051 tmp.init(length(), cap);
00052 memcpy(tmp.start(), data(), length());
00053 swap(tmp);
00054 }
00055 }
00056
00057
00058 TiXmlString& TiXmlString::assign(const char* str, size_type len)
00059 {
00060 size_type cap = capacity();
00061 if (len > cap || cap > 3*(len + 8))
00062 {
00063 TiXmlString tmp;
00064 tmp.init(len);
00065 memcpy(tmp.start(), str, len);
00066 swap(tmp);
00067 }
00068 else
00069 {
00070 memmove(start(), str, len);
00071 set_size(len);
00072 }
00073 return *this;
00074 }
00075
00076
00077 TiXmlString& TiXmlString::append(const char* str, size_type len)
00078 {
00079 size_type newsize = length() + len;
00080 if (newsize > capacity())
00081 {
00082 reserve (newsize + capacity());
00083 }
00084 memmove(finish(), str, len);
00085 set_size(newsize);
00086 return *this;
00087 }
00088
00089
00090 TiXmlString operator + (const TiXmlString & a, const TiXmlString & b)
00091 {
00092 TiXmlString tmp;
00093 tmp.reserve(a.length() + b.length());
00094 tmp += a;
00095 tmp += b;
00096 return tmp;
00097 }
00098
00099 TiXmlString operator + (const TiXmlString & a, const char* b)
00100 {
00101 TiXmlString tmp;
00102 TiXmlString::size_type b_len = static_cast<TiXmlString::size_type>( strlen(b) );
00103 tmp.reserve(a.length() + b_len);
00104 tmp += a;
00105 tmp.append(b, b_len);
00106 return tmp;
00107 }
00108
00109 TiXmlString operator + (const char* a, const TiXmlString & b)
00110 {
00111 TiXmlString tmp;
00112 TiXmlString::size_type a_len = static_cast<TiXmlString::size_type>( strlen(a) );
00113 tmp.reserve(a_len + b.length());
00114 tmp.append(a, a_len);
00115 tmp += b;
00116 return tmp;
00117 }
00118
00119
00120 #endif // TIXML_USE_STL