source: NonGTP/Xerces/xerces/doc/html/apiDocs/classXMLPlatformUtils.html @ 358

Revision 358, 96.5 KB checked in by bittner, 19 years ago (diff)

xerces added

Line 
1<HTML><HEAD><SCRIPT language="JavaScript" src="../resources/script.js" type="text/javascript"></SCRIPT><TITLE>XMLPlatformUtils 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>
2  <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>
3
4  <IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
5
6  <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>
7  <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>
8  <IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
9  <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>
10  <A href="http://xml.apache.org/dist/xerces-c/" onMouseOut="rolloverOff('side-ext-18');" onMouseOver="rolloverOn('side-ext-18');"><IMG alt="Download" border="0" height="12" hspace="0" name="side-ext-18" onLoad="rolloverLoad('side-ext-18','../graphics/ext-18-label-2.jpg','../graphics/ext-18-label-3.jpg');" src="../graphics/ext-18-label-3.jpg" vspace="0" width="120"></A><BR>
11  <A href="../build.html" onMouseOut="rolloverOff('side-build');" onMouseOver="rolloverOn('side-build');"><IMG alt="Build" 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>
12
13  <IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
14  <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> 
15  <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>
16  <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> 
17
18  <IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR> 
19  <A href="../ApacheDOMC++Binding.html" onMouseOut="rolloverOff('side-ext-68');" onMouseOver="rolloverOn('side-ext-68');"><IMG alt="DOM C++ Binding" border="0" height="12" hspace="0" name="side-ext-68" onLoad="rolloverLoad('side-ext-68','../graphics/ext-68-label-2.jpg','../graphics/ext-68-label-3.jpg');" src="../graphics/ext-68-label-3.jpg" vspace="0" width="120"></A><BR>
20
21  <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>
22  <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>
23
24  <IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
25
26  <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>
27  <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> 
28  <A href="../pdf.html" onMouseOut="rolloverOff('side-pdf');" onMouseOver="rolloverOn('side-pdf');"><IMG alt="PDF Document" border="0" height="12" hspace="0" name="side-pdf" onLoad="rolloverLoad('side-pdf','../graphics/pdf-label-2.jpg','../graphics/pdf-label-3.jpg');" src="../graphics/pdf-label-3.jpg" vspace="0" width="120"></A><BR>
29
30  <IMG border="0" height="6" hspace="0" src="../resources/separator.gif" vspace="0" width="120"><BR>
31
32  <A href="http://xml.apache.org/websrc/cvsweb.cgi/xml-xerces/c/" onMouseOut="rolloverOff('side-ext-100');" onMouseOver="rolloverOn('side-ext-100');"><IMG alt="CVS Repository" border="0" height="12" hspace="0" name="side-ext-100" onLoad="rolloverLoad('side-ext-100','../graphics/ext-100-label-2.jpg','../graphics/ext-100-label-3.jpg');" src="../graphics/ext-100-label-3.jpg" vspace="0" width="120"></A><BR>
33
34  <A href="http://marc.theaimsgroup.com/?l=xerces-c-dev" onMouseOut="rolloverOff('side-ext-102');" onMouseOver="rolloverOn('side-ext-102');"><IMG alt="Mail Archive" border="0" height="12" hspace="0" name="side-ext-102" onLoad="rolloverLoad('side-ext-102','../graphics/ext-102-label-2.jpg','../graphics/ext-102-label-3.jpg');" src="../graphics/ext-102-label-3.jpg" vspace="0" width="120"></A><BR>
35
36
37<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>
38    <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">
39
40            <P>
41<!-- Generated by Doxygen 1.2.14 -->
42<center>
43<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>
44<hr><h1>XMLPlatformUtils  Class Reference</h1>Utilities that must be implemented in a platform-specific way.
45<a href="#_details">More...</a>
46<p>
47Collaboration diagram for XMLPlatformUtils:<p><center><img src="classXMLPlatformUtils__coll__graph.gif" border="0" usemap="#XMLPlatformUtils__coll__map" alt="Collaboration graph"></center>
48<map name="XMLPlatformUtils__coll__map">
49<area href="classXMLNetAccessor.html" shape="rect" coords="7,107,124,89" alt="">
50<area href="classXMemory.html" shape="rect" coords="115,35,184,17" alt="">
51<area href="classXMLTransService.html" shape="rect" coords="151,107,271,89" alt="">
52<area href="classMemoryManager.html" shape="rect" coords="308,107,417,89" alt="">
53<area href="classPanicHandler.html" shape="rect" coords="521,107,612,89" alt="">
54</map>
55<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classXMLPlatformUtils-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
56<tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr>
57<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#d0">alignPointerForNewBlockAllocation</a> (size_t ptrSize)</td></tr>
58<tr><td>&nbsp;</td><td><font size=-1><em>Aligns the specified pointer per platform block allocation requirements.</em> <a href="#d0">More...</a><em></em></font><br><br></td></tr>
59<tr><td colspan="2"><div class="groupHeader">Initialization amd Panic methods</div></td></tr>
60<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z489_0">Initialize</a> (const char *const locale=<a class="el" href="classXMLUni.html#p202">XMLUni::fgXercescDefaultLocale</a>, const char *const nlsHome=0, <a class="el" href="classPanicHandler.html">PanicHandler</a> *const panicHandler=0, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const memoryManager=0)</td></tr>
61<tr><td>&nbsp;</td><td><font size=-1><em>Perform per-process parser initialization.</em> <a href="#z489_0">More...</a><em></em></font><br><br></td></tr>
62<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z489_1">Terminate</a> ()</td></tr>
63<tr><td>&nbsp;</td><td><font size=-1><em>Perform per-process parser termination.</em> <a href="#z489_1">More...</a><em></em></font><br><br></td></tr>
64<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z489_2">panic</a> (const <a class="el" href="classPanicHandler.html#z485_0">PanicHandler::PanicReasons</a> reason)</td></tr>
65<tr><td>&nbsp;</td><td><font size=-1><em>The panic mechanism.</em> <a href="#z489_2">More...</a><em></em></font><br><br></td></tr>
66<tr><td colspan="2"><div class="groupHeader">File Methods</div></td></tr>
67<tr><td nowrap align=right valign=top>unsigned int&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_0">curFilePos</a> (FileHandle theFile, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
68<tr><td>&nbsp;</td><td><font size=-1><em>Get the current file position.</em> <a href="#z490_0">More...</a><em></em></font><br><br></td></tr>
69<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_1">closeFile</a> (FileHandle theFile, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
70<tr><td>&nbsp;</td><td><font size=-1><em>Closes the file handle.</em> <a href="#z490_1">More...</a><em></em></font><br><br></td></tr>
71<tr><td nowrap align=right valign=top>unsigned int&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_2">fileSize</a> (FileHandle theFile, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
72<tr><td>&nbsp;</td><td><font size=-1><em>Returns the file size.</em> <a href="#z490_2">More...</a><em></em></font><br><br></td></tr>
73<tr><td nowrap align=right valign=top>FileHandle&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_3">openFile</a> (const char *const fileName, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
74<tr><td>&nbsp;</td><td><font size=-1><em>Opens the file.</em> <a href="#z490_3">More...</a><em></em></font><br><br></td></tr>
75<tr><td nowrap align=right valign=top>FileHandle&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_4">openFile</a> (const XMLCh *const fileName, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
76<tr><td>&nbsp;</td><td><font size=-1><em>Opens a named file.</em> <a href="#z490_4">More...</a><em></em></font><br><br></td></tr>
77<tr><td nowrap align=right valign=top>FileHandle&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_5">openFileToWrite</a> (const char *const fileName, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
78<tr><td>&nbsp;</td><td><font size=-1><em>Open a named file to write.</em> <a href="#z490_5">More...</a><em></em></font><br><br></td></tr>
79<tr><td nowrap align=right valign=top>FileHandle&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_6">openFileToWrite</a> (const XMLCh *const fileName, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
80<tr><td>&nbsp;</td><td><font size=-1><em>Open a named file to write.</em> <a href="#z490_6">More...</a><em></em></font><br><br></td></tr>
81<tr><td nowrap align=right valign=top>FileHandle&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_7">openStdInHandle</a> (<a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
82<tr><td>&nbsp;</td><td><font size=-1><em>Opens the standard input as a file.</em> <a href="#z490_7">More...</a><em></em></font><br><br></td></tr>
83<tr><td nowrap align=right valign=top>unsigned int&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_8">readFileBuffer</a> (FileHandle theFile, const unsigned int toRead, <a class="el" href="XercesDefs_8hpp.html#a16">XMLByte</a> *const toFill, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
84<tr><td>&nbsp;</td><td><font size=-1><em>Reads the file buffer.</em> <a href="#z490_8">More...</a><em></em></font><br><br></td></tr>
85<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_9">writeBufferToFile</a> (FileHandle const theFile, long toWrite, const <a class="el" href="XercesDefs_8hpp.html#a16">XMLByte</a> *const toFlush, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
86<tr><td>&nbsp;</td><td><font size=-1><em>Writes the buffer to the file.</em> <a href="#z490_9">More...</a><em></em></font><br><br></td></tr>
87<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z490_10">resetFile</a> (FileHandle theFile, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
88<tr><td>&nbsp;</td><td><font size=-1><em>Resets the file handle.</em> <a href="#z490_10">More...</a><em></em></font><br><br></td></tr>
89<tr><td colspan="2"><div class="groupHeader">File System Methods</div></td></tr>
90<tr><td nowrap align=right valign=top>XMLCh *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_0">getFullPath</a> (const XMLCh *const srcPath, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
91<tr><td>&nbsp;</td><td><font size=-1><em>Gets the full path from a relative path.</em> <a href="#z491_0">More...</a><em></em></font><br><br></td></tr>
92<tr><td nowrap align=right valign=top>XMLCh *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_1">getCurrentDirectory</a> (<a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
93<tr><td>&nbsp;</td><td><font size=-1><em>Gets the current working directory.</em> <a href="#z491_1">More...</a><em></em></font><br><br></td></tr>
94<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_2">isAnySlash</a> (XMLCh c)</td></tr>
95<tr><td>&nbsp;</td><td><font size=-1><em>Check if a charater is a slash.</em> <a href="#z491_2">More...</a><em></em></font><br><br></td></tr>
96<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_3">removeDotSlash</a> (XMLCh *const srcPath, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
97<tr><td>&nbsp;</td><td><font size=-1><em>Remove occurences of the pair of dot slash.</em> <a href="#z491_3">More...</a><em></em></font><br><br></td></tr>
98<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_4">removeDotDotSlash</a> (XMLCh *const srcPath, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
99<tr><td>&nbsp;</td><td><font size=-1><em>Remove occurences of the dot dot slash.</em> <a href="#z491_4">More...</a><em></em></font><br><br></td></tr>
100<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_5">isRelative</a> (const XMLCh *const toCheck, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
101<tr><td>&nbsp;</td><td><font size=-1><em>Determines if a path is relative or absolute.</em> <a href="#z491_5">More...</a><em></em></font><br><br></td></tr>
102<tr><td nowrap align=right valign=top>XMLCh *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z491_6">weavePaths</a> (const XMLCh *const basePath, const XMLCh *const relativePath, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
103<tr><td>&nbsp;</td><td><font size=-1><em>Utility to join two paths.</em> <a href="#z491_6">More...</a><em></em></font><br><br></td></tr>
104<tr><td colspan="2"><div class="groupHeader">Timing Methods</div></td></tr>
105<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z492_0">getCurrentMillis</a> ()</td></tr>
106<tr><td>&nbsp;</td><td><font size=-1><em>Gets the system time in milliseconds.</em> <a href="#z492_0">More...</a><em></em></font><br><br></td></tr>
107<tr><td colspan="2"><div class="groupHeader">Mutex Methods</div></td></tr>
108<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z493_0">closeMutex</a> (void *const mtxHandle)</td></tr>
109<tr><td>&nbsp;</td><td><font size=-1><em>Closes a mutex handle.</em> <a href="#z493_0">More...</a><em></em></font><br><br></td></tr>
110<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z493_1">lockMutex</a> (void *const mtxHandle)</td></tr>
111<tr><td>&nbsp;</td><td><font size=-1><em>Locks a mutex handle.</em> <a href="#z493_1">More...</a><em></em></font><br><br></td></tr>
112<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z493_2">makeMutex</a> ()</td></tr>
113<tr><td>&nbsp;</td><td><font size=-1><em>Make a new mutex.</em> <a href="#z493_2">More...</a><em></em></font><br><br></td></tr>
114<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z493_3">unlockMutex</a> (void *const mtxHandle)</td></tr>
115<tr><td>&nbsp;</td><td><font size=-1><em>Unlocks a mutex.</em> <a href="#z493_3">More...</a><em></em></font><br><br></td></tr>
116<tr><td colspan="2"><div class="groupHeader">External Message Support</div></td></tr>
117<tr><td nowrap align=right valign=top><a class="el" href="PlatformUtils_8hpp.html#a1">XMLMsgLoader</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z494_0">loadMsgSet</a> (const XMLCh *const msgDomain)</td></tr>
118<tr><td>&nbsp;</td><td><font size=-1><em>Loads the message set from among the available domains.</em> <a href="#z494_0">More...</a><em></em></font><br><br></td></tr>
119<tr><td colspan="2"><div class="groupHeader">Miscellaneous synchronization methods</div></td></tr>
120<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z495_0">compareAndSwap</a> (void **toFill, const void *const newValue, const void *const toCompare)</td></tr>
121<tr><td>&nbsp;</td><td><font size=-1><em>Conditionally updates or returns a single word variable atomically.</em> <a href="#z495_0">More...</a><em></em></font><br><br></td></tr>
122<tr><td colspan="2"><div class="groupHeader">Atomic Increment and Decrement</div></td></tr>
123<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z496_0">atomicIncrement</a> (int &amp;location)</td></tr>
124<tr><td>&nbsp;</td><td><font size=-1><em>Increments a single word variable atomically.</em> <a href="#z496_0">More...</a><em></em></font><br><br></td></tr>
125<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z496_1">atomicDecrement</a> (int &amp;location)</td></tr>
126<tr><td>&nbsp;</td><td><font size=-1><em>Decrements a single word variable atomically.</em> <a href="#z496_1">More...</a><em></em></font><br><br></td></tr>
127<tr><td colspan="2"><div class="groupHeader">NEL Character Handling</div></td></tr>
128<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z497_0">recognizeNEL</a> (bool state, <a class="el" href="classMemoryManager.html">MemoryManager</a> *const manager=<a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>)</td></tr>
129<tr><td>&nbsp;</td><td><font size=-1><em>This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.</em> <a href="#z497_0">More...</a><em></em></font><br><br></td></tr>
130<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z497_1">isNELRecognized</a> ()</td></tr>
131<tr><td>&nbsp;</td><td><font size=-1><em>Return the value of fgNEL flag.</em> <a href="#z497_1">More...</a><em></em></font><br><br></td></tr>
132<tr><td colspan="2"><div class="groupHeader">Strict IANA Encoding Checking</div></td></tr>
133<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z498_0">strictIANAEncoding</a> (const bool state)</td></tr>
134<tr><td>&nbsp;</td><td><font size=-1><em>This function enables/disables strict IANA encoding names checking.</em> <a href="#z498_0">More...</a><em></em></font><br><br></td></tr>
135<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z498_1">isStrictIANAEncoding</a> ()</td></tr>
136<tr><td>&nbsp;</td><td><font size=-1><em>Returns whether a strict IANA encoding name check is enabled or disabled.</em> <a href="#z498_1">More...</a><em></em></font><br><br></td></tr>
137<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr>
138<tr><td colspan="2"><div class="groupHeader">Public Static Data</div></td></tr>
139<tr><td nowrap align=right valign=top><a class="el" href="classXMLNetAccessor.html">XMLNetAccessor</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_0">fgNetAccessor</a></td></tr>
140<tr><td>&nbsp;</td><td><font size=-1><em>The network accessor.</em> <a href="#z488_0">More...</a><em></em></font><br><br></td></tr>
141<tr><td nowrap align=right valign=top><a class="el" href="classXMLTransService.html">XMLTransService</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_1">fgTransService</a></td></tr>
142<tr><td>&nbsp;</td><td><font size=-1><em>The transcoding service.</em> <a href="#z488_1">More...</a><em></em></font><br><br></td></tr>
143<tr><td nowrap align=right valign=top><a class="el" href="classPanicHandler.html">PanicHandler</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_2">fgUserPanicHandler</a></td></tr>
144<tr><td>&nbsp;</td><td><font size=-1><em>The Panic Handler.</em> <a href="#z488_2">More...</a><em></em></font><br><br></td></tr>
145<tr><td nowrap align=right valign=top><a class="el" href="classPanicHandler.html">PanicHandler</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_3">fgDefaultPanicHandler</a></td></tr>
146<tr><td>&nbsp;</td><td><font size=-1><em>The Panic Handler.</em> <a href="#z488_3">More...</a><em></em></font><br><br></td></tr>
147<tr><td nowrap align=right valign=top><a class="el" href="classMemoryManager.html">MemoryManager</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_4">fgMemoryManager</a></td></tr>
148<tr><td>&nbsp;</td><td><font size=-1><em>The configurable memory manager.</em> <a href="#z488_4">More...</a><em></em></font><br><br></td></tr>
149<tr><td nowrap align=right valign=top><a class="el" href="classMemoryManager.html">MemoryManager</a> *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_5">fgArrayMemoryManager</a></td></tr>
150<tr><td>&nbsp;</td><td><font size=-1><em>The array-allocating memory manager.</em> <a href="#z488_5">More...</a><em></em></font><br><br></td></tr>
151<tr><td nowrap align=right valign=top>XMLMutex *&nbsp;</td><td valign=bottom><a class="el" href="classXMLPlatformUtils.html#z488_6">fgAtomicMutex</a></td></tr>
152</table>
153<hr><a name="_details"></a><h2>Detailed Description</h2>
154Utilities that must be implemented in a platform-specific way.
155<p>
156This class contains methods that must be implemented in a platform specific manner. The actual implementations of these methods are available in the per-platform files indide <code>src/util/Platforms </code>.
157<p>
158<hr><h2>Member Function Documentation</h2>
159<a name="d0" doxytag="XMLPlatformUtils::alignPointerForNewBlockAllocation"></a><p>
160<table width="100%" cellpadding="2" cellspacing="0" border="0">
161  <tr>
162    <td class="md">
163      <table cellpadding="0" cellspacing="0" border="0">
164        <tr>
165          <td class="md" nowrap valign="top"> size_t XMLPlatformUtils::alignPointerForNewBlockAllocation </td>
166          <td class="md" valign="top">(&nbsp;</td>
167          <td class="md" nowrap valign="top">size_t&nbsp;</td>
168          <td class="mdname1" valign="top" nowrap>&nbsp; <em>ptrSize</em>          </td>
169          <td class="md" valign="top">)&nbsp;</td>
170          <td class="md" nowrap><code> [static]</code></td>
171        </tr>
172
173      </table>
174    </td>
175  </tr>
176</table>
177<table cellspacing=5 cellpadding=0 border=0>
178  <tr>
179    <td>
180      &nbsp;
181    </td>
182    <td>
183
184<p>
185Aligns the specified pointer per platform block allocation requirements.
186<p>
187The results of this function may be altered by defining XML_PLATFORM_NEW_BLOCK_ALIGNMENT.     </td>
188  </tr>
189</table>
190<a name="z496_1" doxytag="XMLPlatformUtils::atomicDecrement"></a><p>
191<table width="100%" cellpadding="2" cellspacing="0" border="0">
192  <tr>
193    <td class="md">
194      <table cellpadding="0" cellspacing="0" border="0">
195        <tr>
196          <td class="md" nowrap valign="top"> int XMLPlatformUtils::atomicDecrement </td>
197          <td class="md" valign="top">(&nbsp;</td>
198          <td class="md" nowrap valign="top">int &amp;&nbsp;</td>
199          <td class="mdname1" valign="top" nowrap>&nbsp; <em>location</em>          </td>
200          <td class="md" valign="top">)&nbsp;</td>
201          <td class="md" nowrap><code> [static]</code></td>
202        </tr>
203
204      </table>
205    </td>
206  </tr>
207</table>
208<table cellspacing=5 cellpadding=0 border=0>
209  <tr>
210    <td>
211      &nbsp;
212    </td>
213    <td>
214
215<p>
216Decrements a single word variable atomically.
217<p>
218This must be implemented by the per-platform driver. The atomicDecrement subroutine increments one word in a single atomic operation. This operation is useful when a counter variable is shared between several threads or processes. When updating such a counter variable, it is important to make sure that the fetch, update, and store operations occur atomically (are not interruptible).<dl compact><dt><b>
219Parameters: </b><dd>
220<table border=0 cellspacing=2 cellpadding=0>
221<tr><td valign=top><em>location</em>&nbsp;</td><td>
222Specifies the address of the word variable to be decremented.</td></tr>
223</table>
224</dl><dl compact><dt><b>
225Returns: </b><dd>
226The function return value is positive if the result of the operation was positive. Zero if the result of the operation was zero. Negative if the result of the operation was negative. Except for the zero case, the value returned may differ from the actual result of the operation - only the sign and zero/nonzero state is guaranteed to be correct. </dl>    </td>
227  </tr>
228</table>
229<a name="z496_0" doxytag="XMLPlatformUtils::atomicIncrement"></a><p>
230<table width="100%" cellpadding="2" cellspacing="0" border="0">
231  <tr>
232    <td class="md">
233      <table cellpadding="0" cellspacing="0" border="0">
234        <tr>
235          <td class="md" nowrap valign="top"> int XMLPlatformUtils::atomicIncrement </td>
236          <td class="md" valign="top">(&nbsp;</td>
237          <td class="md" nowrap valign="top">int &amp;&nbsp;</td>
238          <td class="mdname1" valign="top" nowrap>&nbsp; <em>location</em>          </td>
239          <td class="md" valign="top">)&nbsp;</td>
240          <td class="md" nowrap><code> [static]</code></td>
241        </tr>
242
243      </table>
244    </td>
245  </tr>
246</table>
247<table cellspacing=5 cellpadding=0 border=0>
248  <tr>
249    <td>
250      &nbsp;
251    </td>
252    <td>
253
254<p>
255Increments a single word variable atomically.
256<p>
257This must be implemented by the per-platform driver. The atomicIncrement subroutine increments one word in a single atomic operation. This operation is useful when a counter variable is shared between several threads or processes. When updating such a counter variable, it is important to make sure that the fetch, update, and store operations occur atomically (are not interruptible).<dl compact><dt><b>
258Parameters: </b><dd>
259<table border=0 cellspacing=2 cellpadding=0>
260<tr><td valign=top><em>location</em>&nbsp;</td><td>
261Specifies the address of the word variable to be incremented.</td></tr>
262</table>
263</dl><dl compact><dt><b>
264Returns: </b><dd>
265The function return value is positive if the result of the operation was positive. Zero if the result of the operation was zero. Negative if the result of the operation was negative. Except for the zero case, the value returned may differ from the actual result of the operation - only the sign and zero/nonzero state is guaranteed to be correct. </dl>    </td>
266  </tr>
267</table>
268<a name="z490_1" doxytag="XMLPlatformUtils::closeFile"></a><p>
269<table width="100%" cellpadding="2" cellspacing="0" border="0">
270  <tr>
271    <td class="md">
272      <table cellpadding="0" cellspacing="0" border="0">
273        <tr>
274          <td class="md" nowrap valign="top"> void XMLPlatformUtils::closeFile </td>
275          <td class="md" valign="top">(&nbsp;</td>
276          <td class="md" nowrap valign="top">FileHandle&nbsp;</td>
277          <td class="mdname" nowrap>&nbsp; <em>theFile</em>, </td>
278        </tr>
279        <tr>
280          <td></td>
281          <td></td>
282          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
283          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
284        </tr>
285        <tr>
286          <td></td>
287          <td class="md">)&nbsp;</td>
288          <td class="md" colspan="2"><code> [static]</code></td>
289        </tr>
290
291      </table>
292    </td>
293  </tr>
294</table>
295<table cellspacing=5 cellpadding=0 border=0>
296  <tr>
297    <td>
298      &nbsp;
299    </td>
300    <td>
301
302<p>
303Closes the file handle.
304<p>
305This must be implemented by the per-platform driver, which should use local file services to close the passed file handle, and to destroy the passed file handle and any allocated data or system resources it contains.<dl compact><dt><b>
306Parameters: </b><dd>
307<table border=0 cellspacing=2 cellpadding=0>
308<tr><td valign=top><em>theFile</em>&nbsp;</td><td>
309The file handle to close </td></tr>
310<tr><td valign=top><em>manager</em>&nbsp;</td><td>
311The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
312</table>
313</dl>    </td>
314  </tr>
315</table>
316<a name="z493_0" doxytag="XMLPlatformUtils::closeMutex"></a><p>
317<table width="100%" cellpadding="2" cellspacing="0" border="0">
318  <tr>
319    <td class="md">
320      <table cellpadding="0" cellspacing="0" border="0">
321        <tr>
322          <td class="md" nowrap valign="top"> void XMLPlatformUtils::closeMutex </td>
323          <td class="md" valign="top">(&nbsp;</td>
324          <td class="md" nowrap valign="top">void *const&nbsp;</td>
325          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mtxHandle</em>          </td>
326          <td class="md" valign="top">)&nbsp;</td>
327          <td class="md" nowrap><code> [static]</code></td>
328        </tr>
329
330      </table>
331    </td>
332  </tr>
333</table>
334<table cellspacing=5 cellpadding=0 border=0>
335  <tr>
336    <td>
337      &nbsp;
338    </td>
339    <td>
340
341<p>
342Closes a mutex handle.
343<p>
344Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.<dl compact><dt><b>
345Parameters: </b><dd>
346<table border=0 cellspacing=2 cellpadding=0>
347<tr><td valign=top><em>mtxHandle</em>&nbsp;</td><td>
348The mutex handle that you want to close </td></tr>
349</table>
350</dl>    </td>
351  </tr>
352</table>
353<a name="z495_0" doxytag="XMLPlatformUtils::compareAndSwap"></a><p>
354<table width="100%" cellpadding="2" cellspacing="0" border="0">
355  <tr>
356    <td class="md">
357      <table cellpadding="0" cellspacing="0" border="0">
358        <tr>
359          <td class="md" nowrap valign="top"> void* XMLPlatformUtils::compareAndSwap </td>
360          <td class="md" valign="top">(&nbsp;</td>
361          <td class="md" nowrap valign="top">void **&nbsp;</td>
362          <td class="mdname" nowrap>&nbsp; <em>toFill</em>, </td>
363        </tr>
364        <tr>
365          <td></td>
366          <td></td>
367          <td class="md" nowrap>const void *const&nbsp;</td>
368          <td class="mdname" nowrap>&nbsp; <em>newValue</em>, </td>
369        </tr>
370        <tr>
371          <td></td>
372          <td></td>
373          <td class="md" nowrap>const void *const&nbsp;</td>
374          <td class="mdname" nowrap>&nbsp; <em>toCompare</em></td>
375        </tr>
376        <tr>
377          <td></td>
378          <td class="md">)&nbsp;</td>
379          <td class="md" colspan="2"><code> [static]</code></td>
380        </tr>
381
382      </table>
383    </td>
384  </tr>
385</table>
386<table cellspacing=5 cellpadding=0 border=0>
387  <tr>
388    <td>
389      &nbsp;
390    </td>
391    <td>
392
393<p>
394Conditionally updates or returns a single word variable atomically.
395<p>
396This must be implemented by the per-platform driver. The compareAndSwap subroutine performs an atomic operation which compares the contents of a single word variable with a stored old value. If the values are equal, a new value is stored in the single word variable and TRUE is returned; otherwise, the old value is set to the current value of the single word variable and FALSE is returned.
397<p>
398The compareAndSwap subroutine is useful when a word value must be updated only if it has not been changed since it was last read.
399<p>
400Note: The word containing the single word variable must be aligned on a full word boundary.<dl compact><dt><b>
401Parameters: </b><dd>
402<table border=0 cellspacing=2 cellpadding=0>
403<tr><td valign=top><em>toFill</em>&nbsp;</td><td>
404Specifies the address of the single word variable </td></tr>
405<tr><td valign=top><em>newValue</em>&nbsp;</td><td>
406Specifies the new value to be conditionally assigned to the single word variable. </td></tr>
407<tr><td valign=top><em>toCompare</em>&nbsp;</td><td>
408Specifies the address of the old value to be checked against (and conditionally updated with) the value of the single word variable.</td></tr>
409</table>
410</dl><dl compact><dt><b>
411Returns: </b><dd>
412Returns the new value assigned to the single word variable </dl>    </td>
413  </tr>
414</table>
415<a name="z490_0" doxytag="XMLPlatformUtils::curFilePos"></a><p>
416<table width="100%" cellpadding="2" cellspacing="0" border="0">
417  <tr>
418    <td class="md">
419      <table cellpadding="0" cellspacing="0" border="0">
420        <tr>
421          <td class="md" nowrap valign="top"> unsigned int XMLPlatformUtils::curFilePos </td>
422          <td class="md" valign="top">(&nbsp;</td>
423          <td class="md" nowrap valign="top">FileHandle&nbsp;</td>
424          <td class="mdname" nowrap>&nbsp; <em>theFile</em>, </td>
425        </tr>
426        <tr>
427          <td></td>
428          <td></td>
429          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
430          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
431        </tr>
432        <tr>
433          <td></td>
434          <td class="md">)&nbsp;</td>
435          <td class="md" colspan="2"><code> [static]</code></td>
436        </tr>
437
438      </table>
439    </td>
440  </tr>
441</table>
442<table cellspacing=5 cellpadding=0 border=0>
443  <tr>
444    <td>
445      &nbsp;
446    </td>
447    <td>
448
449<p>
450Get the current file position.
451<p>
452This must be implemented by the per-platform driver, which should use local file services to deterine the current position within the passed file.
453<p>
454Since the file API provided here only reads, if the host platform supports separate read/write positions, only the read position is of any interest, and hence should be the one returned.<dl compact><dt><b>
455Parameters: </b><dd>
456<table border=0 cellspacing=2 cellpadding=0>
457<tr><td valign=top><em>theFile</em>&nbsp;</td><td>
458The file handle </td></tr>
459<tr><td valign=top><em>manager</em>&nbsp;</td><td>
460The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
461</table>
462</dl>    </td>
463  </tr>
464</table>
465<a name="z490_2" doxytag="XMLPlatformUtils::fileSize"></a><p>
466<table width="100%" cellpadding="2" cellspacing="0" border="0">
467  <tr>
468    <td class="md">
469      <table cellpadding="0" cellspacing="0" border="0">
470        <tr>
471          <td class="md" nowrap valign="top"> unsigned int XMLPlatformUtils::fileSize </td>
472          <td class="md" valign="top">(&nbsp;</td>
473          <td class="md" nowrap valign="top">FileHandle&nbsp;</td>
474          <td class="mdname" nowrap>&nbsp; <em>theFile</em>, </td>
475        </tr>
476        <tr>
477          <td></td>
478          <td></td>
479          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
480          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
481        </tr>
482        <tr>
483          <td></td>
484          <td class="md">)&nbsp;</td>
485          <td class="md" colspan="2"><code> [static]</code></td>
486        </tr>
487
488      </table>
489    </td>
490  </tr>
491</table>
492<table cellspacing=5 cellpadding=0 border=0>
493  <tr>
494    <td>
495      &nbsp;
496    </td>
497    <td>
498
499<p>
500Returns the file size.
501<p>
502This must be implemented by the per-platform driver, which should use local file services to determine the current size of the file represented by the passed handle.<dl compact><dt><b>
503Parameters: </b><dd>
504<table border=0 cellspacing=2 cellpadding=0>
505<tr><td valign=top><em>theFile</em>&nbsp;</td><td>
506The file handle whose size you want </td></tr>
507<tr><td valign=top><em>manager</em>&nbsp;</td><td>
508The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
509</table>
510</dl><dl compact><dt><b>
511Returns: </b><dd>
512Returns the size of the file in bytes </dl>    </td>
513  </tr>
514</table>
515<a name="z491_1" doxytag="XMLPlatformUtils::getCurrentDirectory"></a><p>
516<table width="100%" cellpadding="2" cellspacing="0" border="0">
517  <tr>
518    <td class="md">
519      <table cellpadding="0" cellspacing="0" border="0">
520        <tr>
521          <td class="md" nowrap valign="top"> XMLCh* XMLPlatformUtils::getCurrentDirectory </td>
522          <td class="md" valign="top">(&nbsp;</td>
523          <td class="md" nowrap valign="top"><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
524          <td class="mdname1" valign="top" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>          </td>
525          <td class="md" valign="top">)&nbsp;</td>
526          <td class="md" nowrap><code> [static]</code></td>
527        </tr>
528
529      </table>
530    </td>
531  </tr>
532</table>
533<table cellspacing=5 cellpadding=0 border=0>
534  <tr>
535    <td>
536      &nbsp;
537    </td>
538    <td>
539
540<p>
541Gets the current working directory.
542<p>
543This must be implemented by the per-platform driver. It returns  the current working directory is.  <dl compact><dt><b>
544Parameters: </b><dd>
545<table border=0 cellspacing=2 cellpadding=0>
546<tr><td valign=top><em>manager</em>&nbsp;</td><td>
547The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
548</table>
549</dl><dl compact><dt><b>
550Returns: </b><dd>
551Returns the current working directory.  This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will be allocated using the static memory manager, if users do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory. </dl>    </td>
552  </tr>
553</table>
554<a name="z492_0" doxytag="XMLPlatformUtils::getCurrentMillis"></a><p>
555<table width="100%" cellpadding="2" cellspacing="0" border="0">
556  <tr>
557    <td class="md">
558      <table cellpadding="0" cellspacing="0" border="0">
559        <tr>
560          <td class="md" nowrap valign="top"> unsigned long XMLPlatformUtils::getCurrentMillis </td>
561          <td class="md" valign="top">(&nbsp;</td>
562          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
563          <td class="md" valign="top">)&nbsp;</td>
564          <td class="md" nowrap><code> [static]</code></td>
565        </tr>
566
567      </table>
568    </td>
569  </tr>
570</table>
571<table cellspacing=5 cellpadding=0 border=0>
572  <tr>
573    <td>
574      &nbsp;
575    </td>
576    <td>
577
578<p>
579Gets the system time in milliseconds.
580<p>
581This must be implemented by the per-platform driver, which should use local services to return the current value of a running millisecond timer. Note that the value returned is only as accurate as the millisecond time of the underyling host system.
582<p>
583<dl compact><dt><b>
584Returns: </b><dd>
585Returns the system time as an unsigned long </dl>    </td>
586  </tr>
587</table>
588<a name="z491_0" doxytag="XMLPlatformUtils::getFullPath"></a><p>
589<table width="100%" cellpadding="2" cellspacing="0" border="0">
590  <tr>
591    <td class="md">
592      <table cellpadding="0" cellspacing="0" border="0">
593        <tr>
594          <td class="md" nowrap valign="top"> XMLCh* XMLPlatformUtils::getFullPath </td>
595          <td class="md" valign="top">(&nbsp;</td>
596          <td class="md" nowrap valign="top">const XMLCh *const&nbsp;</td>
597          <td class="mdname" nowrap>&nbsp; <em>srcPath</em>, </td>
598        </tr>
599        <tr>
600          <td></td>
601          <td></td>
602          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
603          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
604        </tr>
605        <tr>
606          <td></td>
607          <td class="md">)&nbsp;</td>
608          <td class="md" colspan="2"><code> [static]</code></td>
609        </tr>
610
611      </table>
612    </td>
613  </tr>
614</table>
615<table cellspacing=5 cellpadding=0 border=0>
616  <tr>
617    <td>
618      &nbsp;
619    </td>
620    <td>
621
622<p>
623Gets the full path from a relative path.
624<p>
625This must be implemented by the per-platform driver. It should complete a relative path using the 'current directory', or whatever the local equivalent of a current directory is. If the passed source path is actually fully qualified, then a straight copy of it will be returned.<dl compact><dt><b>
626Parameters: </b><dd>
627<table border=0 cellspacing=2 cellpadding=0>
628<tr><td valign=top><em>srcPath</em>&nbsp;</td><td>
629The path of the file for which you want the full path</td></tr>
630<tr><td valign=top><em>manager</em>&nbsp;</td><td>
631Pointer to the memory manager to be used to allocate objects.</td></tr>
632</table>
633</dl><dl compact><dt><b>
634Returns: </b><dd>
635Returns the fully qualified path of the file name including the file name. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will beallocated using the static memory manager, if user do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory. </dl>    </td>
636  </tr>
637</table>
638<a name="z489_0" doxytag="XMLPlatformUtils::Initialize"></a><p>
639<table width="100%" cellpadding="2" cellspacing="0" border="0">
640  <tr>
641    <td class="md">
642      <table cellpadding="0" cellspacing="0" border="0">
643        <tr>
644          <td class="md" nowrap valign="top"> void XMLPlatformUtils::Initialize </td>
645          <td class="md" valign="top">(&nbsp;</td>
646          <td class="md" nowrap valign="top">const char *const&nbsp;</td>
647          <td class="mdname" nowrap>&nbsp; <em>locale</em> = <a class="el" href="classXMLUni.html#p202">XMLUni::fgXercescDefaultLocale</a>, </td>
648        </tr>
649        <tr>
650          <td></td>
651          <td></td>
652          <td class="md" nowrap>const char *const&nbsp;</td>
653          <td class="mdname" nowrap>&nbsp; <em>nlsHome</em> = 0, </td>
654        </tr>
655        <tr>
656          <td></td>
657          <td></td>
658          <td class="md" nowrap><a class="el" href="classPanicHandler.html">PanicHandler</a> *const&nbsp;</td>
659          <td class="mdname" nowrap>&nbsp; <em>panicHandler</em> = 0, </td>
660        </tr>
661        <tr>
662          <td></td>
663          <td></td>
664          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
665          <td class="mdname" nowrap>&nbsp; <em>memoryManager</em> = 0</td>
666        </tr>
667        <tr>
668          <td></td>
669          <td class="md">)&nbsp;</td>
670          <td class="md" colspan="2"><code> [static]</code></td>
671        </tr>
672
673      </table>
674    </td>
675  </tr>
676</table>
677<table cellspacing=5 cellpadding=0 border=0>
678  <tr>
679    <td>
680      &nbsp;
681    </td>
682    <td>
683
684<p>
685Perform per-process parser initialization.
686<p>
687Initialization <b>must</b> be called first in any client code.
688<p>
689The locale is set iff the <a class="el" href="classXMLPlatformUtils.html#z489_0">Initialize</a>() is invoked for the very first time, to ensure that each and every message loaders, in the process space, share the same locale.
690<p>
691All subsequent invocations of <a class="el" href="classXMLPlatformUtils.html#z489_0">Initialize</a>(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.
692<p>
693To set to a different locale, client application needs to <a class="el" href="classXMLPlatformUtils.html#z489_1">Terminate</a>() (or multiple <a class="el" href="classXMLPlatformUtils.html#z489_1">Terminate</a>() in the case where multiple <a class="el" href="classXMLPlatformUtils.html#z489_0">Initialize</a>() have been invoked before), followed by Initialize(new_locale).
694<p>
695The default locale is "en_US".
696<p>
697nlsHome: user specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to this nlsHome as well.
698<p>
699panicHandler: application's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists  through the call to XMLPlatformUtils::terminate().
700<p>
701memoryManager: plugged-in memory manager which is owned by user applications. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::terminate()     </td>
702  </tr>
703</table>
704<a name="z491_2" doxytag="XMLPlatformUtils::isAnySlash"></a><p>
705<table width="100%" cellpadding="2" cellspacing="0" border="0">
706  <tr>
707    <td class="md">
708      <table cellpadding="0" cellspacing="0" border="0">
709        <tr>
710          <td class="md" nowrap valign="top"> bool XMLPlatformUtils::isAnySlash </td>
711          <td class="md" valign="top">(&nbsp;</td>
712          <td class="md" nowrap valign="top">XMLCh&nbsp;</td>
713          <td class="mdname1" valign="top" nowrap>&nbsp; <em>c</em>          </td>
714          <td class="md" valign="top">)&nbsp;</td>
715          <td class="md" nowrap><code> [static]</code></td>
716        </tr>
717
718      </table>
719    </td>
720  </tr>
721</table>
722<table cellspacing=5 cellpadding=0 border=0>
723  <tr>
724    <td>
725      &nbsp;
726    </td>
727    <td>
728
729<p>
730Check if a charater is a slash.
731<p>
732This must be implemented by the per-platform driver.<dl compact><dt><b>
733Parameters: </b><dd>
734<table border=0 cellspacing=2 cellpadding=0>
735<tr><td valign=top><em>c</em>&nbsp;</td><td>
736the character to be examined</td></tr>
737</table>
738</dl><dl compact><dt><b>
739Returns: </b><dd>
740true if the character examined is a slash false otherwise </dl>    </td>
741  </tr>
742</table>
743<a name="z497_1" doxytag="XMLPlatformUtils::isNELRecognized"></a><p>
744<table width="100%" cellpadding="2" cellspacing="0" border="0">
745  <tr>
746    <td class="md">
747      <table cellpadding="0" cellspacing="0" border="0">
748        <tr>
749          <td class="md" nowrap valign="top"> bool XMLPlatformUtils::isNELRecognized </td>
750          <td class="md" valign="top">(&nbsp;</td>
751          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
752          <td class="md" valign="top">)&nbsp;</td>
753          <td class="md" nowrap><code> [static]</code></td>
754        </tr>
755
756      </table>
757    </td>
758  </tr>
759</table>
760<table cellspacing=5 cellpadding=0 border=0>
761  <tr>
762    <td>
763      &nbsp;
764    </td>
765    <td>
766
767<p>
768Return the value of fgNEL flag.
769<p>
770    </td>
771  </tr>
772</table>
773<a name="z491_5" doxytag="XMLPlatformUtils::isRelative"></a><p>
774<table width="100%" cellpadding="2" cellspacing="0" border="0">
775  <tr>
776    <td class="md">
777      <table cellpadding="0" cellspacing="0" border="0">
778        <tr>
779          <td class="md" nowrap valign="top"> bool XMLPlatformUtils::isRelative </td>
780          <td class="md" valign="top">(&nbsp;</td>
781          <td class="md" nowrap valign="top">const XMLCh *const&nbsp;</td>
782          <td class="mdname" nowrap>&nbsp; <em>toCheck</em>, </td>
783        </tr>
784        <tr>
785          <td></td>
786          <td></td>
787          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
788          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
789        </tr>
790        <tr>
791          <td></td>
792          <td class="md">)&nbsp;</td>
793          <td class="md" colspan="2"><code> [static]</code></td>
794        </tr>
795
796      </table>
797    </td>
798  </tr>
799</table>
800<table cellspacing=5 cellpadding=0 border=0>
801  <tr>
802    <td>
803      &nbsp;
804    </td>
805    <td>
806
807<p>
808Determines if a path is relative or absolute.
809<p>
810This must be implemented by the per-platform driver, which should determine whether the passed path is relative or not. The concept of relative and absolute might be... well relative on different platforms. But, as long as the determination is made consistently and in coordination with the <a class="el" href="classXMLPlatformUtils.html#z491_6">weavePaths</a>() method, it should work for any platform.<dl compact><dt><b>
811Parameters: </b><dd>
812<table border=0 cellspacing=2 cellpadding=0>
813<tr><td valign=top><em>toCheck</em>&nbsp;</td><td>
814The file name which you want to check </td></tr>
815<tr><td valign=top><em>manager</em>&nbsp;</td><td>
816The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
817</table>
818</dl><dl compact><dt><b>
819Returns: </b><dd>
820Returns true if the filename appears to be relative </dl>    </td>
821  </tr>
822</table>
823<a name="z498_1" doxytag="XMLPlatformUtils::isStrictIANAEncoding"></a><p>
824<table width="100%" cellpadding="2" cellspacing="0" border="0">
825  <tr>
826    <td class="md">
827      <table cellpadding="0" cellspacing="0" border="0">
828        <tr>
829          <td class="md" nowrap valign="top"> bool XMLPlatformUtils::isStrictIANAEncoding </td>
830          <td class="md" valign="top">(&nbsp;</td>
831          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
832          <td class="md" valign="top">)&nbsp;</td>
833          <td class="md" nowrap><code> [static]</code></td>
834        </tr>
835
836      </table>
837    </td>
838  </tr>
839</table>
840<table cellspacing=5 cellpadding=0 border=0>
841  <tr>
842    <td>
843      &nbsp;
844    </td>
845    <td>
846
847<p>
848Returns whether a strict IANA encoding name check is enabled or disabled.
849<p>
850    </td>
851  </tr>
852</table>
853<a name="z494_0" doxytag="XMLPlatformUtils::loadMsgSet"></a><p>
854<table width="100%" cellpadding="2" cellspacing="0" border="0">
855  <tr>
856    <td class="md">
857      <table cellpadding="0" cellspacing="0" border="0">
858        <tr>
859          <td class="md" nowrap valign="top"> <a class="el" href="PlatformUtils_8hpp.html#a1">XMLMsgLoader</a>* XMLPlatformUtils::loadMsgSet </td>
860          <td class="md" valign="top">(&nbsp;</td>
861          <td class="md" nowrap valign="top">const XMLCh *const&nbsp;</td>
862          <td class="mdname1" valign="top" nowrap>&nbsp; <em>msgDomain</em>          </td>
863          <td class="md" valign="top">)&nbsp;</td>
864          <td class="md" nowrap><code> [static]</code></td>
865        </tr>
866
867      </table>
868    </td>
869  </tr>
870</table>
871<table cellspacing=5 cellpadding=0 border=0>
872  <tr>
873    <td>
874      &nbsp;
875    </td>
876    <td>
877
878<p>
879Loads the message set from among the available domains.
880<p>
881The returned object must be dynamically allocated and the caller becomes responsible for cleaning it up.<dl compact><dt><b>
882Parameters: </b><dd>
883<table border=0 cellspacing=2 cellpadding=0>
884<tr><td valign=top><em>msgDomain</em>&nbsp;</td><td>
885The message domain which you want to load </td></tr>
886</table>
887</dl>    </td>
888  </tr>
889</table>
890<a name="z493_1" doxytag="XMLPlatformUtils::lockMutex"></a><p>
891<table width="100%" cellpadding="2" cellspacing="0" border="0">
892  <tr>
893    <td class="md">
894      <table cellpadding="0" cellspacing="0" border="0">
895        <tr>
896          <td class="md" nowrap valign="top"> void XMLPlatformUtils::lockMutex </td>
897          <td class="md" valign="top">(&nbsp;</td>
898          <td class="md" nowrap valign="top">void *const&nbsp;</td>
899          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mtxHandle</em>          </td>
900          <td class="md" valign="top">)&nbsp;</td>
901          <td class="md" nowrap><code> [static]</code></td>
902        </tr>
903
904      </table>
905    </td>
906  </tr>
907</table>
908<table cellspacing=5 cellpadding=0 border=0>
909  <tr>
910    <td>
911      &nbsp;
912    </td>
913    <td>
914
915<p>
916Locks a mutex handle.
917<p>
918Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.<dl compact><dt><b>
919Parameters: </b><dd>
920<table border=0 cellspacing=2 cellpadding=0>
921<tr><td valign=top><em>mtxHandle</em>&nbsp;</td><td>
922The mutex handle that you want to lock </td></tr>
923</table>
924</dl>    </td>
925  </tr>
926</table>
927<a name="z493_2" doxytag="XMLPlatformUtils::makeMutex"></a><p>
928<table width="100%" cellpadding="2" cellspacing="0" border="0">
929  <tr>
930    <td class="md">
931      <table cellpadding="0" cellspacing="0" border="0">
932        <tr>
933          <td class="md" nowrap valign="top"> void* XMLPlatformUtils::makeMutex </td>
934          <td class="md" valign="top">(&nbsp;</td>
935          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
936          <td class="md" valign="top">)&nbsp;</td>
937          <td class="md" nowrap><code> [static]</code></td>
938        </tr>
939
940      </table>
941    </td>
942  </tr>
943</table>
944<table cellspacing=5 cellpadding=0 border=0>
945  <tr>
946    <td>
947      &nbsp;
948    </td>
949    <td>
950
951<p>
952Make a new mutex.
953<p>
954Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is. The returned handle pointer will be eventually passed to <a class="el" href="classXMLPlatformUtils.html#z493_0">closeMutex</a>() which is also implemented by the platform driver.     </td>
955  </tr>
956</table>
957<a name="z490_4" doxytag="XMLPlatformUtils::openFile"></a><p>
958<table width="100%" cellpadding="2" cellspacing="0" border="0">
959  <tr>
960    <td class="md">
961      <table cellpadding="0" cellspacing="0" border="0">
962        <tr>
963          <td class="md" nowrap valign="top"> FileHandle XMLPlatformUtils::openFile </td>
964          <td class="md" valign="top">(&nbsp;</td>
965          <td class="md" nowrap valign="top">const XMLCh *const&nbsp;</td>
966          <td class="mdname" nowrap>&nbsp; <em>fileName</em>, </td>
967        </tr>
968        <tr>
969          <td></td>
970          <td></td>
971          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
972          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
973        </tr>
974        <tr>
975          <td></td>
976          <td class="md">)&nbsp;</td>
977          <td class="md" colspan="2"><code> [static]</code></td>
978        </tr>
979
980      </table>
981    </td>
982  </tr>
983</table>
984<table cellspacing=5 cellpadding=0 border=0>
985  <tr>
986    <td>
987      &nbsp;
988    </td>
989    <td>
990
991<p>
992Opens a named file.
993<p>
994This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.<dl compact><dt><b>
995Parameters: </b><dd>
996<table border=0 cellspacing=2 cellpadding=0>
997<tr><td valign=top><em>fileName</em>&nbsp;</td><td>
998The string containing the name of the file </td></tr>
999<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1000The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1001</table>
1002</dl><dl compact><dt><b>
1003Returns: </b><dd>
1004The file handle of the opened file </dl>    </td>
1005  </tr>
1006</table>
1007<a name="z490_3" doxytag="XMLPlatformUtils::openFile"></a><p>
1008<table width="100%" cellpadding="2" cellspacing="0" border="0">
1009  <tr>
1010    <td class="md">
1011      <table cellpadding="0" cellspacing="0" border="0">
1012        <tr>
1013          <td class="md" nowrap valign="top"> FileHandle XMLPlatformUtils::openFile </td>
1014          <td class="md" valign="top">(&nbsp;</td>
1015          <td class="md" nowrap valign="top">const char *const&nbsp;</td>
1016          <td class="mdname" nowrap>&nbsp; <em>fileName</em>, </td>
1017        </tr>
1018        <tr>
1019          <td></td>
1020          <td></td>
1021          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1022          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1023        </tr>
1024        <tr>
1025          <td></td>
1026          <td class="md">)&nbsp;</td>
1027          <td class="md" colspan="2"><code> [static]</code></td>
1028        </tr>
1029
1030      </table>
1031    </td>
1032  </tr>
1033</table>
1034<table cellspacing=5 cellpadding=0 border=0>
1035  <tr>
1036    <td>
1037      &nbsp;
1038    </td>
1039    <td>
1040
1041<p>
1042Opens the file.
1043<p>
1044This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.<dl compact><dt><b>
1045Parameters: </b><dd>
1046<table border=0 cellspacing=2 cellpadding=0>
1047<tr><td valign=top><em>fileName</em>&nbsp;</td><td>
1048The string containing the name of the file </td></tr>
1049<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1050The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1051</table>
1052</dl><dl compact><dt><b>
1053Returns: </b><dd>
1054The file handle of the opened file </dl>    </td>
1055  </tr>
1056</table>
1057<a name="z490_6" doxytag="XMLPlatformUtils::openFileToWrite"></a><p>
1058<table width="100%" cellpadding="2" cellspacing="0" border="0">
1059  <tr>
1060    <td class="md">
1061      <table cellpadding="0" cellspacing="0" border="0">
1062        <tr>
1063          <td class="md" nowrap valign="top"> FileHandle XMLPlatformUtils::openFileToWrite </td>
1064          <td class="md" valign="top">(&nbsp;</td>
1065          <td class="md" nowrap valign="top">const XMLCh *const&nbsp;</td>
1066          <td class="mdname" nowrap>&nbsp; <em>fileName</em>, </td>
1067        </tr>
1068        <tr>
1069          <td></td>
1070          <td></td>
1071          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1072          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1073        </tr>
1074        <tr>
1075          <td></td>
1076          <td class="md">)&nbsp;</td>
1077          <td class="md" colspan="2"><code> [static]</code></td>
1078        </tr>
1079
1080      </table>
1081    </td>
1082  </tr>
1083</table>
1084<table cellspacing=5 cellpadding=0 border=0>
1085  <tr>
1086    <td>
1087      &nbsp;
1088    </td>
1089    <td>
1090
1091<p>
1092Open a named file to write.
1093<p>
1094This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.<dl compact><dt><b>
1095Parameters: </b><dd>
1096<table border=0 cellspacing=2 cellpadding=0>
1097<tr><td valign=top><em>fileName</em>&nbsp;</td><td>
1098The string containing the name of the file </td></tr>
1099<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1100The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1101</table>
1102</dl><dl compact><dt><b>
1103Returns: </b><dd>
1104The file handle of the opened file </dl>    </td>
1105  </tr>
1106</table>
1107<a name="z490_5" doxytag="XMLPlatformUtils::openFileToWrite"></a><p>
1108<table width="100%" cellpadding="2" cellspacing="0" border="0">
1109  <tr>
1110    <td class="md">
1111      <table cellpadding="0" cellspacing="0" border="0">
1112        <tr>
1113          <td class="md" nowrap valign="top"> FileHandle XMLPlatformUtils::openFileToWrite </td>
1114          <td class="md" valign="top">(&nbsp;</td>
1115          <td class="md" nowrap valign="top">const char *const&nbsp;</td>
1116          <td class="mdname" nowrap>&nbsp; <em>fileName</em>, </td>
1117        </tr>
1118        <tr>
1119          <td></td>
1120          <td></td>
1121          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1122          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1123        </tr>
1124        <tr>
1125          <td></td>
1126          <td class="md">)&nbsp;</td>
1127          <td class="md" colspan="2"><code> [static]</code></td>
1128        </tr>
1129
1130      </table>
1131    </td>
1132  </tr>
1133</table>
1134<table cellspacing=5 cellpadding=0 border=0>
1135  <tr>
1136    <td>
1137      &nbsp;
1138    </td>
1139    <td>
1140
1141<p>
1142Open a named file to write.
1143<p>
1144This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.<dl compact><dt><b>
1145Parameters: </b><dd>
1146<table border=0 cellspacing=2 cellpadding=0>
1147<tr><td valign=top><em>fileName</em>&nbsp;</td><td>
1148The string containing the name of the file </td></tr>
1149<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1150The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1151</table>
1152</dl><dl compact><dt><b>
1153Returns: </b><dd>
1154The file handle of the opened file </dl>    </td>
1155  </tr>
1156</table>
1157<a name="z490_7" doxytag="XMLPlatformUtils::openStdInHandle"></a><p>
1158<table width="100%" cellpadding="2" cellspacing="0" border="0">
1159  <tr>
1160    <td class="md">
1161      <table cellpadding="0" cellspacing="0" border="0">
1162        <tr>
1163          <td class="md" nowrap valign="top"> FileHandle XMLPlatformUtils::openStdInHandle </td>
1164          <td class="md" valign="top">(&nbsp;</td>
1165          <td class="md" nowrap valign="top"><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1166          <td class="mdname1" valign="top" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a>          </td>
1167          <td class="md" valign="top">)&nbsp;</td>
1168          <td class="md" nowrap><code> [static]</code></td>
1169        </tr>
1170
1171      </table>
1172    </td>
1173  </tr>
1174</table>
1175<table cellspacing=5 cellpadding=0 border=0>
1176  <tr>
1177    <td>
1178      &nbsp;
1179    </td>
1180    <td>
1181
1182<p>
1183Opens the standard input as a file.
1184<p>
1185This must be implemented by the per-platform driver, which should use local file services to open a handle to the standard input. It should be a copy of the standard input handle, since it will be closed later!<dl compact><dt><b>
1186Parameters: </b><dd>
1187<table border=0 cellspacing=2 cellpadding=0>
1188<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1189The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1190</table>
1191</dl><dl compact><dt><b>
1192Returns: </b><dd>
1193The file handle of the standard input stream </dl>    </td>
1194  </tr>
1195</table>
1196<a name="z489_2" doxytag="XMLPlatformUtils::panic"></a><p>
1197<table width="100%" cellpadding="2" cellspacing="0" border="0">
1198  <tr>
1199    <td class="md">
1200      <table cellpadding="0" cellspacing="0" border="0">
1201        <tr>
1202          <td class="md" nowrap valign="top"> void XMLPlatformUtils::panic </td>
1203          <td class="md" valign="top">(&nbsp;</td>
1204          <td class="md" nowrap valign="top">const <a class="el" href="classPanicHandler.html#z485_0">PanicHandler::PanicReasons</a>&nbsp;</td>
1205          <td class="mdname1" valign="top" nowrap>&nbsp; <em>reason</em>          </td>
1206          <td class="md" valign="top">)&nbsp;</td>
1207          <td class="md" nowrap><code> [static]</code></td>
1208        </tr>
1209
1210      </table>
1211    </td>
1212  </tr>
1213</table>
1214<table cellspacing=5 cellpadding=0 border=0>
1215  <tr>
1216    <td>
1217      &nbsp;
1218    </td>
1219    <td>
1220
1221<p>
1222The panic mechanism.
1223<p>
1224If, during initialization, we cannot even get far enough along to get transcoding up or get message loading working, we call this method.
1225<p>
1226Each platform can implement it however they want. This method will delegate the panic handling to a user specified panic handler or in the absence of it, the default panic handler.
1227<p>
1228In case the default panic handler does not support a particular platform, the platform specific panic hanlding shall be implemented here .<dl compact><dt><b>
1229Parameters: </b><dd>
1230<table border=0 cellspacing=2 cellpadding=0>
1231<tr><td valign=top><em>reason</em>&nbsp;</td><td>
1232The enumeration that defines the cause of the failure </td></tr>
1233</table>
1234</dl>    </td>
1235  </tr>
1236</table>
1237<a name="z490_8" doxytag="XMLPlatformUtils::readFileBuffer"></a><p>
1238<table width="100%" cellpadding="2" cellspacing="0" border="0">
1239  <tr>
1240    <td class="md">
1241      <table cellpadding="0" cellspacing="0" border="0">
1242        <tr>
1243          <td class="md" nowrap valign="top"> unsigned int XMLPlatformUtils::readFileBuffer </td>
1244          <td class="md" valign="top">(&nbsp;</td>
1245          <td class="md" nowrap valign="top">FileHandle&nbsp;</td>
1246          <td class="mdname" nowrap>&nbsp; <em>theFile</em>, </td>
1247        </tr>
1248        <tr>
1249          <td></td>
1250          <td></td>
1251          <td class="md" nowrap>const unsigned int&nbsp;</td>
1252          <td class="mdname" nowrap>&nbsp; <em>toRead</em>, </td>
1253        </tr>
1254        <tr>
1255          <td></td>
1256          <td></td>
1257          <td class="md" nowrap><a class="el" href="XercesDefs_8hpp.html#a16">XMLByte</a> *const&nbsp;</td>
1258          <td class="mdname" nowrap>&nbsp; <em>toFill</em>, </td>
1259        </tr>
1260        <tr>
1261          <td></td>
1262          <td></td>
1263          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1264          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1265        </tr>
1266        <tr>
1267          <td></td>
1268          <td class="md">)&nbsp;</td>
1269          <td class="md" colspan="2"><code> [static]</code></td>
1270        </tr>
1271
1272      </table>
1273    </td>
1274  </tr>
1275</table>
1276<table cellspacing=5 cellpadding=0 border=0>
1277  <tr>
1278    <td>
1279      &nbsp;
1280    </td>
1281    <td>
1282
1283<p>
1284Reads the file buffer.
1285<p>
1286This must be implemented by the per-platform driver, which should use local file services to read up to 'toRead' bytes of data from the passed file, and return those bytes in the 'toFill' buffer. It is not an error not to read the requested number of bytes. When the end of file is reached, zero should be returned.<dl compact><dt><b>
1287Parameters: </b><dd>
1288<table border=0 cellspacing=2 cellpadding=0>
1289<tr><td valign=top><em>theFile</em>&nbsp;</td><td>
1290The file handle to be read from. </td></tr>
1291<tr><td valign=top><em>toRead</em>&nbsp;</td><td>
1292The maximum number of byte to read from the current position </td></tr>
1293<tr><td valign=top><em>toFill</em>&nbsp;</td><td>
1294The byte buffer to fill </td></tr>
1295<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1296The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects</td></tr>
1297</table>
1298</dl><dl compact><dt><b>
1299Returns: </b><dd>
1300Returns the number of bytes read from the stream or file </dl>    </td>
1301  </tr>
1302</table>
1303<a name="z497_0" doxytag="XMLPlatformUtils::recognizeNEL"></a><p>
1304<table width="100%" cellpadding="2" cellspacing="0" border="0">
1305  <tr>
1306    <td class="md">
1307      <table cellpadding="0" cellspacing="0" border="0">
1308        <tr>
1309          <td class="md" nowrap valign="top"> void XMLPlatformUtils::recognizeNEL </td>
1310          <td class="md" valign="top">(&nbsp;</td>
1311          <td class="md" nowrap valign="top">bool&nbsp;</td>
1312          <td class="mdname" nowrap>&nbsp; <em>state</em>, </td>
1313        </tr>
1314        <tr>
1315          <td></td>
1316          <td></td>
1317          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1318          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1319        </tr>
1320        <tr>
1321          <td></td>
1322          <td class="md">)&nbsp;</td>
1323          <td class="md" colspan="2"><code> [static]</code></td>
1324        </tr>
1325
1326      </table>
1327    </td>
1328  </tr>
1329</table>
1330<table cellspacing=5 cellpadding=0 border=0>
1331  <tr>
1332    <td>
1333      &nbsp;
1334    </td>
1335    <td>
1336
1337<p>
1338This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.
1339<p>
1340It is only called once per process. Once it is set, any subsequent calls will result in exception being thrown.
1341<p>
1342Note: 1. Turning this option on will make the parser non compliant to XML 1.0. 2. This option has no effect to document conforming to XML 1.1 compliant, which always recognize these two chars (0x85 and 0x2028) as newline characters.     </td>
1343  </tr>
1344</table>
1345<a name="z491_4" doxytag="XMLPlatformUtils::removeDotDotSlash"></a><p>
1346<table width="100%" cellpadding="2" cellspacing="0" border="0">
1347  <tr>
1348    <td class="md">
1349      <table cellpadding="0" cellspacing="0" border="0">
1350        <tr>
1351          <td class="md" nowrap valign="top"> void XMLPlatformUtils::removeDotDotSlash </td>
1352          <td class="md" valign="top">(&nbsp;</td>
1353          <td class="md" nowrap valign="top">XMLCh *const&nbsp;</td>
1354          <td class="mdname" nowrap>&nbsp; <em>srcPath</em>, </td>
1355        </tr>
1356        <tr>
1357          <td></td>
1358          <td></td>
1359          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1360          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1361        </tr>
1362        <tr>
1363          <td></td>
1364          <td class="md">)&nbsp;</td>
1365          <td class="md" colspan="2"><code> [static]</code></td>
1366        </tr>
1367
1368      </table>
1369    </td>
1370  </tr>
1371</table>
1372<table cellspacing=5 cellpadding=0 border=0>
1373  <tr>
1374    <td>
1375      &nbsp;
1376    </td>
1377    <td>
1378
1379<p>
1380Remove occurences of the dot dot slash.
1381<p>
1382To remove the sequence, slash dot dot slash and its preceding path segment if and only if the preceding path segment is not slash dot dot slash.<dl compact><dt><b>
1383Parameters: </b><dd>
1384<table border=0 cellspacing=2 cellpadding=0>
1385<tr><td valign=top><em>srcPath</em>&nbsp;</td><td>
1386The path for which you want to remove the slash dot dot slash sequence and its preceding path segment. </td></tr>
1387<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1388The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1389</table>
1390</dl><dl compact><dt><b>
1391Returns: </b><dd>
1392</dl>    </td>
1393  </tr>
1394</table>
1395<a name="z491_3" doxytag="XMLPlatformUtils::removeDotSlash"></a><p>
1396<table width="100%" cellpadding="2" cellspacing="0" border="0">
1397  <tr>
1398    <td class="md">
1399      <table cellpadding="0" cellspacing="0" border="0">
1400        <tr>
1401          <td class="md" nowrap valign="top"> void XMLPlatformUtils::removeDotSlash </td>
1402          <td class="md" valign="top">(&nbsp;</td>
1403          <td class="md" nowrap valign="top">XMLCh *const&nbsp;</td>
1404          <td class="mdname" nowrap>&nbsp; <em>srcPath</em>, </td>
1405        </tr>
1406        <tr>
1407          <td></td>
1408          <td></td>
1409          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1410          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1411        </tr>
1412        <tr>
1413          <td></td>
1414          <td class="md">)&nbsp;</td>
1415          <td class="md" colspan="2"><code> [static]</code></td>
1416        </tr>
1417
1418      </table>
1419    </td>
1420  </tr>
1421</table>
1422<table cellspacing=5 cellpadding=0 border=0>
1423  <tr>
1424    <td>
1425      &nbsp;
1426    </td>
1427    <td>
1428
1429<p>
1430Remove occurences of the pair of dot slash.
1431<p>
1432To remove the sequence, dot slash if it is part of the sequence, slash dot slash.<dl compact><dt><b>
1433Parameters: </b><dd>
1434<table border=0 cellspacing=2 cellpadding=0>
1435<tr><td valign=top><em>srcPath</em>&nbsp;</td><td>
1436The path for which you want to remove the dot slash sequence. </td></tr>
1437<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1438The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1439</table>
1440</dl><dl compact><dt><b>
1441Returns: </b><dd>
1442</dl>    </td>
1443  </tr>
1444</table>
1445<a name="z490_10" doxytag="XMLPlatformUtils::resetFile"></a><p>
1446<table width="100%" cellpadding="2" cellspacing="0" border="0">
1447  <tr>
1448    <td class="md">
1449      <table cellpadding="0" cellspacing="0" border="0">
1450        <tr>
1451          <td class="md" nowrap valign="top"> void XMLPlatformUtils::resetFile </td>
1452          <td class="md" valign="top">(&nbsp;</td>
1453          <td class="md" nowrap valign="top">FileHandle&nbsp;</td>
1454          <td class="mdname" nowrap>&nbsp; <em>theFile</em>, </td>
1455        </tr>
1456        <tr>
1457          <td></td>
1458          <td></td>
1459          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1460          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1461        </tr>
1462        <tr>
1463          <td></td>
1464          <td class="md">)&nbsp;</td>
1465          <td class="md" colspan="2"><code> [static]</code></td>
1466        </tr>
1467
1468      </table>
1469    </td>
1470  </tr>
1471</table>
1472<table cellspacing=5 cellpadding=0 border=0>
1473  <tr>
1474    <td>
1475      &nbsp;
1476    </td>
1477    <td>
1478
1479<p>
1480Resets the file handle.
1481<p>
1482This must be implemented by the per-platform driver which will use local file services to reset the file position to the start of the the file.<dl compact><dt><b>
1483Parameters: </b><dd>
1484<table border=0 cellspacing=2 cellpadding=0>
1485<tr><td valign=top><em>theFile</em>&nbsp;</td><td>
1486The file handle that you want to reset </td></tr>
1487<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1488The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1489</table>
1490</dl>    </td>
1491  </tr>
1492</table>
1493<a name="z498_0" doxytag="XMLPlatformUtils::strictIANAEncoding"></a><p>
1494<table width="100%" cellpadding="2" cellspacing="0" border="0">
1495  <tr>
1496    <td class="md">
1497      <table cellpadding="0" cellspacing="0" border="0">
1498        <tr>
1499          <td class="md" nowrap valign="top"> void XMLPlatformUtils::strictIANAEncoding </td>
1500          <td class="md" valign="top">(&nbsp;</td>
1501          <td class="md" nowrap valign="top">const bool&nbsp;</td>
1502          <td class="mdname1" valign="top" nowrap>&nbsp; <em>state</em>          </td>
1503          <td class="md" valign="top">)&nbsp;</td>
1504          <td class="md" nowrap><code> [static]</code></td>
1505        </tr>
1506
1507      </table>
1508    </td>
1509  </tr>
1510</table>
1511<table cellspacing=5 cellpadding=0 border=0>
1512  <tr>
1513    <td>
1514      &nbsp;
1515    </td>
1516    <td>
1517
1518<p>
1519This function enables/disables strict IANA encoding names checking.
1520<p>
1521The strict checking is disabled by default.<dl compact><dt><b>
1522Parameters: </b><dd>
1523<table border=0 cellspacing=2 cellpadding=0>
1524<tr><td valign=top><em>state</em>&nbsp;</td><td>
1525If true, a strict IANA encoding name check is performed, otherwise, no checking. </td></tr>
1526</table>
1527</dl>    </td>
1528  </tr>
1529</table>
1530<a name="z489_1" doxytag="XMLPlatformUtils::Terminate"></a><p>
1531<table width="100%" cellpadding="2" cellspacing="0" border="0">
1532  <tr>
1533    <td class="md">
1534      <table cellpadding="0" cellspacing="0" border="0">
1535        <tr>
1536          <td class="md" nowrap valign="top"> void XMLPlatformUtils::Terminate </td>
1537          <td class="md" valign="top">(&nbsp;</td>
1538          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
1539          <td class="md" valign="top">)&nbsp;</td>
1540          <td class="md" nowrap><code> [static]</code></td>
1541        </tr>
1542
1543      </table>
1544    </td>
1545  </tr>
1546</table>
1547<table cellspacing=5 cellpadding=0 border=0>
1548  <tr>
1549    <td>
1550      &nbsp;
1551    </td>
1552    <td>
1553
1554<p>
1555Perform per-process parser termination.
1556<p>
1557The termination call is currently optional, to aid those dynamically loading the parser to clean up before exit, or to avoid spurious reports from leak detectors.     </td>
1558  </tr>
1559</table>
1560<a name="z493_3" doxytag="XMLPlatformUtils::unlockMutex"></a><p>
1561<table width="100%" cellpadding="2" cellspacing="0" border="0">
1562  <tr>
1563    <td class="md">
1564      <table cellpadding="0" cellspacing="0" border="0">
1565        <tr>
1566          <td class="md" nowrap valign="top"> void XMLPlatformUtils::unlockMutex </td>
1567          <td class="md" valign="top">(&nbsp;</td>
1568          <td class="md" nowrap valign="top">void *const&nbsp;</td>
1569          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mtxHandle</em>          </td>
1570          <td class="md" valign="top">)&nbsp;</td>
1571          <td class="md" nowrap><code> [static]</code></td>
1572        </tr>
1573
1574      </table>
1575    </td>
1576  </tr>
1577</table>
1578<table cellspacing=5 cellpadding=0 border=0>
1579  <tr>
1580    <td>
1581      &nbsp;
1582    </td>
1583    <td>
1584
1585<p>
1586Unlocks a mutex.
1587<p>
1588Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.
1589<p>
1590Note that, since the underlying system synchronization services are used, Xerces cannot guarantee that lock/unlock operations are correctly enforced on a per-thread basis or that incorrect nesting of lock/unlock operations will be caught.<dl compact><dt><b>
1591Parameters: </b><dd>
1592<table border=0 cellspacing=2 cellpadding=0>
1593<tr><td valign=top><em>mtxHandle</em>&nbsp;</td><td>
1594The mutex handle that you want to unlock </td></tr>
1595</table>
1596</dl>    </td>
1597  </tr>
1598</table>
1599<a name="z491_6" doxytag="XMLPlatformUtils::weavePaths"></a><p>
1600<table width="100%" cellpadding="2" cellspacing="0" border="0">
1601  <tr>
1602    <td class="md">
1603      <table cellpadding="0" cellspacing="0" border="0">
1604        <tr>
1605          <td class="md" nowrap valign="top"> XMLCh* XMLPlatformUtils::weavePaths </td>
1606          <td class="md" valign="top">(&nbsp;</td>
1607          <td class="md" nowrap valign="top">const XMLCh *const&nbsp;</td>
1608          <td class="mdname" nowrap>&nbsp; <em>basePath</em>, </td>
1609        </tr>
1610        <tr>
1611          <td></td>
1612          <td></td>
1613          <td class="md" nowrap>const XMLCh *const&nbsp;</td>
1614          <td class="mdname" nowrap>&nbsp; <em>relativePath</em>, </td>
1615        </tr>
1616        <tr>
1617          <td></td>
1618          <td></td>
1619          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1620          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1621        </tr>
1622        <tr>
1623          <td></td>
1624          <td class="md">)&nbsp;</td>
1625          <td class="md" colspan="2"><code> [static]</code></td>
1626        </tr>
1627
1628      </table>
1629    </td>
1630  </tr>
1631</table>
1632<table cellspacing=5 cellpadding=0 border=0>
1633  <tr>
1634    <td>
1635      &nbsp;
1636    </td>
1637    <td>
1638
1639<p>
1640Utility to join two paths.
1641<p>
1642This must be implemented by the per-platform driver, and should weave the relative path part together with the base part and return a new path that represents this combination.
1643<p>
1644If the relative part turns out to be fully qualified, it will be returned as is. If it is not, then it will be woven onto the passed base path, by removing one path component for each leading "../" (or whatever is the equivalent in the local system) in the relative path.<dl compact><dt><b>
1645Parameters: </b><dd>
1646<table border=0 cellspacing=2 cellpadding=0>
1647<tr><td valign=top><em>basePath</em>&nbsp;</td><td>
1648The string containing the base path </td></tr>
1649<tr><td valign=top><em>relativePath</em>&nbsp;</td><td>
1650The string containing the relative path </td></tr>
1651<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1652The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1653</table>
1654</dl><dl compact><dt><b>
1655Returns: </b><dd>
1656Returns a string containing the 'woven' path. It should be dynamically allocated and becomes the responsibility of the caller to delete. </dl>    </td>
1657  </tr>
1658</table>
1659<a name="z490_9" doxytag="XMLPlatformUtils::writeBufferToFile"></a><p>
1660<table width="100%" cellpadding="2" cellspacing="0" border="0">
1661  <tr>
1662    <td class="md">
1663      <table cellpadding="0" cellspacing="0" border="0">
1664        <tr>
1665          <td class="md" nowrap valign="top"> void XMLPlatformUtils::writeBufferToFile </td>
1666          <td class="md" valign="top">(&nbsp;</td>
1667          <td class="md" nowrap valign="top">FileHandle const&nbsp;</td>
1668          <td class="mdname" nowrap>&nbsp; <em>theFile</em>, </td>
1669        </tr>
1670        <tr>
1671          <td></td>
1672          <td></td>
1673          <td class="md" nowrap>long&nbsp;</td>
1674          <td class="mdname" nowrap>&nbsp; <em>toWrite</em>, </td>
1675        </tr>
1676        <tr>
1677          <td></td>
1678          <td></td>
1679          <td class="md" nowrap>const <a class="el" href="XercesDefs_8hpp.html#a16">XMLByte</a> *const&nbsp;</td>
1680          <td class="mdname" nowrap>&nbsp; <em>toFlush</em>, </td>
1681        </tr>
1682        <tr>
1683          <td></td>
1684          <td></td>
1685          <td class="md" nowrap><a class="el" href="classMemoryManager.html">MemoryManager</a> *const&nbsp;</td>
1686          <td class="mdname" nowrap>&nbsp; <em>manager</em> = <a class="el" href="classXMLPlatformUtils.html#z488_4">XMLPlatformUtils::fgMemoryManager</a></td>
1687        </tr>
1688        <tr>
1689          <td></td>
1690          <td class="md">)&nbsp;</td>
1691          <td class="md" colspan="2"><code> [static]</code></td>
1692        </tr>
1693
1694      </table>
1695    </td>
1696  </tr>
1697</table>
1698<table cellspacing=5 cellpadding=0 border=0>
1699  <tr>
1700    <td>
1701      &nbsp;
1702    </td>
1703    <td>
1704
1705<p>
1706Writes the buffer to the file.
1707<p>
1708This must be implemented by the per-platform driver, which should use local file services to write up to 'toWrite' bytes of data to the passed file. Unless exception raised by local file services, 'toWrite' bytes of data is to be written to the passed file.<dl compact><dt><b>
1709Parameters: </b><dd>
1710<table border=0 cellspacing=2 cellpadding=0>
1711<tr><td valign=top><em>theFile</em>&nbsp;</td><td>
1712The file handle to be written to. </td></tr>
1713<tr><td valign=top><em>toWrite</em>&nbsp;</td><td>
1714The maximum number of byte to write from the current position </td></tr>
1715<tr><td valign=top><em>toFlush</em>&nbsp;</td><td>
1716The byte buffer to flush </td></tr>
1717<tr><td valign=top><em>manager</em>&nbsp;</td><td>
1718The <a class="el" href="classMemoryManager.html">MemoryManager</a> to use to allocate objects </td></tr>
1719</table>
1720</dl><dl compact><dt><b>
1721Returns: </b><dd>
1722void </dl>    </td>
1723  </tr>
1724</table>
1725<hr><h2>Member Data Documentation</h2>
1726<a name="z488_5" doxytag="XMLPlatformUtils::fgArrayMemoryManager"></a><p>
1727<table width="100%" cellpadding="2" cellspacing="0" border="0">
1728  <tr>
1729    <td class="md">
1730      <table cellpadding="0" cellspacing="0" border="0">
1731        <tr>
1732          <td class="md" nowrap valign="top"> <a class="el" href="classMemoryManager.html">MemoryManager</a>* XMLPlatformUtils::fgArrayMemoryManager<code> [static]</code>
1733      </table>
1734    </td>
1735  </tr>
1736</table>
1737<table cellspacing=5 cellpadding=0 border=0>
1738  <tr>
1739    <td>
1740      &nbsp;
1741    </td>
1742    <td>
1743
1744<p>
1745The array-allocating memory manager.
1746<p>
1747This memory manager always allocates memory by calling the global new[] operator. It may be used to allocate memory where such memory needs to be deletable by calling delete []. Since this allocator is always guaranteed to do the same thing there is no reason, nor facility, to override it.     </td>
1748  </tr>
1749</table>
1750<a name="z488_6" doxytag="XMLPlatformUtils::fgAtomicMutex"></a><p>
1751<table width="100%" cellpadding="2" cellspacing="0" border="0">
1752  <tr>
1753    <td class="md">
1754      <table cellpadding="0" cellspacing="0" border="0">
1755        <tr>
1756          <td class="md" nowrap valign="top"> XMLMutex* XMLPlatformUtils::fgAtomicMutex<code> [static]</code>
1757      </table>
1758    </td>
1759  </tr>
1760</table>
1761<table cellspacing=5 cellpadding=0 border=0>
1762  <tr>
1763    <td>
1764      &nbsp;
1765    </td>
1766    <td>
1767
1768<p>
1769    </td>
1770  </tr>
1771</table>
1772<a name="z488_3" doxytag="XMLPlatformUtils::fgDefaultPanicHandler"></a><p>
1773<table width="100%" cellpadding="2" cellspacing="0" border="0">
1774  <tr>
1775    <td class="md">
1776      <table cellpadding="0" cellspacing="0" border="0">
1777        <tr>
1778          <td class="md" nowrap valign="top"> <a class="el" href="classPanicHandler.html">PanicHandler</a>* XMLPlatformUtils::fgDefaultPanicHandler<code> [static]</code>
1779      </table>
1780    </td>
1781  </tr>
1782</table>
1783<table cellspacing=5 cellpadding=0 border=0>
1784  <tr>
1785    <td>
1786      &nbsp;
1787    </td>
1788    <td>
1789
1790<p>
1791The Panic Handler.
1792<p>
1793This is the default panic handler.     </td>
1794  </tr>
1795</table>
1796<a name="z488_4" doxytag="XMLPlatformUtils::fgMemoryManager"></a><p>
1797<table width="100%" cellpadding="2" cellspacing="0" border="0">
1798  <tr>
1799    <td class="md">
1800      <table cellpadding="0" cellspacing="0" border="0">
1801        <tr>
1802          <td class="md" nowrap valign="top"> <a class="el" href="classMemoryManager.html">MemoryManager</a>* XMLPlatformUtils::fgMemoryManager<code> [static]</code>
1803      </table>
1804    </td>
1805  </tr>
1806</table>
1807<table cellspacing=5 cellpadding=0 border=0>
1808  <tr>
1809    <td>
1810      &nbsp;
1811    </td>
1812    <td>
1813
1814<p>
1815The configurable memory manager.
1816<p>
1817This is the pluggable memory manager. If it is not provided by an application, a default implementation is used.     </td>
1818  </tr>
1819</table>
1820<a name="z488_0" doxytag="XMLPlatformUtils::fgNetAccessor"></a><p>
1821<table width="100%" cellpadding="2" cellspacing="0" border="0">
1822  <tr>
1823    <td class="md">
1824      <table cellpadding="0" cellspacing="0" border="0">
1825        <tr>
1826          <td class="md" nowrap valign="top"> <a class="el" href="classXMLNetAccessor.html">XMLNetAccessor</a>* XMLPlatformUtils::fgNetAccessor<code> [static]</code>
1827      </table>
1828    </td>
1829  </tr>
1830</table>
1831<table cellspacing=5 cellpadding=0 border=0>
1832  <tr>
1833    <td>
1834      &nbsp;
1835    </td>
1836    <td>
1837
1838<p>
1839The network accessor.
1840<p>
1841This is provided by the per-platform driver, so each platform can choose what actual implementation it wants to use. The object must be dynamically allocated.
1842<p>
1843<em>Note that you may optionally, if your platform driver does not install a network accessor, set it manually from your client code after calling <a class="el" href="classXMLPlatformUtils.html#z489_0">Initialize</a>(). This works because this object is not required during initialization, and only comes into play during actual XML parsing.</em>     </td>
1844  </tr>
1845</table>
1846<a name="z488_1" doxytag="XMLPlatformUtils::fgTransService"></a><p>
1847<table width="100%" cellpadding="2" cellspacing="0" border="0">
1848  <tr>
1849    <td class="md">
1850      <table cellpadding="0" cellspacing="0" border="0">
1851        <tr>
1852          <td class="md" nowrap valign="top"> <a class="el" href="classXMLTransService.html">XMLTransService</a>* XMLPlatformUtils::fgTransService<code> [static]</code>
1853      </table>
1854    </td>
1855  </tr>
1856</table>
1857<table cellspacing=5 cellpadding=0 border=0>
1858  <tr>
1859    <td>
1860      &nbsp;
1861    </td>
1862    <td>
1863
1864<p>
1865The transcoding service.
1866<p>
1867This is provided by the per platform driver, so each platform can choose what implemenation it wants to use. When the platform independent initialization code needs to get a transcoding service object, it will call <code>makeTransService()</code> to ask the per-platform code to create one. Only one transcoding service object is reqeusted per-process, so it is shared and synchronized among parser instances within that process.     </td>
1868  </tr>
1869</table>
1870<a name="z488_2" doxytag="XMLPlatformUtils::fgUserPanicHandler"></a><p>
1871<table width="100%" cellpadding="2" cellspacing="0" border="0">
1872  <tr>
1873    <td class="md">
1874      <table cellpadding="0" cellspacing="0" border="0">
1875        <tr>
1876          <td class="md" nowrap valign="top"> <a class="el" href="classPanicHandler.html">PanicHandler</a>* XMLPlatformUtils::fgUserPanicHandler<code> [static]</code>
1877      </table>
1878    </td>
1879  </tr>
1880</table>
1881<table cellspacing=5 cellpadding=0 border=0>
1882  <tr>
1883    <td>
1884      &nbsp;
1885    </td>
1886    <td>
1887
1888<p>
1889The Panic Handler.
1890<p>
1891This is the application provided panic handler.     </td>
1892  </tr>
1893</table>
1894<hr>The documentation for this class was generated from the following file:<ul>
1895<li><a class="el" href="PlatformUtils_8hpp-source.html">PlatformUtils.hpp</a></ul>
1896    </FONT></TD></TR></TABLE><BR>
1897</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>
1898              Copyright &copy; 1994-2004 The Apache Software Foundation.
1899              All Rights Reserved.
1900            </I></FONT></TD></TR></TABLE></BODY></HTML>
Note: See TracBrowser for help on using the repository browser.