blob: 3327bb7c2e791643823a7b60b529c4ecfdb206fc [file] [log] [blame]
<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD>
<BODY>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center">The Xalan C++ XSLT Processor Version 1.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>XalanDOMString.hpp</h1><a href="XalanDOMString_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>
00002 <font class="comment"> * Copyright 1999-2004 The Apache Software Foundation.</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</font>
00005 <font class="comment"> * you may not use this file except in compliance with the License.</font>
00006 <font class="comment"> * You may obtain a copy of the License at</font>
00007 <font class="comment"> *</font>
00008 <font class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</font>
00009 <font class="comment"> *</font>
00010 <font class="comment"> * Unless required by applicable law or agreed to in writing, software</font>
00011 <font class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</font>
00012 <font class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</font>
00013 <font class="comment"> * See the License for the specific language governing permissions and</font>
00014 <font class="comment"> * limitations under the License.</font>
00015 <font class="comment"> */</font>
00016 <font class="preprocessor">#if !defined(XALANDOMSTRING_HEADER_GUARD_1357924680)</font>
<a name="l00017"></a><a class="code" href="XalanDOMString_8hpp.html#a0">00017</a> <font class="preprocessor"></font><font class="preprocessor">#define XALANDOMSTRING_HEADER_GUARD_1357924680</font>
00018 <font class="preprocessor"></font>
00019
00020
00021 <font class="preprocessor">#include &lt;<a class="code" href="XalanDOMDefinitions_8hpp.html">xalanc/XalanDOM/XalanDOMDefinitions.hpp</a>&gt;</font>
00022
00023
00024
00025 <font class="preprocessor">#include &lt;cassert&gt;</font>
00026
00027
00028
00029 <font class="preprocessor">#include &lt;<a class="code" href="XalanMemoryManagement_8hpp.html">xalanc/Include/XalanMemoryManagement.hpp</a>&gt;</font>
00030 <font class="preprocessor">#include &lt;<a class="code" href="XalanVector_8hpp.html">xalanc/Include/XalanVector.hpp</a>&gt;</font>
00031
00032
00033
00034 <font class="preprocessor">#include &lt;<a class="code" href="XalanDOMException_8hpp.html">xalanc/XalanDOM/XalanDOMException.hpp</a>&gt;</font>
00035
00036
00037
00038 XALAN_CPP_NAMESPACE_BEGIN
00039
00040
00041
<a name="l00042"></a><a class="code" href="classXalanDOMString.html">00042</a> <font class="keyword">class </font>XALAN_DOM_EXPORT <a class="code" href="classXalanDOMString.html">XalanDOMString</a>
00043 {
00044 <font class="keyword">public</font>:
<a name="l00045"></a><a class="code" href="classXalanDOMString.html#s0">00045</a> <font class="keyword">typedef</font> XalanVector&lt;XalanDOMChar&gt; XalanDOMCharVectorType;
<a name="l00046"></a><a class="code" href="classXalanDOMString.html#s1">00046</a> <font class="keyword">typedef</font> XalanVector&lt;char&gt; CharVectorType;
<a name="l00047"></a><a class="code" href="classXalanDOMString.html#s2">00047</a> <font class="keyword">typedef</font> XalanVector&lt;wchar_t&gt; WideCharVectorType;
00048
<a name="l00049"></a><a class="code" href="classXalanDOMString.html#s3">00049</a> <font class="keyword">typedef</font> XalanDOMChar value_type;
<a name="l00050"></a><a class="code" href="classXalanDOMString.html#s4">00050</a> <font class="keyword">typedef</font> XalanDOMChar&amp; reference;
<a name="l00051"></a><a class="code" href="classXalanDOMString.html#s5">00051</a> <font class="keyword">typedef</font> <font class="keyword">const</font> XalanDOMChar&amp; const_reference;
00052
<a name="l00053"></a><a class="code" href="classXalanDOMString.html#s6">00053</a> <font class="keyword">typedef</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> size_type;
00054
<a name="l00055"></a><a class="code" href="classXalanDOMString.html#s7">00055</a> <font class="keyword">typedef</font> XalanDOMCharVectorType::iterator iterator;
<a name="l00056"></a><a class="code" href="classXalanDOMString.html#s8">00056</a> <font class="keyword">typedef</font> XalanDOMCharVectorType::const_iterator const_iterator;
<a name="l00057"></a><a class="code" href="classXalanDOMString.html#s9">00057</a> <font class="keyword">typedef</font> XalanDOMCharVectorType::reverse_iterator reverse_iterator;
<a name="l00058"></a><a class="code" href="classXalanDOMString.html#s10">00058</a> <font class="keyword">typedef</font> XalanDOMCharVectorType::const_reverse_iterator const_reverse_iterator;
00059
00060 <font class="preprocessor">#if defined(XALAN_INLINE_INITIALIZATION)</font>
00061 <font class="preprocessor"></font> <font class="keyword">static</font> <font class="keyword">const</font> size_type npos = ~0u;
00062 <font class="preprocessor">#else</font>
00063 <font class="preprocessor"></font> <font class="keyword">enum</font> { npos = -1 };
00064 <font class="preprocessor">#endif</font>
00065 <font class="preprocessor"></font>
00066 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>(MemoryManagerType&amp; theManager XALAN_DEFAULT_CONSTRACTOR_MEMORY_MGR );
00067
00068 <font class="keyword">explicit</font>
00069 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>(
00070 <font class="keyword">const</font> <font class="keywordtype">char</font>* theString,
00071 MemoryManagerType&amp; theManager XALAN_DEFAULT_MEMMGR,
00072 size_type theCount = <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos));
00073
00074 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>(
00075 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSource,
00076 MemoryManagerType&amp; theManager XALAN_DEFAULT_CONSTRACTOR_MEMORY_MGR,
00077 size_type theStartPosition = 0,
00078 size_type theCount = <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos));
00079
00080 <font class="keyword">explicit</font>
00081 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>(
00082 <font class="keyword">const</font> XalanDOMChar* theString,
00083 MemoryManagerType&amp; theManager XALAN_DEFAULT_MEMMGR,
00084 size_type theCount = <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos));
00085
00086 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>(
00087 size_type theCount,
00088 XalanDOMChar theChar,
00089 MemoryManagerType&amp; theManager XALAN_DEFAULT_MEMMGR);
00090
00091 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>*
00092 <a class="code" href="classXalanDOMString.html#a5">clone</a>(MemoryManagerType&amp; theManager);
00093
<a name="l00094"></a><a class="code" href="classXalanDOMString.html#a6">00094</a> <a class="code" href="classXalanDOMString.html#a6">~XalanDOMString</a>()<font class="keyword"></font>
00095 <font class="keyword"> </font>{
00096 }
00097
00098 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00099"></a><a class="code" href="classXalanDOMString.html#a7">00099</a> <a class="code" href="classXalanDOMString.html#a7">operator=</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS)<font class="keyword"></font>
00100 <font class="keyword"> </font>{
00101 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a39">assign</a>(theRHS);
00102 }
00103
00104 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00105"></a><a class="code" href="classXalanDOMString.html#a8">00105</a> <a class="code" href="classXalanDOMString.html#a7">operator=</a>(<font class="keyword">const</font> XalanDOMChar* theRHS)<font class="keyword"></font>
00106 <font class="keyword"> </font>{
00107 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a39">assign</a>(theRHS);
00108 }
00109
00110 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00111"></a><a class="code" href="classXalanDOMString.html#a9">00111</a> <a class="code" href="classXalanDOMString.html#a7">operator=</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* theRHS)<font class="keyword"></font>
00112 <font class="keyword"> </font>{
00113 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a39">assign</a>(theRHS);
00114 }
00115
00116 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00117"></a><a class="code" href="classXalanDOMString.html#a10">00117</a> <a class="code" href="classXalanDOMString.html#a7">operator=</a>(XalanDOMChar theRHS)<font class="keyword"></font>
00118 <font class="keyword"> </font>{
00119 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a39">assign</a>(1, theRHS);
00120 }
00121
00122 iterator
<a name="l00123"></a><a class="code" href="classXalanDOMString.html#a11">00123</a> <a class="code" href="classXalanDOMString.html#a11">begin</a>()<font class="keyword"></font>
00124 <font class="keyword"> </font>{
00125 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00126
00127 <font class="keywordflow">return</font> m_data.begin();
00128 }
00129
00130 const_iterator
<a name="l00131"></a><a class="code" href="classXalanDOMString.html#a12">00131</a> <a class="code" href="classXalanDOMString.html#a11">begin</a>()<font class="keyword"> const</font>
00132 <font class="keyword"> </font>{
00133 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00134
00135 <font class="keywordflow">return</font> m_data.begin();
00136 }
00137
00138 iterator
<a name="l00139"></a><a class="code" href="classXalanDOMString.html#a13">00139</a> <a class="code" href="classXalanDOMString.html#a13">end</a>()<font class="keyword"></font>
00140 <font class="keyword"> </font>{
00141 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00142
00143 <font class="keywordflow">return</font> m_data.empty() == <font class="keyword">true</font> ? m_data.end() : m_data.end() - 1;
00144 }
00145
00146 const_iterator
<a name="l00147"></a><a class="code" href="classXalanDOMString.html#a14">00147</a> <a class="code" href="classXalanDOMString.html#a13">end</a>()<font class="keyword"> const</font>
00148 <font class="keyword"> </font>{
00149 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00150
00151 <font class="keywordflow">return</font> m_data.empty() == <font class="keyword">true</font> ? m_data.end() : m_data.end() - 1;
00152 }
00153
00154 reverse_iterator
<a name="l00155"></a><a class="code" href="classXalanDOMString.html#a15">00155</a> <a class="code" href="classXalanDOMString.html#a15">rbegin</a>()<font class="keyword"></font>
00156 <font class="keyword"> </font>{
00157 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00158
00159 reverse_iterator i = m_data.rbegin();
00160
00161 <font class="keywordflow">if</font> (m_data.empty() == <font class="keyword">false</font>)
00162 {
00163 ++i;
00164 }
00165
00166 <font class="keywordflow">return</font> i;
00167 }
00168
00169 const_reverse_iterator
<a name="l00170"></a><a class="code" href="classXalanDOMString.html#a16">00170</a> <a class="code" href="classXalanDOMString.html#a15">rbegin</a>()<font class="keyword"> const</font>
00171 <font class="keyword"> </font>{
00172 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00173
00174 const_reverse_iterator i = m_data.rbegin();
00175
00176 <font class="keywordflow">if</font> (m_data.empty() == <font class="keyword">false</font>)
00177 {
00178 ++i;
00179 }
00180
00181 <font class="keywordflow">return</font> i;
00182 }
00183
00184 reverse_iterator
<a name="l00185"></a><a class="code" href="classXalanDOMString.html#a17">00185</a> <a class="code" href="classXalanDOMString.html#a17">rend</a>()<font class="keyword"></font>
00186 <font class="keyword"> </font>{
00187 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00188
00189 <font class="keywordflow">return</font> m_data.rend();
00190 }
00191
00192 const_reverse_iterator
<a name="l00193"></a><a class="code" href="classXalanDOMString.html#a18">00193</a> <a class="code" href="classXalanDOMString.html#a17">rend</a>()<font class="keyword"> const</font>
00194 <font class="keyword"> </font>{
00195 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00196
00197 <font class="keywordflow">return</font> m_data.rend();
00198 }
00199
00200 size_type
<a name="l00201"></a><a class="code" href="classXalanDOMString.html#a19">00201</a> <a class="code" href="classXalanDOMString.html#a19">size</a>()<font class="keyword"> const</font>
00202 <font class="keyword"> </font>{
00203 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00204
00205 <font class="keywordflow">return</font> m_size;
00206 }
00207
00208 size_type
<a name="l00209"></a><a class="code" href="classXalanDOMString.html#a20">00209</a> <a class="code" href="classXalanDOMString.html#a20">length</a>()<font class="keyword"> const</font>
00210 <font class="keyword"> </font>{
00211 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00212
00213 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a19">size</a>();
00214 }
00215
00216 size_type
<a name="l00217"></a><a class="code" href="classXalanDOMString.html#a21">00217</a> <a class="code" href="classXalanDOMString.html#a21">max_size</a>()<font class="keyword"> const</font>
00218 <font class="keyword"> </font>{
00219 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00220
00221 <font class="keywordflow">return</font> ~size_type(0);
00222 }
00223
00224 <font class="keywordtype">void</font>
00225 <a class="code" href="classXalanDOMString.html#a22">resize</a>(
00226 size_type theCount,
00227 XalanDOMChar theChar);
00228
00229 <font class="keywordtype">void</font>
<a name="l00230"></a><a class="code" href="classXalanDOMString.html#a23">00230</a> <a class="code" href="classXalanDOMString.html#a22">resize</a>(size_type theCount)<font class="keyword"></font>
00231 <font class="keyword"> </font>{
00232 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00233
00234 <a class="code" href="classXalanDOMString.html#a22">resize</a>(theCount, XalanDOMChar(0));
00235 }
00236
00237 size_type
<a name="l00238"></a><a class="code" href="classXalanDOMString.html#a24">00238</a> <a class="code" href="classXalanDOMString.html#a24">capacity</a>()<font class="keyword"> const</font>
00239 <font class="keyword"> </font>{
00240 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00241
00242 <font class="keyword">const</font> XalanDOMCharVectorType::size_type theCapacity =
00243 m_data.capacity();
00244
00245 <font class="keywordflow">return</font> theCapacity == 0 ? 0 : <a class="code" href="classXalanDOMString.html#s6">size_type</a>(theCapacity - 1);
00246 }
00247
00248 <font class="keywordtype">void</font>
<a name="l00249"></a><a class="code" href="classXalanDOMString.html#a25">00249</a> <a class="code" href="classXalanDOMString.html#a25">reserve</a>(size_type theCount = 0)<font class="keyword"></font>
00250 <font class="keyword"> </font>{
00251 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00252
00253 m_data.reserve(theCount + 1);
00254 }
00255
00256 <font class="keywordtype">void</font>
<a name="l00257"></a><a class="code" href="classXalanDOMString.html#a26">00257</a> <a class="code" href="classXalanDOMString.html#a26">clear</a>()<font class="keyword"></font>
00258 <font class="keyword"> </font>{
00259 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00260
00261 m_data.erase(m_data.begin(), m_data.end());
00262
00263 m_size = 0;
00264
00265 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00266 }
00267
00268 <font class="keywordtype">void</font>
00269 <a class="code" href="classXalanDOMString.html#a27">erase</a>(
00270 size_type theStartPosition = 0,
00271 size_type theCount = <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos));
00272
00273 <font class="keywordtype">bool</font>
<a name="l00274"></a><a class="code" href="classXalanDOMString.html#a28">00274</a> <a class="code" href="classXalanDOMString.html#a28">empty</a>()<font class="keyword"> const</font>
00275 <font class="keyword"> </font>{
00276 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00277
00278 <font class="keywordflow">return</font> m_size == 0 ? <font class="keyword">true</font> : <font class="keyword">false</font>;
00279 }
00280
00281 const_reference
<a name="l00282"></a><a class="code" href="classXalanDOMString.html#a29">00282</a> <a class="code" href="classXalanDOMString.html#a29">operator[]</a>(size_type theIndex)<font class="keyword"> const</font>
00283 <font class="keyword"> </font>{
00284 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00285
00286 <font class="keywordflow">return</font> m_data[theIndex];
00287 }
00288
00289 reference
<a name="l00290"></a><a class="code" href="classXalanDOMString.html#a30">00290</a> <a class="code" href="classXalanDOMString.html#a29">operator[]</a>(size_type theIndex)<font class="keyword"></font>
00291 <font class="keyword"> </font>{
00292 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00293
00294 <font class="keywordflow">return</font> m_data[theIndex];
00295 }
00296
00297 const_reference
<a name="l00298"></a><a class="code" href="classXalanDOMString.html#a31">00298</a> <a class="code" href="classXalanDOMString.html#a31">at</a>(size_type theIndex)<font class="keyword"> const</font>
00299 <font class="keyword"> </font>{
00300 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00301
00302 <font class="keywordflow">return</font> m_data.at(theIndex);
00303 }
00304
00305 reference
<a name="l00306"></a><a class="code" href="classXalanDOMString.html#a32">00306</a> <a class="code" href="classXalanDOMString.html#a31">at</a>(size_type theIndex)<font class="keyword"></font>
00307 <font class="keyword"> </font>{
00308 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00309
00310 <font class="keywordflow">return</font> m_data.at(theIndex);
00311 }
00312
00313 <font class="keyword">const</font> XalanDOMChar*
<a name="l00314"></a><a class="code" href="classXalanDOMString.html#a33">00314</a> <a class="code" href="classXalanDOMString.html#a33">c_str</a>()<font class="keyword"> const</font>
00315 <font class="keyword"> </font>{
00316 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00317
00318 <font class="keywordflow">return</font> m_data.empty() == <font class="keyword">true</font> ? &amp;s_empty : &amp;m_data[0];
00319 }
00320
00321 <font class="keyword">const</font> XalanDOMChar*
<a name="l00322"></a><a class="code" href="classXalanDOMString.html#a34">00322</a> <a class="code" href="classXalanDOMString.html#a34">data</a>()<font class="keyword"> const</font>
00323 <font class="keyword"> </font>{
00324 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00325
00326 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a33">c_str</a>();
00327 }
00328
00329 <font class="keywordtype">void</font>
<a name="l00330"></a><a class="code" href="classXalanDOMString.html#a35">00330</a> <a class="code" href="classXalanDOMString.html#a35">swap</a>(<a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theOther)<font class="keyword"></font>
00331 <font class="keyword"> </font>{
00332 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00333
00334 m_data.swap(theOther.m_data);
00335
00336 <font class="preprocessor">#if defined(XALAN_NO_STD_NAMESPACE)</font>
00337 <font class="preprocessor"></font> ::swap(m_size, theOther.m_size);
00338 <font class="preprocessor">#else</font>
00339 <font class="preprocessor"></font> <a class="code" href="XalanVector_8hpp.html#a2">std::swap</a>(m_size, theOther.m_size);
00340 <font class="preprocessor">#endif</font>
00341 <font class="preprocessor"></font> }
00342
00343 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00344"></a><a class="code" href="classXalanDOMString.html#a36">00344</a> <a class="code" href="classXalanDOMString.html#a36">operator+=</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSource)<font class="keyword"></font>
00345 <font class="keyword"> </font>{
00346 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource);
00347 }
00348
00349 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00350"></a><a class="code" href="classXalanDOMString.html#a37">00350</a> <a class="code" href="classXalanDOMString.html#a36">operator+=</a>(<font class="keyword">const</font> XalanDOMChar* theString)<font class="keyword"></font>
00351 <font class="keyword"> </font>{
00352 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theString);
00353 }
00354
00355 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00356"></a><a class="code" href="classXalanDOMString.html#a38">00356</a> <a class="code" href="classXalanDOMString.html#a36">operator+=</a>(XalanDOMChar theChar)<font class="keyword"></font>
00357 <font class="keyword"> </font>{
00358 <a class="code" href="classXalanDOMString.html#a47">append</a>(1, theChar);
00359
00360 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00361 }
00362
00363 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00364"></a><a class="code" href="classXalanDOMString.html#a39">00364</a> <a class="code" href="classXalanDOMString.html#a39">assign</a>(<font class="keyword">const</font> XalanDOMChar* theSource)<font class="keyword"></font>
00365 <font class="keyword"> </font>{
00366 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00367
00368 <a class="code" href="classXalanDOMString.html#a27">erase</a>();
00369
00370 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00371
00372 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource);
00373 }
00374
00375 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00376"></a><a class="code" href="classXalanDOMString.html#a40">00376</a> <a class="code" href="classXalanDOMString.html#a39">assign</a>(
00377 <font class="keyword">const</font> XalanDOMChar* theSource,
00378 size_type theCount)<font class="keyword"></font>
00379 <font class="keyword"> </font>{
00380 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00381
00382 <a class="code" href="classXalanDOMString.html#a27">erase</a>();
00383
00384 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00385
00386 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource, theCount);
00387 }
00388
00389 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00390"></a><a class="code" href="classXalanDOMString.html#a41">00390</a> <a class="code" href="classXalanDOMString.html#a39">assign</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* theSource)<font class="keyword"></font>
00391 <font class="keyword"> </font>{
00392 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00393
00394 <a class="code" href="classXalanDOMString.html#a27">erase</a>();
00395
00396 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00397
00398 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource);
00399 }
00400
00401 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00402"></a><a class="code" href="classXalanDOMString.html#a42">00402</a> <a class="code" href="classXalanDOMString.html#a39">assign</a>(
00403 <font class="keyword">const</font> <font class="keywordtype">char</font>* theSource,
00404 size_type theCount)<font class="keyword"></font>
00405 <font class="keyword"> </font>{
00406 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00407
00408 <a class="code" href="classXalanDOMString.html#a27">erase</a>();
00409
00410 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00411
00412 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource, theCount);
00413 }
00414
00415 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00416 <a class="code" href="classXalanDOMString.html#a39">assign</a>(
00417 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSource,
00418 size_type thePosition,
00419 size_type theCount);
00420
00421 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00422"></a><a class="code" href="classXalanDOMString.html#a44">00422</a> <a class="code" href="classXalanDOMString.html#a39">assign</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSource)<font class="keyword"></font>
00423 <font class="keyword"> </font>{
00424 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00425
00426 <font class="keywordflow">if</font> (&amp;theSource != <font class="keyword">this</font>)
00427 {
00428 m_data = theSource.m_data;
00429
00430 m_size = theSource.m_size;
00431 }
00432
00433 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00434
00435 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00436 }
00437
00438 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00439"></a><a class="code" href="classXalanDOMString.html#a45">00439</a> <a class="code" href="classXalanDOMString.html#a39">assign</a>(
00440 size_type theCount,
00441 XalanDOMChar theChar)<font class="keyword"></font>
00442 <font class="keyword"> </font>{
00443 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00444
00445 <a class="code" href="classXalanDOMString.html#a27">erase</a>();
00446
00447 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00448
00449 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theCount, theChar);
00450 }
00451
00452 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00453 <a class="code" href="classXalanDOMString.html#a39">assign</a>(
00454 iterator theFirstPosition,
00455 iterator theLastPosition);
00456
00457 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00458"></a><a class="code" href="classXalanDOMString.html#a47">00458</a> <a class="code" href="classXalanDOMString.html#a47">append</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSource)<font class="keyword"></font>
00459 <font class="keyword"> </font>{
00460 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), theSource.<a class="code" href="classXalanDOMString.html#a20">length</a>());
00461 }
00462
00463 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00464"></a><a class="code" href="classXalanDOMString.html#a48">00464</a> <a class="code" href="classXalanDOMString.html#a47">append</a>(
00465 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSource,
00466 size_type thePosition,
00467 size_type theCount)<font class="keyword"></font>
00468 <font class="keyword"> </font>{
00469 assert(thePosition &lt; theSource.<a class="code" href="classXalanDOMString.html#a20">length</a>() &amp;&amp;
00470 (theCount == <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos) || thePosition + theCount &lt;= theSource.<a class="code" href="classXalanDOMString.html#a20">length</a>()));
00471
00472 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theSource.<a class="code" href="classXalanDOMString.html#a33">c_str</a>() + thePosition, theCount);
00473 }
00474
00475 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00476 <a class="code" href="classXalanDOMString.html#a47">append</a>(
00477 <font class="keyword">const</font> XalanDOMChar* theString,
00478 size_type theCount);
00479
00480 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00481"></a><a class="code" href="classXalanDOMString.html#a50">00481</a> <a class="code" href="classXalanDOMString.html#a47">append</a>(<font class="keyword">const</font> XalanDOMChar* theString)<font class="keyword"></font>
00482 <font class="keyword"> </font>{
00483 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theString, <a class="code" href="classXalanDOMString.html#a20">length</a>(theString));
00484 }
00485
00486 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00487 <a class="code" href="classXalanDOMString.html#a47">append</a>(
00488 <font class="keyword">const</font> <font class="keywordtype">char</font>* theString,
00489 size_type theCount);
00490
00491 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00492"></a><a class="code" href="classXalanDOMString.html#a52">00492</a> <a class="code" href="classXalanDOMString.html#a47">append</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* theString)<font class="keyword"></font>
00493 <font class="keyword"> </font>{
00494 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a47">append</a>(theString, <a class="code" href="classXalanDOMString.html#a20">length</a>(theString));
00495 }
00496
00497 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00498 <a class="code" href="classXalanDOMString.html#a47">append</a>(
00499 size_type theCount,
00500 XalanDOMChar theChar);
00501
00502 <font class="keywordtype">void</font>
<a name="l00503"></a><a class="code" href="classXalanDOMString.html#a54">00503</a> <a class="code" href="classXalanDOMString.html#a54">push_back</a>(XalanDOMChar theChar)<font class="keyword"></font>
00504 <font class="keyword"> </font>{
00505 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00506
00507 <a class="code" href="classXalanDOMString.html#a47">append</a>(1, theChar);
00508
00509 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00510 }
00511
00512 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00513"></a><a class="code" href="classXalanDOMString.html#a55">00513</a> <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00514 size_type thePosition,
00515 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"></font>
00516 <font class="keyword"> </font>{
00517 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a55">insert</a>(thePosition, theString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), theString.<a class="code" href="classXalanDOMString.html#a20">length</a>());
00518 }
00519
00520 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00521"></a><a class="code" href="classXalanDOMString.html#a56">00521</a> <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00522 size_type thePosition1,
00523 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString,
00524 size_type thePosition2,
00525 size_type theCount)<font class="keyword"></font>
00526 <font class="keyword"> </font>{
00527 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a55">insert</a>(thePosition1, theString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>() + thePosition2, theCount);
00528 }
00529
00530 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00531 <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00532 size_type thePosition,
00533 <font class="keyword">const</font> XalanDOMChar* theString,
00534 size_type theCount);
00535
00536 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00537"></a><a class="code" href="classXalanDOMString.html#a58">00537</a> <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00538 size_type thePosition,
00539 <font class="keyword">const</font> XalanDOMChar* theString)<font class="keyword"></font>
00540 <font class="keyword"> </font>{
00541 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a55">insert</a>(thePosition, theString, <a class="code" href="classXalanDOMString.html#a20">length</a>(theString));
00542 }
00543
00544 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
00545 <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00546 size_type thePosition,
00547 size_type theCount,
00548 XalanDOMChar theChar);
00549
00550 iterator
00551 <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00552 iterator thePosition,
00553 XalanDOMChar theChar);
00554
00555 <font class="keywordtype">void</font>
00556 <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00557 iterator thePosition,
00558 size_type theCount,
00559 XalanDOMChar theChar);
00560
00561 <font class="keywordtype">void</font>
00562 <a class="code" href="classXalanDOMString.html#a55">insert</a>(
00563 iterator theInsertPosition,
00564 iterator theFirstPosition,
00565 iterator theLastPosition);
00566
00567
00568 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00569"></a><a class="code" href="classXalanDOMString.html#a63">00569</a> <a class="code" href="classXalanDOMString.html#a63">substr</a>(
00570 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSubstring,
00571 size_type thePosition = 0,
00572 size_type theCount = <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos)) <font class="keyword">const</font>
00573 {
00574 assert(theCount == <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos) &amp;&amp; thePosition &lt; <a class="code" href="classXalanDOMString.html#a20">length</a>() ||
00575 thePosition + theCount &lt;= <a class="code" href="classXalanDOMString.html#a20">length</a>());
00576
00577 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00578
00579 <font class="keywordflow">return</font> theSubstring.<a class="code" href="classXalanDOMString.html#a39">assign</a>(*<font class="keyword">this</font>, thePosition, theCount);
00580 }
00581
00582 <font class="keywordtype">int</font>
<a name="l00583"></a><a class="code" href="classXalanDOMString.html#a64">00583</a> <a class="code" href="classXalanDOMString.html#a64">compare</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"> const</font>
00584 <font class="keyword"> </font>{
00585 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00586
00587 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a64">compare</a>(theString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>());
00588 }
00589
00590 <font class="keywordtype">int</font>
<a name="l00591"></a><a class="code" href="classXalanDOMString.html#a65">00591</a> <a class="code" href="classXalanDOMString.html#a64">compare</a>(
00592 size_type thePosition1,
00593 size_type theCount1,
00594 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString)<font class="keyword"> const</font>
00595 <font class="keyword"> </font>{
00596 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00597
00598 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a64">compare</a>(thePosition1, theCount1, theString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), theString.<a class="code" href="classXalanDOMString.html#a20">length</a>());
00599 }
00600
00601 <font class="keywordtype">int</font>
<a name="l00602"></a><a class="code" href="classXalanDOMString.html#a66">00602</a> <a class="code" href="classXalanDOMString.html#a64">compare</a>(
00603 size_type thePosition1,
00604 size_type theCount1,
00605 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theString,
00606 size_type thePosition2,
00607 size_type theCount2)<font class="keyword"> const</font>
00608 <font class="keyword"> </font>{
00609 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00610
00611 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a64">compare</a>(thePosition1, theCount1, theString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>() + thePosition2, theCount2);
00612 }
00613
00614 <font class="keywordtype">int</font>
00615 <a class="code" href="classXalanDOMString.html#a64">compare</a>(<font class="keyword">const</font> XalanDOMChar* theString) <font class="keyword">const</font>;
00616
00617 <font class="keywordtype">int</font>
00618 <a class="code" href="classXalanDOMString.html#a64">compare</a>(
00619 size_type thePosition1,
00620 size_type theCount1,
00621 <font class="keyword">const</font> XalanDOMChar* theString,
00622 size_type theCount2 = <a class="code" href="classXalanDOMString.html#s6">size_type</a>(npos)) <font class="keyword">const</font>;
00623
00624
00625 <font class="keywordtype">void</font>
00626 <a class="code" href="classXalanDOMString.html#a69">reset</a>(MemoryManagerType&amp; theManager, <font class="keyword">const</font> <font class="keywordtype">char</font>* theString);
00627
00628 <font class="keywordtype">void</font>
00629 <a class="code" href="classXalanDOMString.html#a69">reset</a>(MemoryManagerType&amp; theManager, <font class="keyword">const</font> XalanDOMChar* theString);
00630
<a name="l00631"></a><a class="code" href="classXalanDOMString_1_1TranscodingError.html">00631</a> <font class="keyword">class </font>TranscodingError : <font class="keyword">public</font> <a class="code" href="classXalanDOMException.html">XalanDOMException</a>
00632 {
00633 <font class="keyword">public</font>:
00634
<a name="l00635"></a><a class="code" href="classXalanDOMString_1_1TranscodingError.html#a0">00635</a> <a class="code" href="classXalanDOMString_1_1TranscodingError.html#a0">TranscodingError</a>() :
00636 <a class="code" href="classXalanDOMException.html">XalanDOMException</a>(TRANSCODING_ERR)
00637 {
00638 }
00639
00640 <font class="keyword">virtual</font>
<a name="l00641"></a><a class="code" href="classXalanDOMString_1_1TranscodingError.html#a1">00641</a> <a class="code" href="classXalanDOMString_1_1TranscodingError.html#a1">~TranscodingError</a>()<font class="keyword"></font>
00642 <font class="keyword"> </font>{
00643 }
00644 };
00645
00646
00647
00655 <font class="keywordtype">void</font>
00656 <a class="code" href="classXalanDOMString.html#a71">transcode</a>(CharVectorType&amp; theResult) <font class="keyword">const</font>;
00657
00658 MemoryManagerType&amp;
<a name="l00659"></a><a class="code" href="classXalanDOMString.html#a72">00659</a> <a class="code" href="classXalanDOMString.html#a72">getMemoryManager</a>()<font class="keyword"></font>
00660 <font class="keyword"> </font>{
00661 <font class="keywordflow">return</font> m_data.getMemoryManager();
00662 }
00663
00664 size_type
<a name="l00665"></a><a class="code" href="classXalanDOMString.html#a73">00665</a> <a class="code" href="classXalanDOMString.html#a73">hash</a>()<font class="keyword"> const</font>
00666 <font class="keyword"> </font>{
00667 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#a73">hash</a>(<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), <a class="code" href="classXalanDOMString.html#a19">size</a>());
00668 }
00669
00670 <font class="keyword">static</font> <font class="keywordtype">bool</font>
00671 <a class="code" href="classXalanDOMString.html#d0">equals</a>(
00672 <font class="keyword">const</font> XalanDOMChar* theLHS,
00673 size_type theLHSLength,
00674 <font class="keyword">const</font> XalanDOMChar* theRHS,
00675 size_type theRHSLength);
00676
00677 <font class="keyword">static</font> <font class="keywordtype">bool</font>
<a name="l00678"></a><a class="code" href="classXalanDOMString.html#d1">00678</a> <a class="code" href="classXalanDOMString.html#d0">equals</a>(
00679 <font class="keyword">const</font> XalanDOMChar* theLHS,
00680 <font class="keyword">const</font> XalanDOMChar* theRHS)<font class="keyword"></font>
00681 <font class="keyword"> </font>{
00682 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#d0">equals</a>(theLHS, <a class="code" href="classXalanDOMString.html#a20">length</a>(theLHS), theRHS, <a class="code" href="classXalanDOMString.html#a20">length</a>(theRHS));
00683 }
00684
00685 <font class="keyword">static</font> <font class="keywordtype">bool</font>
00686 <a class="code" href="classXalanDOMString.html#d0">equals</a>(
00687 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00688 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS);
00689
00690 <font class="keyword">static</font> <font class="keywordtype">bool</font>
<a name="l00691"></a><a class="code" href="classXalanDOMString.html#d3">00691</a> <a class="code" href="classXalanDOMString.html#d0">equals</a>(
00692 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00693 <font class="keyword">const</font> XalanDOMChar* theRHS)<font class="keyword"></font>
00694 <font class="keyword"> </font>{
00695 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#d0">equals</a>(theLHS.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), theRHS);
00696 }
00697
00698 <font class="keyword">static</font> <font class="keywordtype">bool</font>
<a name="l00699"></a><a class="code" href="classXalanDOMString.html#d4">00699</a> <a class="code" href="classXalanDOMString.html#d0">equals</a>(
00700 <font class="keyword">const</font> XalanDOMChar* theLHS,
00701 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS)<font class="keyword"></font>
00702 <font class="keyword"> </font>{
00703 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#d0">equals</a>(theLHS, theRHS.<a class="code" href="classXalanDOMString.html#a33">c_str</a>());
00704 }
00705
00706 <font class="comment">/*</font>
00707 <font class="comment"> * Helper function to determine the length of a null-</font>
00708 <font class="comment"> * terminated string.</font>
00709 <font class="comment"> *</font>
00710 <font class="comment"> * @theString The string</font>
00711 <font class="comment"> * @return the length</font>
00712 <font class="comment"> */</font>
00713 <font class="keyword">static</font> size_type
00714 <a class="code" href="classXalanDOMString.html#a20">length</a>(<font class="keyword">const</font> XalanDOMChar* theString);
00715
00716 <font class="comment">/*</font>
00717 <font class="comment"> * Helper function to determine the length of a null-</font>
00718 <font class="comment"> * terminated string.</font>
00719 <font class="comment"> *</font>
00720 <font class="comment"> * @theString The string</font>
00721 <font class="comment"> * @return the length</font>
00722 <font class="comment"> */</font>
00723 <font class="keyword">static</font> size_type
00724 <a class="code" href="classXalanDOMString.html#a20">length</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* theString);
00725
00726 <font class="keyword">static</font> size_type
00727 <a class="code" href="classXalanDOMString.html#a73">hash</a>(
00728 <font class="keyword">const</font> XalanDOMChar* theString,
00729 size_type theLength);
00730
00731 <font class="keyword">protected</font>:
00732
00733 <font class="comment">/*</font>
00734 <font class="comment"> * Function to assert invariant conditions for the class.</font>
00735 <font class="comment"> *</font>
00736 <font class="comment"> * @return the iterator</font>
00737 <font class="comment"> */</font>
00738 <font class="keywordtype">void</font>
<a name="l00739"></a><a class="code" href="classXalanDOMString.html#b0">00739</a> <a class="code" href="classXalanDOMString.html#b0">invariants</a>()<font class="keyword"> const</font>
00740 <font class="keyword"> </font>{
00741 <font class="preprocessor">#if !defined(NDEBUG)</font>
00742 <font class="preprocessor"></font> assert((m_data.empty() == <font class="keyword">true</font> &amp;&amp; m_size == 0) || m_size == m_data.size() - 1);
00743 assert(m_data.empty() == <font class="keyword">true</font> || m_data.back() == 0);
00744 <font class="preprocessor">#endif</font>
00745 <font class="preprocessor"></font> }
00746
00747 <font class="comment">/*</font>
00748 <font class="comment"> * Get an iterator to the position of the terminating null.</font>
00749 <font class="comment"> *</font>
00750 <font class="comment"> * @return the iterator</font>
00751 <font class="comment"> */</font>
00752 iterator
<a name="l00753"></a><a class="code" href="classXalanDOMString.html#b1">00753</a> <a class="code" href="classXalanDOMString.html#b1">getBackInsertIterator</a>()<font class="keyword"></font>
00754 <font class="keyword"> </font>{
00755 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00756
00757 <font class="keywordflow">return</font> m_data.empty() == <font class="keyword">true</font> ? m_data.end() : m_data.end() - 1;
00758 }
00759
00760 const_iterator
<a name="l00761"></a><a class="code" href="classXalanDOMString.html#b2">00761</a> <a class="code" href="classXalanDOMString.html#b1">getBackInsertIterator</a>()<font class="keyword"> const</font>
00762 <font class="keyword"> </font>{
00763 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00764
00765 <font class="keywordflow">return</font> m_data.empty() == <font class="keyword">true</font> ? m_data.end() : m_data.end() - 1;
00766 }
00767
00768 iterator
<a name="l00769"></a><a class="code" href="classXalanDOMString.html#b3">00769</a> <a class="code" href="classXalanDOMString.html#b3">getIteratorForPosition</a>(size_type thePosition)<font class="keyword"></font>
00770 <font class="keyword"> </font>{
00771 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00772
00773 <font class="keywordflow">return</font> m_data.begin() + thePosition;
00774 }
00775
00776 const_iterator
<a name="l00777"></a><a class="code" href="classXalanDOMString.html#b4">00777</a> <a class="code" href="classXalanDOMString.html#b3">getIteratorForPosition</a>(size_type thePosition)<font class="keyword"> const</font>
00778 <font class="keyword"> </font>{
00779 <a class="code" href="classXalanDOMString.html#b0">invariants</a>();
00780
00781 <font class="keywordflow">return</font> m_data.begin() + thePosition;
00782 }
00783
00784 <font class="preprocessor">#if defined (XALAN_DEVELOPMENT)</font>
00785 <font class="preprocessor"></font> <font class="comment">// not defined</font>
00786 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>();
00787 <a class="code" href="classXalanDOMString.html#a0">XalanDOMString</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;);
00788 <font class="preprocessor">#endif</font>
00789 <font class="preprocessor"></font>
00790 <font class="keyword">private</font>:
00791
00792
00793 XalanDOMCharVectorType m_data;
00794
00795 size_type m_size;
00796
00797 <font class="keyword">static</font> <font class="keyword">const</font> XalanDOMChar s_empty;
00798 };
00799
00800
00801
00802 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00803"></a><a class="code" href="XalanDOMString_8hpp.html#a3">00803</a> <a class="code" href="ElemAttributeSet_8hpp.html#a1">operator==</a>(
00804 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00805 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS)<font class="keyword"></font>
00806 <font class="keyword"></font>{
00807 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#d0">XalanDOMString::equals</a>(theLHS, theRHS);
00808 }
00809
00810
00811
00812 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00813"></a><a class="code" href="XalanDOMString_8hpp.html#a4">00813</a> <a class="code" href="ElemAttributeSet_8hpp.html#a1">operator==</a>(
00814 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00815 <font class="keyword">const</font> XalanDOMChar* theRHS)<font class="keyword"></font>
00816 <font class="keyword"></font>{
00817 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#d0">XalanDOMString::equals</a>(theLHS, theRHS);
00818 }
00819
00820
00821
00822 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00823"></a><a class="code" href="XalanDOMString_8hpp.html#a5">00823</a> <a class="code" href="ElemAttributeSet_8hpp.html#a1">operator==</a>(
00824 <font class="keyword">const</font> XalanDOMChar* theLHS,
00825 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS)<font class="keyword"></font>
00826 <font class="keyword"></font>{
00827 <font class="comment">// Note reversing of operands...</font>
00828 <font class="keywordflow">return</font> <a class="code" href="classXalanDOMString.html#d0">XalanDOMString::equals</a>(theLHS, theRHS);
00829 }
00830
00831
00832
00833 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00834"></a><a class="code" href="XalanDOMString_8hpp.html#a6">00834</a> <a class="code" href="XObject_8hpp.html#a3">operator!=</a>(
00835 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00836 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS)<font class="keyword"></font>
00837 <font class="keyword"></font>{
00838 <font class="keywordflow">return</font> !(theLHS == theRHS);
00839 }
00840
00841
00842
00843 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00844"></a><a class="code" href="XalanDOMString_8hpp.html#a7">00844</a> <a class="code" href="XObject_8hpp.html#a3">operator!=</a>(
00845 <font class="keyword">const</font> XalanDOMChar* theLHS,
00846 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS)<font class="keyword"></font>
00847 <font class="keyword"></font>{
00848 <font class="keywordflow">return</font> !(theLHS == theRHS);
00849 }
00850
00851
00852
00853 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l00854"></a><a class="code" href="XalanDOMString_8hpp.html#a8">00854</a> <a class="code" href="XObject_8hpp.html#a3">operator!=</a>(
00855 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00856 <font class="keyword">const</font> XalanDOMChar* theRHS)<font class="keyword"></font>
00857 <font class="keyword"></font>{
00858 <font class="keywordflow">return</font> !(theRHS == theLHS);
00859 }
00860
00861
00862
00863 <font class="keyword">inline</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00864"></a><a class="code" href="XalanDOMString_8hpp.html#a9">00864</a> <a class="code" href="XalanDOMString_8hpp.html#a13">add</a>(
00865 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00866 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS,
00867 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result)<font class="keyword"></font>
00868 <font class="keyword"></font>{
00869 result.<a class="code" href="classXalanDOMString.html#a39">assign</a>(theLHS);
00870
00871 <font class="keywordflow">return</font> result += theRHS;
00872 }
00873
00874
00875
00876 <font class="keyword">inline</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00877"></a><a class="code" href="XalanDOMString_8hpp.html#a10">00877</a> <a class="code" href="XalanDOMString_8hpp.html#a13">add</a>(
00878 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00879 <font class="keyword">const</font> XalanDOMChar* theRHS,
00880 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result)<font class="keyword"></font>
00881 <font class="keyword"></font>{
00882 result.<a class="code" href="classXalanDOMString.html#a39">assign</a>(theLHS);
00883
00884 <font class="keywordflow">return</font> result += theRHS;
00885 }
00886
00887
00888
00889 <font class="keyword">inline</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00890"></a><a class="code" href="XalanDOMString_8hpp.html#a11">00890</a> <a class="code" href="XalanDOMString_8hpp.html#a13">add</a>(
00891 <font class="keyword">const</font> XalanDOMChar* theLHS,
00892 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS,
00893 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result)<font class="keyword"></font>
00894 <font class="keyword"></font>{
00895 result.<a class="code" href="classXalanDOMString.html#a39">assign</a>(theLHS);
00896
00897 <font class="keywordflow">return</font> result += theRHS;
00898 }
00899
00900
00901
00902 <font class="keyword">inline</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00903"></a><a class="code" href="XalanDOMString_8hpp.html#a12">00903</a> <a class="code" href="XalanDOMString_8hpp.html#a13">add</a>(
00904 <font class="keyword">const</font> <font class="keywordtype">char</font>* theLHS,
00905 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theRHS,
00906 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result)<font class="keyword"></font>
00907 <font class="keyword"></font>{
00908 result.<a class="code" href="classXalanDOMString.html#a39">assign</a>(theLHS);
00909
00910 result.<a class="code" href="classXalanDOMString.html#a47">append</a>(theRHS);
00911
00912 <font class="keywordflow">return</font> result;
00913 }
00914
00915
00916
00917 <font class="keyword">inline</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l00918"></a><a class="code" href="XalanDOMString_8hpp.html#a13">00918</a> <a class="code" href="XalanDOMString_8hpp.html#a13">add</a>(
00919 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theLHS,
00920 <font class="keyword">const</font> <font class="keywordtype">char</font>* theRHS,
00921 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result)<font class="keyword"></font>
00922 <font class="keyword"></font>{
00923 result.<a class="code" href="classXalanDOMString.html#a39">assign</a>(theLHS);
00924
00925 result.<a class="code" href="classXalanDOMString.html#a47">append</a>(theRHS);
00926
00927 <font class="keywordflow">return</font> result;
00928 }
00929
00930
00931
00932 <font class="comment">// Standard vector of XalanDOMChars and chars</font>
<a name="l00933"></a><a class="code" href="XalanDOMString_8hpp.html#a1">00933</a> <font class="keyword">typedef</font> XalanVector&lt;XalanDOMChar&gt; XalanDOMCharVectorType;
00934
<a name="l00935"></a><a class="code" href="XalanDOMString_8hpp.html#a2">00935</a> <font class="keyword">typedef</font> XalanVector&lt;char&gt; CharVectorType;
00936
00937
00938
00939
00940
<a name="l00952"></a><a class="code" href="XalanDOMString_8hpp.html#a14">00952</a> <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keywordtype">bool</font>)
00953 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(
00954 <font class="keyword">const</font> XalanDOMChar* theSourceString,
00955 XalanDOMString::size_type theSourceStringLength,
00956 CharVectorType&amp; targetVector,
00957 <font class="keywordtype">bool</font> terminate = <font class="keyword">false</font>);
00958
00972 <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keywordtype">void</font>)
00973 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(
00974 <font class="keyword">const</font> XalanDOMChar* theSourceString,
00975 XalanDOMString::size_type theSourceStringLength,
00976 CharVectorType&amp; targetVector,
00977 <font class="keywordtype">bool</font> terminate,
00978 <font class="keywordtype">char</font> theSubstitutionChar);
00979
00988 <font class="preprocessor">#if !defined(XALAN_DEVELOPMENT)</font>
00989 <font class="preprocessor"></font><font class="keyword">inline</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>
00990 <a class="code" href="XalanDOMString_8hpp.html#a20">TranscodeFromLocalCodePage</a>(
00991 <font class="keyword">const</font> <font class="keywordtype">char</font>* theSourceString,
00992 XalanDOMString::size_type theSourceStringLength = XalanDOMString::npos)<font class="keyword"></font>
00993 <font class="keyword"></font>{
00994 <font class="keywordflow">return</font> <a class="code" href="AVTPart_8hpp.html#a1">XalanDOMString</a>(theSourceString,XalanMemMgrs::getDefaultXercesMemMgr(), theSourceStringLength);
00995 }
00996 <font class="preprocessor">#endif</font>
00997 <font class="preprocessor"></font>
00998
01009 <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keywordtype">bool</font>)
01010 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(
01011 <font class="keyword">const</font> XalanDOMChar* theSourceString,
01012 CharVectorType&amp; targetVector,
01013 <font class="keywordtype">bool</font> terminate = <font class="keyword">false</font>);
01014
01024 <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keywordtype">void</font>)
01025 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(
01026 <font class="keyword">const</font> XalanDOMChar* theSourceString,
01027 CharVectorType&amp; targetVector,
01028 <font class="keywordtype">bool</font> terminate,
01029 <font class="keywordtype">char</font> theSubstitutionChar);
01030
01039 <font class="preprocessor">#if !defined(XALAN_DEVELOPMENT)</font>
01040 <font class="preprocessor"></font><font class="keyword">inline</font> <font class="keyword">const</font> CharVectorType
<a name="l01041"></a><a class="code" href="XalanDOMString_8hpp.html#a16">01041</a> <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(<font class="keyword">const</font> XalanDOMChar* theSourceString)<font class="keyword"></font>
01042 <font class="keyword"></font>{
01043 CharVectorType theResult;
01044
01045 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(theSourceString, theResult, <font class="keyword">true</font>, <font class="charliteral">'?'</font>);
01046
01047 <font class="keywordflow">return</font> theResult;
01048 }
01049 <font class="preprocessor">#endif</font>
01050 <font class="preprocessor"></font>
01051
01061 <font class="keyword">inline</font> <font class="keywordtype">bool</font>
<a name="l01062"></a><a class="code" href="XalanDOMString_8hpp.html#a17">01062</a> <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(
01063 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSourceString,
01064 CharVectorType&amp; targetVector,
01065 <font class="keywordtype">bool</font> terminate = <font class="keyword">false</font>)<font class="keyword"></font>
01066 <font class="keyword"></font>{
01067 <font class="keywordflow">return</font> <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(theSourceString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), targetVector, terminate);
01068 }
01069
01080 <font class="keyword">inline</font> <font class="keywordtype">void</font>
<a name="l01081"></a><a class="code" href="XalanDOMString_8hpp.html#a18">01081</a> <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(
01082 <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSourceString,
01083 CharVectorType&amp; targetVector,
01084 <font class="keywordtype">bool</font> terminate ,
01085 <font class="keywordtype">char</font> theSubstitutionChar)<font class="keyword"></font>
01086 <font class="keyword"></font>{
01087 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(theSourceString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), targetVector, terminate, theSubstitutionChar);
01088 }
01089
01098 <font class="preprocessor">#if !defined(XALAN_DEVELOPMENT)</font>
01099 <font class="preprocessor"></font><font class="keyword">inline</font> <font class="keyword">const</font> CharVectorType
<a name="l01100"></a><a class="code" href="XalanDOMString_8hpp.html#a19">01100</a> <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; theSourceString)<font class="keyword"></font>
01101 <font class="keyword"></font>{
01102 CharVectorType theResult;
01103
01104 <a class="code" href="XalanDOMString_8hpp.html#a19">TranscodeToLocalCodePage</a>(theSourceString.<a class="code" href="classXalanDOMString.html#a33">c_str</a>(), theResult, <font class="keyword">true</font>, <font class="charliteral">'?'</font>);
01105
01106 <font class="keywordflow">return</font> theResult;
01107 }
01108 <font class="preprocessor">#endif</font>
01109 <font class="preprocessor"></font>
01110
01119 <font class="keyword">inline</font> <font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;
<a name="l01120"></a><a class="code" href="XalanDOMString_8hpp.html#a20">01120</a> <a class="code" href="XalanDOMString_8hpp.html#a20">TranscodeFromLocalCodePage</a>(
01121 <font class="keyword">const</font> <font class="keywordtype">char</font>* theSourceString,
01122 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result,
01123 XalanDOMString::size_type theSourceStringLength = XalanDOMString::npos)<font class="keyword"></font>
01124 <font class="keyword"></font>{
01125 result.<a class="code" href="classXalanDOMString.html#a39">assign</a>(theSourceString, theSourceStringLength);
01126
01127 <font class="keywordflow">return</font> result;
01128 }
01129
01130
01131
01143 <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keywordtype">bool</font>)
01144 <a class="code" href="XalanDOMString_8hpp.html#a20">TranscodeFromLocalCodePage</a>(
01145 <font class="keyword">const</font> <font class="keywordtype">char</font>* theSourceString,
01146 XalanDOMString::size_type theSourceStringLength,
01147 XalanDOMCharVectorType&amp; theTargetVector,
01148 <font class="keywordtype">bool</font> terminate = <font class="keyword">false</font>);
01149
01160 <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keywordtype">bool</font>)
01161 <a class="code" href="XalanDOMString_8hpp.html#a20">TranscodeFromLocalCodePage</a>(
01162 <font class="keyword">const</font> <font class="keywordtype">char</font>* theSourceString,
01163 XalanDOMCharVectorType&amp; theTargetVector,
01164 <font class="keywordtype">bool</font> terminate = <font class="keyword">false</font>);
01165
01173 <a class="code" href="XalanDOMDefinitions_8hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(<font class="keyword">const</font> <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp;)
01174 <a class="code" href="XalanDOMString_8hpp.html#a20">TranscodeFromLocalCodePage</a>(<font class="keyword">const</font> CharVectorType&amp; theSourceString,
01175 <a class="code" href="classXalanDOMString.html">XalanDOMString</a>&amp; result);
01176
01177
01178 <a class="code" href="XalanMemoryManagement_8hpp.html#a4">XALAN_USES_MEMORY_MANAGER</a>(<a class="code" href="classXalanDOMString.html">XalanDOMString</a>)
01179
01180
01181
01182 XALAN_CPP_NAMESPACE_END
01183
01184
01185
01186 <font class="preprocessor">#endif // !defined(XALANDOMSTRING_HEADER_GUARD_1357924680)</font>
</font></pre></div><p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p>
<p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and
<A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p>
<TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="../resources/dot.gif" width="1" alt="dot"></TD></TR></TABLE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%">
<TR>
<TD WIDTH="80%" VALIGN="TOP">
<P ALIGN="CENTER"><B>Xalan-C++ XSLT Processor Version 1.10</B><BR>
Copyright &copy; 1999-2004 The Apache Software Foundation. All Rights Reserved.</i></p>
</TD>
</TR>
<TR>
<TD WIDTH="100%">
<P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0" ALT="Apache Logo">
</TD>
</TR>
</TABLE>