blob: 567b73533cdb4eba652d691c6e38dd95162f55e8 [file] [log] [blame]
<HTML><HEAD><SCRIPT language="JavaScript" src="../resources/script.js" type="text/javascript"></SCRIPT><TITLE>Xerces-C++: XMLTranscoder Class Reference</TITLE><link href="XercesApi.css" rel="stylesheet" type="text/css"></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="../resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="../resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="../resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="../graphics/api-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="../resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','../resources/button-xml-hi.gif','../resources/button-xml-lo.gif');" src="../resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','../resources/button-asf-hi.gif','../resources/button-asf-lo.gif');" src="../resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','../resources/button-w3c-hi.gif','../resources/button-w3c-lo.gif');" src="../resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="../resources/join.gif" vspace="0" width="120"><BR>
<A href="../../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','../graphics/ext-2-label-2.jpg','../graphics/ext-2-label-3.jpg');" src="../graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
<A href="../index.html" onMouseOut="rolloverOff('side-index');" onMouseOver="rolloverOn('side-index');"><IMG alt="Readme" border="0" height="12" hspace="0" name="side-index" onLoad="rolloverLoad('side-index','../graphics/index-label-2.jpg','../graphics/index-label-3.jpg');" src="../graphics/index-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../charter.html" onMouseOut="rolloverOff('side-charter');" onMouseOver="rolloverOn('side-charter');"><IMG alt="Charter" border="0" height="12" hspace="0" name="side-charter" onLoad="rolloverLoad('side-charter','../graphics/charter-label-2.jpg','../graphics/charter-label-3.jpg');" src="../graphics/charter-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Release Info" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','../graphics/releases-label-2.jpg','../graphics/releases-label-3.jpg');" src="../graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
<A href="../install.html" onMouseOut="rolloverOff('side-install');" onMouseOver="rolloverOn('side-install');"><IMG alt="Installation" border="0" height="12" hspace="0" name="side-install" onLoad="rolloverLoad('side-install','../graphics/install-label-2.jpg','../graphics/install-label-3.jpg');" src="../graphics/install-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="http://xerces.apache.org/xerces-c/download.cgi" onMouseOut="rolloverOff('side-ext-20');" onMouseOver="rolloverOn('side-ext-20');"><IMG alt="Download" border="0" height="12" hspace="0" name="side-ext-20" onLoad="rolloverLoad('side-ext-20','../graphics/ext-20-label-2.jpg','../graphics/ext-20-label-3.jpg');" src="../graphics/ext-20-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../build.html" onMouseOut="rolloverOff('side-build');" onMouseOver="rolloverOn('side-build');"><IMG alt="Build Instructions" border="0" height="12" hspace="0" name="side-build" onLoad="rolloverLoad('side-build','../graphics/build-label-2.jpg','../graphics/build-label-3.jpg');" src="../graphics/build-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
<A href="../program.html" onMouseOut="rolloverOff('side-program');" onMouseOver="rolloverOn('side-program');"><IMG alt="Programming" border="0" height="12" hspace="0" name="side-program" onLoad="rolloverLoad('side-program','../graphics/program-label-2.jpg','../graphics/program-label-3.jpg');" src="../graphics/program-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../samples.html" onMouseOut="rolloverOff('side-samples');" onMouseOver="rolloverOn('side-samples');"><IMG alt="Samples" border="0" height="12" hspace="0" name="side-samples" onLoad="rolloverLoad('side-samples','../graphics/samples-label-2.jpg','../graphics/samples-label-3.jpg');" src="../graphics/samples-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../faqs.html" onMouseOut="rolloverOff('side-faqs');" onMouseOver="rolloverOn('side-faqs');"><IMG alt="FAQs" border="0" height="12" hspace="0" name="side-faqs" onLoad="rolloverLoad('side-faqs','../graphics/faqs-label-2.jpg','../graphics/faqs-label-3.jpg');" src="../graphics/faqs-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
<A href="../api.html" onMouseOut="rolloverOff('side-api');" onMouseOver="rolloverOn('side-api');"><IMG alt="API Docs" border="0" height="12" hspace="0" name="side-api" onLoad="rolloverLoad('side-api','../graphics/api-label-2.jpg','../graphics/api-label-3.jpg');" src="../graphics/api-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../ApacheDOMC++Binding.html" onMouseOut="rolloverOff('side-ext-88');" onMouseOver="rolloverOn('side-ext-88');"><IMG alt="DOM C++ Binding" border="0" height="12" hspace="0" name="side-ext-88" onLoad="rolloverLoad('side-ext-88','../graphics/ext-88-label-2.jpg','../graphics/ext-88-label-3.jpg');" src="../graphics/ext-88-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../migrate.html" onMouseOut="rolloverOff('side-migrate');" onMouseOver="rolloverOn('side-migrate');"><IMG alt="Migration Guide" border="0" height="12" hspace="0" name="side-migrate" onLoad="rolloverLoad('side-migrate','../graphics/migrate-label-2.jpg','../graphics/migrate-label-3.jpg');" src="../graphics/migrate-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
<A href="../feedback.html" onMouseOut="rolloverOff('side-feedback');" onMouseOver="rolloverOn('side-feedback');"><IMG alt="Feedback" border="0" height="12" hspace="0" name="side-feedback" onLoad="rolloverLoad('side-feedback','../graphics/feedback-label-2.jpg','../graphics/feedback-label-3.jpg');" src="../graphics/feedback-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../bug-report.html" onMouseOut="rolloverOff('side-bug-report');" onMouseOver="rolloverOn('side-bug-report');"><IMG alt="Bug-Reporting" border="0" height="12" hspace="0" name="side-bug-report" onLoad="rolloverLoad('side-bug-report','../graphics/bug-report-label-2.jpg','../graphics/bug-report-label-3.jpg');" src="../graphics/bug-report-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../mailing-lists.html" onMouseOut="rolloverOff('side-mailing-lists');" onMouseOver="rolloverOn('side-mailing-lists');"><IMG alt="Mailing Lists" border="0" height="12" hspace="0" name="side-mailing-lists" onLoad="rolloverLoad('side-mailing-lists','../graphics/mailing-lists-label-2.jpg','../graphics/mailing-lists-label-3.jpg');" src="../graphics/mailing-lists-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
<A href="../source-repository.html" onMouseOut="rolloverOff('side-source-repository');" onMouseOver="rolloverOn('side-source-repository');"><IMG alt="Source Repository" border="0" height="12" hspace="0" name="side-source-repository" onLoad="rolloverLoad('side-source-repository','../graphics/source-repository-label-2.jpg','../graphics/source-repository-label-3.jpg');" src="../graphics/source-repository-label-3.jpg" vspace="0" width="120"></A><BR>
<A href="../applications.html" onMouseOut="rolloverOff('side-applications');" onMouseOver="rolloverOn('side-applications');"><IMG alt="Applications" border="0" height="12" hspace="0" name="side-applications" onLoad="rolloverLoad('side-applications','../graphics/applications-label-2.jpg','../graphics/applications-label-3.jpg');" src="../graphics/applications-label-3.jpg" vspace="0" width="120"></A><BR>
<IMG border="0" height="14" hspace="0" src="../resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#FFFFFF" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="../resources/void.gif" vspace="0" width="2"><B>API Docs for SAX and DOM</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="../resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
<P>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="classes.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
<h1>XMLTranscoder Class Reference</h1><!-- doxytag: class="XMLTranscoder" --><!-- doxytag: inherits="XMemory" --><code>DOMString</code> is the generic string class that stores all strings used in the DOM C++ API.
<a href="#_details">More...</a>
<p>
<div class="dynheader">
Inheritance diagram for XMLTranscoder:</div>
<div class="dynsection">
<p><center><img src="classXMLTranscoder__inherit__graph.png" border="0" usemap="#XMLTranscoder__inherit__map" alt="Inheritance graph"></center>
<map name="XMLTranscoder__inherit__map">
<area shape="rect" href="classXMemory.html" title="This class makes it possible to override the C++ memory management by adding new/delete..." alt="" coords="23,7,105,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<p>
<a href="classXMLTranscoder-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977">UnRepOpts</a> { <a class="el" href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977229094064f4df0c677985267231fe929">UnRep_Throw</a>,
<a class="el" href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977f58d3b8f8058b2b74e54f964f908e0e3">UnRep_RepChar</a>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This enum is used by the <code><a class="el" href="classXMLTranscoder.html#48b5f8e5689ee81ebcee54d6de48e998" title="Converts from the internal XMLCh* encoding to the encoding of the service.">transcodeTo()</a></code> method to indicate how to react to unrepresentable characters. <a href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Destructor.</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#692d6db451c87b9450620235328b8f67">~XMLTranscoder</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor for <a class="el" href="classXMLTranscoder.html" title="DOMString is the generic string class that stores all strings used in the DOM C++...">XMLTranscoder</a>. <a href="#692d6db451c87b9450620235328b8f67"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">The virtual transcoding interface</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#b9d5409d562aa54f99dc01617091c457">transcodeFrom</a> (const <a class="el" href="XercesDefs_8hpp.html#7470c7a32c59355685ebcd878a33f126">XMLByte</a> *const srcData, const unsigned int srcCount, XMLCh *const toFill, const unsigned int maxChars, unsigned int &amp;bytesEaten, unsigned char *const charSizes)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts from the encoding of the service to the internal XMLCh* encoding. <a href="#b9d5409d562aa54f99dc01617091c457"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#48b5f8e5689ee81ebcee54d6de48e998">transcodeTo</a> (const XMLCh *const srcData, const unsigned int srcCount, <a class="el" href="XercesDefs_8hpp.html#7470c7a32c59355685ebcd878a33f126">XMLByte</a> *const toFill, const unsigned int maxBytes, unsigned int &amp;charsEaten, const <a class="el" href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977">UnRepOpts</a> options)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts from the internal XMLCh* encoding to the encoding of the service. <a href="#48b5f8e5689ee81ebcee54d6de48e998"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#6ada159257e540c55884be997282fdd3">canTranscodeTo</a> (const unsigned int toCheck) const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query whether the transcoder can handle a given character. <a href="#6ada159257e540c55884be997282fdd3"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Getter methods</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#3f3bebde4fbb402b4435cbb3a2e991e9">getBlockSize</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the internal block size. <a href="#3f3bebde4fbb402b4435cbb3a2e991e9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const XMLCh *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#e6504b962e5540dc19cb7b8a10b1c263">getEncodingName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the encoding name. <a href="#e6504b962e5540dc19cb7b8a10b1c263"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Getter methods</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classMemoryManager.html">MemoryManager</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#3affa8b64dffd3829d81869049d69d14">getMemoryManager</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the plugged-in memory manager. <a href="#3affa8b64dffd3829d81869049d69d14"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#d530ce708dd2ded9d130d1e8b1c498ba">XMLTranscoder</a> (const XMLCh *const encodingName, const unsigned int blockSize, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#97eff0d9fff3567bea3acd3ca4d95252">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMLTranscoder.html#acad773379c000404f667bb39bda0d1c">checkBlockSize</a> (const unsigned int toCheck)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<code>DOMString</code> is the generic string class that stores all strings used in the DOM C++ API.
<p>
Though this class supports most of the common string operations to manipulate strings, it is not meant to be a comphrehensive string class. <code><a class="el" href="classXMLTranscoder.html" title="DOMString is the generic string class that stores all strings used in the DOM C++...">XMLTranscoder</a></code> is for transcoding non-local code page encodings, i.e. named encodings. These are used internally by the scanner to internalize raw XML into the internal Unicode format, and by writer classes to convert that internal Unicode format (which comes out of the parser) back out to a format that the receiving client code wants to use. <hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="0189aaebdb21f66d5f75383b68a88977"></a><!-- doxytag: member="XMLTranscoder::UnRepOpts" ref="0189aaebdb21f66d5f75383b68a88977" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977">XMLTranscoder::UnRepOpts</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This enum is used by the <code><a class="el" href="classXMLTranscoder.html#48b5f8e5689ee81ebcee54d6de48e998" title="Converts from the internal XMLCh* encoding to the encoding of the service.">transcodeTo()</a></code> method to indicate how to react to unrepresentable characters.
<p>
The <code><a class="el" href="classXMLTranscoder.html#b9d5409d562aa54f99dc01617091c457" title="Converts from the encoding of the service to the internal XMLCh* encoding.">transcodeFrom()</a></code> method always works the same. It will consider any invalid data to be an error and throw. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="0189aaebdb21f66d5f75383b68a88977229094064f4df0c677985267231fe929"></a><!-- doxytag: member="UnRep_Throw" ref="0189aaebdb21f66d5f75383b68a88977229094064f4df0c677985267231fe929" args="" -->UnRep_Throw</em>&nbsp;</td><td>
Throw an exception. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="0189aaebdb21f66d5f75383b68a88977f58d3b8f8058b2b74e54f964f908e0e3"></a><!-- doxytag: member="UnRep_RepChar" ref="0189aaebdb21f66d5f75383b68a88977f58d3b8f8058b2b74e54f964f908e0e3" args="" -->UnRep_RepChar</em>&nbsp;</td><td>
Use the replacement char. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="692d6db451c87b9450620235328b8f67"></a><!-- doxytag: member="XMLTranscoder::~XMLTranscoder" ref="692d6db451c87b9450620235328b8f67" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual XMLTranscoder::~XMLTranscoder </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Destructor for <a class="el" href="classXMLTranscoder.html" title="DOMString is the generic string class that stores all strings used in the DOM C++...">XMLTranscoder</a>.
<p>
</div>
</div><p>
<a class="anchor" name="d530ce708dd2ded9d130d1e8b1c498ba"></a><!-- doxytag: member="XMLTranscoder::XMLTranscoder" ref="d530ce708dd2ded9d130d1e8b1c498ba" args="(const XMLCh *const encodingName, const unsigned int blockSize, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">XMLTranscoder::XMLTranscoder </td>
<td>(</td>
<td class="paramtype">const XMLCh *const &nbsp;</td>
<td class="paramname"> <em>encodingName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>blockSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classMemoryManager.html">MemoryManager</a> *const &nbsp;</td>
<td class="paramname"> <em>manager</em> = <code><a class="el" href="classXMLPlatformUtils.html#97eff0d9fff3567bea3acd3ca4d95252">XMLPlatformUtils::fgMemoryManager</a></code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="b9d5409d562aa54f99dc01617091c457"></a><!-- doxytag: member="XMLTranscoder::transcodeFrom" ref="b9d5409d562aa54f99dc01617091c457" args="(const XMLByte *const srcData, const unsigned int srcCount, XMLCh *const toFill, const unsigned int maxChars, unsigned int &amp;bytesEaten, unsigned char *const charSizes)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual unsigned int XMLTranscoder::transcodeFrom </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="XercesDefs_8hpp.html#7470c7a32c59355685ebcd878a33f126">XMLByte</a> *const &nbsp;</td>
<td class="paramname"> <em>srcData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>srcCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">XMLCh *const &nbsp;</td>
<td class="paramname"> <em>toFill</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>maxChars</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int &amp;&nbsp;</td>
<td class="paramname"> <em>bytesEaten</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char *const &nbsp;</td>
<td class="paramname"> <em>charSizes</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Converts from the encoding of the service to the internal XMLCh* encoding.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>srcData</em>&nbsp;</td><td>the source buffer to be transcoded </td></tr>
<tr><td valign="top"></td><td valign="top"><em>srcCount</em>&nbsp;</td><td>number of bytes in the source buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>toFill</em>&nbsp;</td><td>the destination buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>maxChars</em>&nbsp;</td><td>the max number of characters in the destination buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>bytesEaten</em>&nbsp;</td><td>after transcoding, this will hold the number of bytes that were processed from the source buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>charSizes</em>&nbsp;</td><td>an array which must be at least as big as maxChars into which will be inserted values that indicate how many bytes from the input went into each XMLCh that was created into toFill. Since many encodings use variable numbers of byte per character, this provides a means to find out what bytes in the input went into making a particular output UTF-16 character. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns the number of chars put into the target buffer </dd></dl>
</div>
</div><p>
<a class="anchor" name="48b5f8e5689ee81ebcee54d6de48e998"></a><!-- doxytag: member="XMLTranscoder::transcodeTo" ref="48b5f8e5689ee81ebcee54d6de48e998" args="(const XMLCh *const srcData, const unsigned int srcCount, XMLByte *const toFill, const unsigned int maxBytes, unsigned int &amp;charsEaten, const UnRepOpts options)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual unsigned int XMLTranscoder::transcodeTo </td>
<td>(</td>
<td class="paramtype">const XMLCh *const &nbsp;</td>
<td class="paramname"> <em>srcData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>srcCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="XercesDefs_8hpp.html#7470c7a32c59355685ebcd878a33f126">XMLByte</a> *const &nbsp;</td>
<td class="paramname"> <em>toFill</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>maxBytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int &amp;&nbsp;</td>
<td class="paramname"> <em>charsEaten</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classXMLTranscoder.html#0189aaebdb21f66d5f75383b68a88977">UnRepOpts</a>&nbsp;</td>
<td class="paramname"> <em>options</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Converts from the internal XMLCh* encoding to the encoding of the service.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>srcData</em>&nbsp;</td><td>the source buffer to be transcoded </td></tr>
<tr><td valign="top"></td><td valign="top"><em>srcCount</em>&nbsp;</td><td>number of characters in the source buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>toFill</em>&nbsp;</td><td>the destination buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>maxBytes</em>&nbsp;</td><td>the max number of bytes in the destination buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>charsEaten</em>&nbsp;</td><td>after transcoding, this will hold the number of chars that were processed from the source buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>options to pass to the transcoder that explain how to respond to an unrepresentable character </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns the number of chars put into the target buffer </dd></dl>
</div>
</div><p>
<a class="anchor" name="6ada159257e540c55884be997282fdd3"></a><!-- doxytag: member="XMLTranscoder::canTranscodeTo" ref="6ada159257e540c55884be997282fdd3" args="(const unsigned int toCheck) const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual bool XMLTranscoder::canTranscodeTo </td>
<td>(</td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>toCheck</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Query whether the transcoder can handle a given character.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>toCheck</em>&nbsp;</td><td>the character code point to check </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="3f3bebde4fbb402b4435cbb3a2e991e9"></a><!-- doxytag: member="XMLTranscoder::getBlockSize" ref="3f3bebde4fbb402b4435cbb3a2e991e9" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int XMLTranscoder::getBlockSize </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the internal block size.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The block size indicated in the constructor. </dd></dl>
</div>
</div><p>
<a class="anchor" name="e6504b962e5540dc19cb7b8a10b1c263"></a><!-- doxytag: member="XMLTranscoder::getEncodingName" ref="e6504b962e5540dc19cb7b8a10b1c263" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const XMLCh * XMLTranscoder::getEncodingName </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the encoding name.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the name of the encoding that this <code><a class="el" href="classXMLTranscoder.html" title="DOMString is the generic string class that stores all strings used in the DOM C++...">XMLTranscoder</a></code> object is for </dd></dl>
</div>
</div><p>
<a class="anchor" name="3affa8b64dffd3829d81869049d69d14"></a><!-- doxytag: member="XMLTranscoder::getMemoryManager" ref="3affa8b64dffd3829d81869049d69d14" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classMemoryManager.html">MemoryManager</a> * XMLTranscoder::getMemoryManager </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the plugged-in memory manager.
<p>
This method returns the plugged-in memory manager user for dynamic memory allocation/deallocation.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the plugged-in memory manager </dd></dl>
</div>
</div><p>
<a class="anchor" name="acad773379c000404f667bb39bda0d1c"></a><!-- doxytag: member="XMLTranscoder::checkBlockSize" ref="acad773379c000404f667bb39bda0d1c" args="(const unsigned int toCheck)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XMLTranscoder::checkBlockSize </td>
<td>(</td>
<td class="paramtype">const unsigned int&nbsp;</td>
<td class="paramname"> <em>toCheck</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="TransService_8hpp-source.html">TransService.hpp</a></ul>
</FONT></TD></TR></TABLE><BR>
</TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1" alt=""></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
Copyright &copy; 1994-2004 The Apache Software Foundation.
All Rights Reserved.
</I></FONT></TD></TR></TABLE></BODY></HTML>