<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.4</h3> </BODY> <!-- Generated by Doxygen 1.1.2 on Mon Sep 16 08:26:33 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center> <hr><h1>XalanDOMString.hpp</h1><a href="XalanDOMString.hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 /* 00002 * The Apache Software License, Version 1.1 00003 * 00004 * 00005 * Copyright (c) 1999-2002 The Apache Software Foundation. All rights 00006 * reserved. 00007 * 00008 * Redistribution and use in source and binary forms, with or without 00009 * modification, are permitted provided that the following conditions 00010 * are met: 00011 * 00012 * 1. Redistributions of source code must retain the above copyright 00013 * notice, this list of conditions and the following disclaimer. 00014 * 00015 * 2. Redistributions in binary form must reproduce the above copyright 00016 * notice, this list of conditions and the following disclaimer in 00017 * the documentation and/or other materials provided with the 00018 * distribution. 00019 * 00020 * 3. The end-user documentation included with the redistribution, 00021 * if any, must include the following acknowledgment: 00022 * "This product includes software developed by the 00023 * Apache Software Foundation (http://www.apache.org/)." 00024 * Alternately, this acknowledgment may appear in the software itself, 00025 * if and wherever such third-party acknowledgments normally appear. 00026 * 00027 * 4. The names "Xalan" and "Apache Software Foundation" must 00028 * not be used to endorse or promote products derived from this 00029 * software without prior written permission. For written 00030 * permission, please contact apache@apache.org. 00031 * 00032 * 5. Products derived from this software may not be called "Apache", 00033 * nor may "Apache" appear in their name, without prior written 00034 * permission of the Apache Software Foundation. 00035 * 00036 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00037 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00038 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00039 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00040 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00041 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00042 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00043 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00044 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00045 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00046 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00047 * SUCH DAMAGE. 00048 * ==================================================================== 00049 * 00050 * This software consists of voluntary contributions made by many 00051 * individuals on behalf of the Apache Software Foundation and was 00052 * originally based on software copyright (c) 1999, International 00053 * Business Machines, Inc., http://www.ibm.com. For more 00054 * information on the Apache Software Foundation, please see 00055 * <http://www.apache.org/>. 00056 */ 00057 #if !defined(XALANDOMSTRING_HEADER_GUARD_1357924680) <a name="l00058"><a class="code" href="XalanDOMString.hpp.html#a0">00058</a></a> #define XALANDOMSTRING_HEADER_GUARD_1357924680 00059 00060 00061 00062 #include <XalanDOM/XalanDOMDefinitions.hpp> 00063 00064 00065 00066 #include <vector> 00067 00068 00069 00070 #include <XalanDOM/XalanDOMException.hpp> 00071 00072 00073 00074 #if defined(XALAN_USE_NATIVE_WCHAR_T) 00075 typedef wchar_t XalanDOMChar; 00076 #else 00077 // UTF-16 character... <a name="l00078"><a class="code" href="XalanDOMString.hpp.html#a16">00078</a></a> typedef unsigned short XalanDOMChar; 00079 #endif 00080 00081 00082 00083 #include <cassert> 00084 00085 00086 <a name="l00087"><a class="code" href="class_xalandomstring.html">00087</a></a> class XALAN_DOM_EXPORT <a class="code" href="class_xalandomstring.html">XalanDOMString</a> 00088 { 00089 public: 00090 00091 #if defined(XALAN_NO_NAMESPACES) 00092 typedef vector<XalanDOMChar> XalanDOMCharVectorType; 00093 typedef vector<char> CharVectorType; 00094 typedef vector<wchar_t> WideCharVectorType; 00095 #else <a name="l00096"><a class="code" href="class_xalandomstring.html#s0">00096</a></a> typedef std::vector<XalanDOMChar> XalanDOMCharVectorType; <a name="l00097"><a class="code" href="class_xalandomstring.html#s1">00097</a></a> typedef std::vector<char> CharVectorType; <a name="l00098"><a class="code" href="class_xalandomstring.html#s2">00098</a></a> typedef std::vector<wchar_t> WideCharVectorType; 00099 #endif 00100 <a name="l00101"><a class="code" href="class_xalandomstring.html#s3">00101</a></a> typedef XalanDOMChar value_type; <a name="l00102"><a class="code" href="class_xalandomstring.html#s4">00102</a></a> typedef XalanDOMChar& reference; <a name="l00103"><a class="code" href="class_xalandomstring.html#s5">00103</a></a> typedef const XalanDOMChar& const_reference; 00104 <a name="l00105"><a class="code" href="class_xalandomstring.html#s6">00105</a></a> typedef XalanDOMCharVectorType::size_type size_type; 00106 <a name="l00107"><a class="code" href="class_xalandomstring.html#s7">00107</a></a> typedef XalanDOMCharVectorType::iterator iterator; <a name="l00108"><a class="code" href="class_xalandomstring.html#s8">00108</a></a> typedef XalanDOMCharVectorType::const_iterator const_iterator; <a name="l00109"><a class="code" href="class_xalandomstring.html#s9">00109</a></a> typedef XalanDOMCharVectorType::reverse_iterator reverse_iterator; <a name="l00110"><a class="code" href="class_xalandomstring.html#s10">00110</a></a> typedef XalanDOMCharVectorType::const_reverse_iterator const_reverse_iterator; 00111 00112 #if defined(XALAN_INLINE_INITIALIZATION) 00113 static const size_type npos = ~0u; 00114 #else 00115 enum { npos = -1 }; 00116 #endif 00117 00118 explicit 00119 <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(); 00120 00121 explicit 00122 <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>( 00123 const char* theString, 00124 size_type theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)); 00125 00126 <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>( 00127 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSource, 00128 size_type theStartPosition = 0, 00129 size_type theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)); 00130 00131 explicit 00132 <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>( 00133 const XalanDOMChar* theString, 00134 size_type theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)); 00135 00136 <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>( 00137 size_type theCount, 00138 XalanDOMChar theChar); 00139 <a name="l00140"><a class="code" href="class_xalandomstring.html#a5">00140</a></a> <a class="code" href="class_xalandomstring.html#a5">~XalanDOMString</a>() 00141 { 00142 } 00143 00144 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00145"><a class="code" href="class_xalandomstring.html#a6">00145</a></a> operator=(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00146 { 00147 return <a class="code" href="class_xalandomstring.html#a36">assign</a>(theRHS); 00148 } 00149 00150 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00151"><a class="code" href="class_xalandomstring.html#a7">00151</a></a> operator=(const XalanDOMChar* theRHS) 00152 { 00153 return <a class="code" href="class_xalandomstring.html#a36">assign</a>(theRHS); 00154 } 00155 00156 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00157"><a class="code" href="class_xalandomstring.html#a8">00157</a></a> operator=(const char* theRHS) 00158 { 00159 return <a class="code" href="class_xalandomstring.html#a36">assign</a>(theRHS); 00160 } 00161 00162 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00163"><a class="code" href="class_xalandomstring.html#a9">00163</a></a> operator=(XalanDOMChar theRHS) 00164 { 00165 return <a class="code" href="class_xalandomstring.html#a36">assign</a>(1, theRHS); 00166 } 00167 00168 iterator <a name="l00169"><a class="code" href="class_xalandomstring.html#a10">00169</a></a> <a class="code" href="class_xalandomstring.html#a11">begin</a>() 00170 { 00171 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00172 00173 return m_data.begin(); 00174 } 00175 00176 const_iterator <a name="l00177"><a class="code" href="class_xalandomstring.html#a11">00177</a></a> <a class="code" href="class_xalandomstring.html#a11">begin</a>() const 00178 { 00179 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00180 00181 return m_data.begin(); 00182 } 00183 00184 iterator <a name="l00185"><a class="code" href="class_xalandomstring.html#a12">00185</a></a> <a class="code" href="class_xalandomstring.html#a13">end</a>() 00186 { 00187 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00188 00189 return m_data.end(); 00190 } 00191 00192 const_iterator <a name="l00193"><a class="code" href="class_xalandomstring.html#a13">00193</a></a> <a class="code" href="class_xalandomstring.html#a13">end</a>() const 00194 { 00195 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00196 00197 return m_data.end(); 00198 } 00199 00200 reverse_iterator <a name="l00201"><a class="code" href="class_xalandomstring.html#a14">00201</a></a> <a class="code" href="class_xalandomstring.html#a15">rbegin</a>() 00202 { 00203 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00204 00205 return m_data.rbegin(); 00206 } 00207 00208 const_reverse_iterator <a name="l00209"><a class="code" href="class_xalandomstring.html#a15">00209</a></a> <a class="code" href="class_xalandomstring.html#a15">rbegin</a>() const 00210 { 00211 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00212 00213 return m_data.rbegin(); 00214 } 00215 00216 reverse_iterator <a name="l00217"><a class="code" href="class_xalandomstring.html#a16">00217</a></a> <a class="code" href="class_xalandomstring.html#a17">rend</a>() 00218 { 00219 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00220 00221 return m_data.rend(); 00222 } 00223 00224 const_reverse_iterator <a name="l00225"><a class="code" href="class_xalandomstring.html#a17">00225</a></a> <a class="code" href="class_xalandomstring.html#a17">rend</a>() const 00226 { 00227 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00228 00229 return m_data.rend(); 00230 } 00231 00232 size_type <a name="l00233"><a class="code" href="class_xalandomstring.html#a18">00233</a></a> <a class="code" href="class_xalandomstring.html#a18">size</a>() const 00234 { 00235 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00236 00237 return m_size; 00238 } 00239 00240 size_type <a name="l00241"><a class="code" href="class_xalandomstring.html#a19">00241</a></a> <a class="code" href="class_xalandomstring.html#a19">length</a>() const 00242 { 00243 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00244 00245 return <a class="code" href="class_xalandomstring.html#a18">size</a>(); 00246 } 00247 00248 size_type <a name="l00249"><a class="code" href="class_xalandomstring.html#a20">00249</a></a> <a class="code" href="class_xalandomstring.html#a20">max_size</a>() const 00250 { 00251 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00252 00253 return <a class="code" href="class_xalandomstring.html#s6">size_type</a>(~0); 00254 } 00255 00256 void 00257 <a class="code" href="class_xalandomstring.html#a21">resize</a>( 00258 size_type theCount, 00259 XalanDOMChar theChar); 00260 00261 void <a name="l00262"><a class="code" href="class_xalandomstring.html#a22">00262</a></a> <a class="code" href="class_xalandomstring.html#a21">resize</a>(size_type theCount) 00263 { 00264 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00265 00266 <a class="code" href="class_xalandomstring.html#a21">resize</a>(theCount, <a class="code" href="XalanDOMString.hpp.html#a16">XalanDOMChar</a>(0)); 00267 } 00268 00269 size_type <a name="l00270"><a class="code" href="class_xalandomstring.html#a23">00270</a></a> <a class="code" href="class_xalandomstring.html#a23">capacity</a>() const 00271 { 00272 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00273 00274 return m_data.capacity() - 1; 00275 } 00276 00277 void <a name="l00278"><a class="code" href="class_xalandomstring.html#a24">00278</a></a> <a class="code" href="class_xalandomstring.html#a24">reserve</a>(size_type theCount = 0) 00279 { 00280 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00281 00282 m_data.reserve(theCount + 1); 00283 } 00284 00285 void <a name="l00286"><a class="code" href="class_xalandomstring.html#a25">00286</a></a> <a class="code" href="class_xalandomstring.html#a25">clear</a>() 00287 { 00288 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00289 00290 m_data.erase(m_data.begin(), m_data.end()); 00291 00292 m_size = 0; 00293 00294 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00295 } 00296 00297 void 00298 <a class="code" href="class_xalandomstring.html#a26">erase</a>( 00299 size_type theStartPosition = 0, 00300 size_type theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)); 00301 00302 bool <a name="l00303"><a class="code" href="class_xalandomstring.html#a27">00303</a></a> <a class="code" href="class_xalandomstring.html#a27">empty</a>() const 00304 { 00305 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00306 00307 return m_size == 0 ? true : false; 00308 } 00309 00310 const_reference <a name="l00311"><a class="code" href="class_xalandomstring.html#a28">00311</a></a> operator[](size_type theIndex) const 00312 { 00313 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00314 00315 return m_data[theIndex]; 00316 } 00317 00318 reference <a name="l00319"><a class="code" href="class_xalandomstring.html#a29">00319</a></a> operator[](size_type theIndex) 00320 { 00321 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00322 00323 return m_data[theIndex]; 00324 } 00325 00326 #if 0 00327 // $$$ ToDo: at() is not supported in the current version of GCC's vector<> 00328 // implementation. Eventually, it should be. 00329 const_reference 00330 at(size_type theIndex) const 00331 { 00332 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00333 00334 return m_data.at(theIndex); 00335 } 00336 00337 reference 00338 at(size_type theIndex) 00339 { 00340 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00341 00342 return m_data.at(theIndex); 00343 } 00344 #endif 00345 00346 const XalanDOMChar* <a name="l00347"><a class="code" href="class_xalandomstring.html#a30">00347</a></a> <a class="code" href="class_xalandomstring.html#a30">c_str</a>() const 00348 { 00349 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00350 00351 // $$$ ToDo: Do we really want to do this? 00352 // for convenience, we will return a pointer to 00353 // a default empty string so that c_str() never 00354 // returns a null pointer... 00355 return m_data.empty() == true ? &s_empty : &m_data[0]; 00356 } 00357 00358 const XalanDOMChar* <a name="l00359"><a class="code" href="class_xalandomstring.html#a31">00359</a></a> <a class="code" href="class_xalandomstring.html#a31">data</a>() const 00360 { 00361 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00362 00363 return <a class="code" href="class_xalandomstring.html#a30">c_str</a>(); 00364 } 00365 00366 void <a name="l00367"><a class="code" href="class_xalandomstring.html#a32">00367</a></a> <a class="code" href="class_xalandomstring.html#a32">swap</a>(<a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theOther) 00368 { 00369 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00370 00371 m_data.swap(theOther.m_data); 00372 00373 #if defined(XALAN_NO_NAMESPACES) 00374 <a class="code" href="class_xalandomstring.html#a32"> ::swap</a>(m_size, theOther.m_size); 00375 #else 00376 std::swap(m_size, theOther.m_size); 00377 #endif 00378 } 00379 00380 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00381"><a class="code" href="class_xalandomstring.html#a33">00381</a></a> operator+=(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSource) 00382 { 00383 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource); 00384 } 00385 00386 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00387"><a class="code" href="class_xalandomstring.html#a34">00387</a></a> operator+=(const XalanDOMChar* theString) 00388 { 00389 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theString); 00390 } 00391 00392 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00393"><a class="code" href="class_xalandomstring.html#a35">00393</a></a> operator+=(XalanDOMChar theChar) 00394 { 00395 <a class="code" href="class_xalandomstring.html#a44">append</a>(1, theChar); 00396 00397 return *this; 00398 } 00399 00400 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00401"><a class="code" href="class_xalandomstring.html#a36">00401</a></a> <a class="code" href="class_xalandomstring.html#a36">assign</a>(const XalanDOMChar* theSource) 00402 { 00403 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00404 00405 <a class="code" href="class_xalandomstring.html#a26">erase</a>(); 00406 00407 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00408 00409 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource); 00410 } 00411 00412 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00413"><a class="code" href="class_xalandomstring.html#a37">00413</a></a> <a class="code" href="class_xalandomstring.html#a36">assign</a>( 00414 const XalanDOMChar* theSource, 00415 size_type theCount) 00416 { 00417 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00418 00419 <a class="code" href="class_xalandomstring.html#a26">erase</a>(); 00420 00421 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00422 00423 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource, theCount); 00424 } 00425 00426 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00427"><a class="code" href="class_xalandomstring.html#a38">00427</a></a> <a class="code" href="class_xalandomstring.html#a36">assign</a>(const char* theSource) 00428 { 00429 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00430 00431 <a class="code" href="class_xalandomstring.html#a26">erase</a>(); 00432 00433 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00434 00435 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource); 00436 } 00437 00438 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00439"><a class="code" href="class_xalandomstring.html#a39">00439</a></a> <a class="code" href="class_xalandomstring.html#a36">assign</a>( 00440 const char* theSource, 00441 size_type theCount) 00442 { 00443 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00444 00445 <a class="code" href="class_xalandomstring.html#a26">erase</a>(); 00446 00447 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00448 00449 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource, theCount); 00450 } 00451 00452 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00453 <a class="code" href="class_xalandomstring.html#a36">assign</a>( 00454 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSource, 00455 size_type thePosition, 00456 size_type theCount); 00457 00458 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00459"><a class="code" href="class_xalandomstring.html#a41">00459</a></a> <a class="code" href="class_xalandomstring.html#a36">assign</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSource) 00460 { 00461 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00462 00463 if (&theSource != this) 00464 { 00465 m_data = theSource.m_data; 00466 00467 m_size = theSource.m_size; 00468 } 00469 00470 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00471 00472 return *this; 00473 } 00474 00475 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00476"><a class="code" href="class_xalandomstring.html#a42">00476</a></a> <a class="code" href="class_xalandomstring.html#a36">assign</a>( 00477 size_type theCount, 00478 XalanDOMChar theChar) 00479 { 00480 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00481 00482 <a class="code" href="class_xalandomstring.html#a26">erase</a>(); 00483 00484 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00485 00486 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theCount, theChar); 00487 } 00488 00489 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00490 <a class="code" href="class_xalandomstring.html#a36">assign</a>( 00491 const_iterator theFirstPosition, 00492 const_iterator theLastPosition); 00493 00494 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00495"><a class="code" href="class_xalandomstring.html#a44">00495</a></a> <a class="code" href="class_xalandomstring.html#a44">append</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSource) 00496 { 00497 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), theSource.<a class="code" href="class_xalandomstring.html#a19">length</a>()); 00498 } 00499 00500 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00501"><a class="code" href="class_xalandomstring.html#a45">00501</a></a> <a class="code" href="class_xalandomstring.html#a44">append</a>( 00502 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSource, 00503 size_type thePosition, 00504 size_type theCount) 00505 { 00506 assert(thePosition < theSource.<a class="code" href="class_xalandomstring.html#a19">length</a>() && 00507 (theCount == <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos) || thePosition + theCount <= theSource.<a class="code" href="class_xalandomstring.html#a19">length</a>())); 00508 00509 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource.<a class="code" href="class_xalandomstring.html#a30">c_str</a>() + thePosition, theCount); 00510 } 00511 00512 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00513 <a class="code" href="class_xalandomstring.html#a44">append</a>( 00514 const XalanDOMChar* theString, 00515 size_type theCount); 00516 00517 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00518"><a class="code" href="class_xalandomstring.html#a47">00518</a></a> <a class="code" href="class_xalandomstring.html#a44">append</a>(const XalanDOMChar* theString) 00519 { 00520 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theString, <a class="code" href="class_xalandomstring.html#a19">length</a>(theString)); 00521 } 00522 00523 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00524 <a class="code" href="class_xalandomstring.html#a44">append</a>( 00525 const char* theString, 00526 size_type theCount); 00527 00528 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00529"><a class="code" href="class_xalandomstring.html#a49">00529</a></a> <a class="code" href="class_xalandomstring.html#a44">append</a>(const char* theString) 00530 { 00531 return <a class="code" href="class_xalandomstring.html#a44">append</a>(theString, <a class="code" href="class_xalandomstring.html#a19">length</a>(theString)); 00532 } 00533 00534 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00535 <a class="code" href="class_xalandomstring.html#a44">append</a>( 00536 size_type theCount, 00537 XalanDOMChar theChar); 00538 00539 void <a name="l00540"><a class="code" href="class_xalandomstring.html#a51">00540</a></a> <a class="code" href="class_xalandomstring.html#a51">push_back</a>(XalanDOMChar theChar) 00541 { 00542 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00543 00544 <a class="code" href="class_xalandomstring.html#a44">append</a>(1, theChar); 00545 00546 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00547 } 00548 00549 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00550"><a class="code" href="class_xalandomstring.html#a52">00550</a></a> <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00551 size_type thePosition, 00552 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theString) 00553 { 00554 return <a class="code" href="class_xalandomstring.html#a52">insert</a>(thePosition, theString.c_str(), theString.length()); 00555 } 00556 00557 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00558"><a class="code" href="class_xalandomstring.html#a53">00558</a></a> <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00559 size_type thePosition1, 00560 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theString, 00561 size_type thePosition2, 00562 size_type theCount) 00563 { 00564 return <a class="code" href="class_xalandomstring.html#a52">insert</a>(thePosition1, theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>() + thePosition2, theCount); 00565 } 00566 00567 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00568 <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00569 size_type thePosition, 00570 const XalanDOMChar* theString, 00571 size_type theCount); 00572 00573 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00574"><a class="code" href="class_xalandomstring.html#a55">00574</a></a> <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00575 size_type thePosition, 00576 const XalanDOMChar* theString) 00577 { 00578 return <a class="code" href="class_xalandomstring.html#a52">insert</a>(thePosition, theString, <a class="code" href="class_xalandomstring.html#a19">length</a>(theString)); 00579 } 00580 00581 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& 00582 <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00583 size_type thePosition, 00584 size_type theCount, 00585 XalanDOMChar theChar); 00586 00587 iterator 00588 <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00589 iterator thePosition, 00590 XalanDOMChar theChar); 00591 00592 void 00593 <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00594 iterator thePosition, 00595 size_type theCount, 00596 XalanDOMChar theChar); 00597 00598 void 00599 <a class="code" href="class_xalandomstring.html#a52">insert</a>( 00600 iterator theInsertPosition, 00601 const_iterator theFirstPosition, 00602 const_iterator theLastPosition); 00603 00604 <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l00605"><a class="code" href="class_xalandomstring.html#a60">00605</a></a> <a class="code" href="class_xalandomstring.html#a60">substr</a>( 00606 size_type thePosition = 0, 00607 size_type theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const 00608 { 00609 assert(theCount == <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos) && thePosition < <a class="code" href="class_xalandomstring.html#a19">length</a>() || 00610 thePosition + theCount <= <a class="code" href="class_xalandomstring.html#a19">length</a>()); 00611 00612 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00613 00614 return <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(*this, thePosition, theCount); 00615 } 00616 00617 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& <a name="l00618"><a class="code" href="class_xalandomstring.html#a61">00618</a></a> <a class="code" href="class_xalandomstring.html#a60">substr</a>( 00619 <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSubstring, 00620 size_type thePosition = 0, 00621 size_type theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const 00622 { 00623 assert(theCount == <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos) && thePosition < <a class="code" href="class_xalandomstring.html#a19">length</a>() || 00624 thePosition + theCount <= <a class="code" href="class_xalandomstring.html#a19">length</a>()); 00625 00626 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00627 00628 return theSubstring.<a class="code" href="class_xalandomstring.html#a36">assign</a>(*this, thePosition, theCount); 00629 } 00630 00631 int <a name="l00632"><a class="code" href="class_xalandomstring.html#a62">00632</a></a> <a class="code" href="class_xalandomstring.html#a62">compare</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theString) const 00633 { 00634 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00635 00636 return <a class="code" href="class_xalandomstring.html#a62">compare</a>(theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>()); 00637 } 00638 00639 int <a name="l00640"><a class="code" href="class_xalandomstring.html#a63">00640</a></a> <a class="code" href="class_xalandomstring.html#a62">compare</a>( 00641 size_type thePosition1, 00642 size_type theCount1, 00643 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theString) const 00644 { 00645 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00646 00647 return <a class="code" href="class_xalandomstring.html#a62">compare</a>(thePosition1, theCount1, theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), theString.<a class="code" href="class_xalandomstring.html#a19">length</a>()); 00648 } 00649 00650 int <a name="l00651"><a class="code" href="class_xalandomstring.html#a64">00651</a></a> <a class="code" href="class_xalandomstring.html#a62">compare</a>( 00652 size_type thePosition1, 00653 size_type theCount1, 00654 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theString, 00655 size_type thePosition2, 00656 size_type theCount2) const 00657 { 00658 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00659 00660 return <a class="code" href="class_xalandomstring.html#a62">compare</a>(thePosition1, theCount1, theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>() + thePosition2, theCount2); 00661 } 00662 00663 int 00664 <a class="code" href="class_xalandomstring.html#a62">compare</a>(const XalanDOMChar* theString) const; 00665 00666 int 00667 <a class="code" href="class_xalandomstring.html#a62">compare</a>( 00668 size_type thePosition1, 00669 size_type theCount1, 00670 const XalanDOMChar* theString, 00671 size_type theCount2 = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const; 00672 00673 int <a name="l00674"><a class="code" href="class_xalandomstring.html#a67">00674</a></a> <a class="code" href="class_xalandomstring.html#a62">compare</a>(const char* theString) const 00675 { 00676 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00677 00678 return <a class="code" href="class_xalandomstring.html#a62">compare</a>(<a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(theString)); 00679 } 00680 00681 int <a name="l00682"><a class="code" href="class_xalandomstring.html#a66">00682</a></a> <a class="code" href="class_xalandomstring.html#a62">compare</a>( 00683 size_type thePosition1, 00684 size_type theCount1, 00685 const char* theString, 00686 size_type theCount2 = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const 00687 { 00688 <a class="code" href="class_xalandomstring.html#b0">invariants</a>(); 00689 00690 return <a class="code" href="class_xalandomstring.html#a62">compare</a>(thePosition1, theCount1, <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(theString, theCount2)); 00691 } 00692 00693 CharVectorType 00694 <a class="code" href="class_xalandomstring.html#a69">transcode</a>() const; 00695 00696 static bool 00697 <a class="code" href="class_xalandomstring.html#d0">equals</a>( 00698 const XalanDOMChar* theLHS, 00699 size_type theLHSLength, 00700 const XalanDOMChar* theRHS, 00701 size_type theRHSLength); 00702 00703 static bool <a name="l00704"><a class="code" href="class_xalandomstring.html#d1">00704</a></a> <a class="code" href="class_xalandomstring.html#d0">equals</a>( 00705 const XalanDOMChar* theLHS, 00706 const XalanDOMChar* theRHS) 00707 { 00708 return <a class="code" href="class_xalandomstring.html#d0">equals</a>(theLHS, <a class="code" href="class_xalandomstring.html#a19">length</a>(theLHS), theRHS, <a class="code" href="class_xalandomstring.html#a19">length</a>(theRHS)); 00709 } 00710 00711 static bool 00712 <a class="code" href="class_xalandomstring.html#d0">equals</a>( 00713 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00714 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS); 00715 00716 static bool <a name="l00717"><a class="code" href="class_xalandomstring.html#d3">00717</a></a> <a class="code" href="class_xalandomstring.html#d0">equals</a>( 00718 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00719 const XalanDOMChar* theRHS) 00720 { 00721 return <a class="code" href="class_xalandomstring.html#d0">equals</a>(theLHS.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), theRHS); 00722 } 00723 00724 static bool <a name="l00725"><a class="code" href="class_xalandomstring.html#d4">00725</a></a> <a class="code" href="class_xalandomstring.html#d0">equals</a>( 00726 const XalanDOMChar* theLHS, 00727 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00728 { 00729 return <a class="code" href="class_xalandomstring.html#d0">equals</a>(theLHS, theRHS.c_str()); 00730 } 00731 00732 /* 00733 * Helper function to determine the length of a null- 00734 * terminated string. 00735 * 00736 * @theString The string 00737 * @return the length 00738 */ 00739 static size_type 00740 <a class="code" href="class_xalandomstring.html#a19">length</a>(const XalanDOMChar* theString); 00741 00742 /* 00743 * Helper function to determine the length of a null- 00744 * terminated string. 00745 * 00746 * @theString The string 00747 * @return the length 00748 */ 00749 static size_type 00750 <a class="code" href="class_xalandomstring.html#a19">length</a>(const char* theString); 00751 <a name="l00752"><a class="code" href="class_xalandomstring__transcodingerror.html">00752</a></a> class TranscodingError : public <a class="code" href="class_xalandomexception.html">XalanDOMException</a> 00753 { 00754 public: 00755 <a name="l00756"><a class="code" href="class_xalandomstring__transcodingerror.html#a0">00756</a></a> TranscodingError() : 00757 <a class="code" href="class_xalandomexception.html">XalanDOMException</a>(TRANSCODING_ERR) 00758 { 00759 } 00760 00761 virtual <a name="l00762"><a class="code" href="class_xalandomstring__transcodingerror.html#a1">00762</a></a> ~TranscodingError() 00763 { 00764 } 00765 }; 00766 00767 protected: 00768 00769 /* 00770 * Function to assert invariant conditions for the class. 00771 * 00772 * @return the iterator 00773 */ 00774 void <a name="l00775"><a class="code" href="class_xalandomstring.html#b0">00775</a></a> invariants() const 00776 { 00777 #if !defined(NDEBUG) 00778 assert((m_data.empty() == true && m_size == 0) || m_size == m_data.size() - 1); 00779 assert(m_data.empty() == true || m_data.back() == 0); 00780 #endif 00781 } 00782 00783 /* 00784 * Get an iterator to the position of the terminating null. 00785 * 00786 * @return the iterator 00787 */ 00788 iterator <a name="l00789"><a class="code" href="class_xalandomstring.html#b1">00789</a></a> getBackInsertIterator() 00790 { 00791 invariants(); 00792 00793 return m_data.empty() == true ? m_data.end() : m_data.end() - 1; 00794 } 00795 00796 const_iterator <a name="l00797"><a class="code" href="class_xalandomstring.html#b2">00797</a></a> getBackInsertIterator() const 00798 { 00799 invariants(); 00800 00801 return m_data.empty() == true ? m_data.end() : m_data.end() - 1; 00802 } 00803 00804 iterator <a name="l00805"><a class="code" href="class_xalandomstring.html#b3">00805</a></a> getIteratorForPosition(size_type thePosition) 00806 { 00807 invariants(); 00808 00809 return m_data.begin() + thePosition; 00810 } 00811 00812 const_iterator <a name="l00813"><a class="code" href="class_xalandomstring.html#b4">00813</a></a> getIteratorForPosition(size_type thePosition) const 00814 { 00815 invariants(); 00816 00817 return m_data.begin() + thePosition; 00818 } 00819 00820 private: 00821 00822 XalanDOMCharVectorType m_data; 00823 00824 size_type m_size; 00825 00826 static const XalanDOMChar s_empty; 00827 }; 00828 00829 00830 00831 inline bool <a name="l00832"><a class="code" href="XalanDOMString.hpp.html#a1">00832</a></a> operator==( 00833 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00834 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00835 { 00836 return <a class="code" href="class_xalandomstring.html#d0">XalanDOMString::equals</a>(theLHS, theRHS); 00837 } 00838 00839 00840 00841 inline bool <a name="l00842"><a class="code" href="XalanDOMString.hpp.html#a2">00842</a></a> operator==( 00843 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00844 const XalanDOMChar* theRHS) 00845 { 00846 return <a class="code" href="class_xalandomstring.html#d0">XalanDOMString::equals</a>(theLHS, theRHS); 00847 } 00848 00849 00850 00851 inline bool <a name="l00852"><a class="code" href="XalanDOMString.hpp.html#a3">00852</a></a> operator==( 00853 const XalanDOMChar* theLHS, 00854 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00855 { 00856 // Note reversing of operands... 00857 return <a class="code" href="class_xalandomstring.html#d0">XalanDOMString::equals</a>(theLHS, theRHS); 00858 } 00859 00860 00861 00862 inline bool <a name="l00863"><a class="code" href="XalanDOMString.hpp.html#a4">00863</a></a> operator!=( 00864 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00865 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00866 { 00867 return !(theLHS == theRHS); 00868 } 00869 00870 00871 00872 inline bool <a name="l00873"><a class="code" href="XalanDOMString.hpp.html#a5">00873</a></a> operator!=( 00874 const XalanDOMChar* theLHS, 00875 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00876 { 00877 return !(theLHS == theRHS); 00878 } 00879 00880 00881 00882 inline bool <a name="l00883"><a class="code" href="XalanDOMString.hpp.html#a6">00883</a></a> operator!=( 00884 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00885 const XalanDOMChar* theRHS) 00886 { 00887 return !(theRHS == theLHS); 00888 } 00889 00890 00891 00892 inline <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l00893"><a class="code" href="XalanDOMString.hpp.html#a7">00893</a></a> operator+( 00894 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00895 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00896 { 00897 <a class="code" href="class_xalandomstring.html">XalanDOMString</a> theTemp(theLHS); 00898 00899 return theTemp += theRHS; 00900 } 00901 00902 00903 00904 inline <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l00905"><a class="code" href="XalanDOMString.hpp.html#a8">00905</a></a> operator+( 00906 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00907 const XalanDOMChar* theRHS) 00908 { 00909 <a class="code" href="class_xalandomstring.html">XalanDOMString</a> theTemp(theLHS); 00910 00911 return theTemp += theRHS; 00912 } 00913 00914 00915 00916 inline <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l00917"><a class="code" href="XalanDOMString.hpp.html#a9">00917</a></a> operator+( 00918 const XalanDOMChar* theLHS, 00919 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00920 { 00921 <a class="code" href="class_xalandomstring.html">XalanDOMString</a> theTemp(theLHS); 00922 00923 return theTemp += theRHS; 00924 } 00925 00926 00927 00928 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l00929"><a class="code" href="XalanDOMString.hpp.html#a10">00929</a></a> operator+( 00930 const char* theLHS, 00931 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theRHS) 00932 { 00933 return XalanDOMString(theLHS) + theRHS; 00934 } 00935 00936 00937 00938 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l00939"><a class="code" href="XalanDOMString.hpp.html#a11">00939</a></a> operator+( 00940 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theLHS, 00941 const char* theRHS) 00942 { 00943 return theLHS + XalanDOMString(theRHS); 00944 } 00945 00946 00947 00948 // Standard vector of XalanDOMChars and chars 00949 #if defined(XALAN_NO_NAMESPACES) 00950 typedef vector<XalanDOMChar> XalanDOMCharVectorType; 00951 00952 typedef vector<char> CharVectorType; 00953 #else <a name="l00954"><a class="code" href="XalanDOMString.hpp.html#a17">00954</a></a> typedef std::vector<XalanDOMChar> XalanDOMCharVectorType; 00955 <a name="l00956"><a class="code" href="XalanDOMString.hpp.html#a18">00956</a></a> typedef std::vector<char> CharVectorType; 00957 #endif 00958 00959 00960 <a name="l00972"><a class="code" href="XalanDOMString.hpp.html#a12">00972</a></a> <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool) 00973 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>( 00974 const XalanDOMChar* theSourceString, 00975 XalanDOMString::size_type theSourceStringLength, 00976 CharVectorType& targetVector, 00977 bool terminate = false); 00978 00979 00980 00991 <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool) 00992 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>( 00993 const XalanDOMChar* theSourceString, 00994 CharVectorType& targetVector, 00995 bool terminate = false); 00996 00997 00998 01007 inline const CharVectorType 01008 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(const XalanDOMChar* theSourceString) 01009 { 01010 CharVectorType theResult; 01011 01012 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(theSourceString, theResult, true); 01013 01014 return theResult; 01015 } 01016 01017 01018 01028 inline bool <a name="l01029"><a class="code" href="XalanDOMString.hpp.html#a13">01029</a></a> <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>( 01030 const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSourceString, 01031 CharVectorType& targetVector, 01032 bool terminate = false) 01033 { 01034 return <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(theSourceString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), targetVector, terminate); 01035 } 01036 01037 01038 01047 inline const CharVectorType <a name="l01048"><a class="code" href="XalanDOMString.hpp.html#a14">01048</a></a> <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>& theSourceString) 01049 { 01050 CharVectorType theResult; 01051 01052 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(theSourceString, theResult, true); 01053 01054 return theResult; 01055 } 01056 01057 01058 01067 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a> <a name="l01068"><a class="code" href="XalanDOMString.hpp.html#a15">01068</a></a> <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>( 01069 const char* theSourceString, 01070 XalanDOMString::size_type theSourceStringLength = XalanDOMString::npos) 01071 { 01072 return XalanDOMString(theSourceString, theSourceStringLength); 01073 } 01074 01075 01076 01088 <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool) 01089 <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>( 01090 const char* theSourceString, 01091 XalanDOMString::size_type theSourceStringLength, 01092 XalanDOMCharVectorType& theTargetVector, 01093 bool terminate = false); 01094 01095 01096 01107 <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool) 01108 <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>( 01109 const char* theSourceString, 01110 XalanDOMCharVectorType& theTargetVector, 01111 bool terminate = false); 01112 01113 01114 01122 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a> 01123 <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(const CharVectorType& theSourceString) 01124 { 01125 typedef XalanDOMString::size_type size_type; 01126 01127 const CharVectorType::size_type theSize = theSourceString.<a class="code" href="class_xalandomstring.html#a18">size</a>(); 01128 01129 if (theSourceString[theSize - 1] == CharVectorType::value_type(0)) 01130 { 01131 return <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(&*theSourceString.<a class="code" href="class_xalandomstring.html#a11">begin</a>(), size_type(theSize) - 1); 01132 } 01133 else 01134 { 01135 return <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(&*theSourceString.<a class="code" href="class_xalandomstring.html#a11">begin</a>(), size_type(theSize)); 01136 } 01137 } 01138 01139 01140 01141 #endif // !defined(XALANDOMSTRING_HEADER_GUARD_1357924680) </div></pre><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="images/dot.gif" width="1"></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.4</B><BR> Copyright © 2000, 2001, 2002 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"> </TD> </TR> </TABLE>