aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02918.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02918.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02918.html')
-rw-r--r--docs/doxygen/nel/a02918.html7584
1 files changed, 7584 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02918.html b/docs/doxygen/nel/a02918.html
new file mode 100644
index 00000000..0ca04762
--- /dev/null
+++ b/docs/doxygen/nel/a02918.html
@@ -0,0 +1,7584 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLNET::CMessage class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLNET::CMessage Class Reference</h1><code>#include &lt;<a class="el" href="a06027.html">message.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLNET::CMessage:
+<p><center><img src="a02918.png" usemap="#NLNET::CMessage_map" border="0" alt=""></center>
+<map name="NLNET::CMessage_map">
+<area href="a02271.html" alt="NLMISC::CMemStream" shape="rect" coords="0,56,140,80">
+<area href="a02270.html" alt="NLMISC::IStream" shape="rect" coords="0,0,140,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Message memory stream for network. Can be serialized to/from (see SerialBuffer()). Can be sent or received over a network, using the NeL network engine. If MESSAGES_PLAIN_TEXT is defined, the messages will be serialized to/from plain text (human-readable), instead of binary. Warning: if you don't give a "sida", the message type will not be associated with id so, it'll not be optimized Warning: THE ASSOCIATION Id&lt;-&gt;String SYSTEM FOR THE MESSAGE TYPE IS DISABLED BECAUSE 2 DIFFERENT CLIENTS COULD HAVE SAME STRING ASSOC AND DIFFERENT ID SO WE HAVE TO PUT ONE SIDA TABLE PER CONNECTION AND NOT PER NET_BASE<p>
+<dl compact><dt><b>Author:</b></dt><dd>Vianney Lecroart <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00058">58</a> of file <a class="el" href="a06027.html">message.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Seek fonctionnality</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0">TSeekOrigin</a> { <a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw0">begin</a>,
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw1">current</a>,
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw2">end</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_2">getStreamName</a> () const </td></tr>
+
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a> { <a class="el" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew6">UseDefault</a>,
+<a class="el" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew1">Binary</a>,
+<a class="el" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew4">String</a>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea0">assignFromSubMessage</a> (const <a class="el" href="a02918.html">CMessage</a> &amp;msgin)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama0">buffer</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama1">bufferToFill</a> (<a class="el" href="a04558.html#a11">uint32</a> msgsize)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea3">changeType</a> (const std::string &amp;name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea4">clear</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the message. <a href="#NLNET_1_1CMessagea4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea5">CMessage</a> (const <a class="el" href="a02918.html">CMessage</a> &amp;other)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <a href="#NLNET_1_1CMessagea5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea6">CMessage</a> (<a class="el" href="a02271.html">NLMISC::CMemStream</a> &amp;memstr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea7">CMessage</a> (const std::string &amp;name="", bool inputStream=false, <a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a> streamformat=UseDefault, <a class="el" href="a04558.html#a11">uint32</a> defaultCapacity=1000)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea8">CMessage</a> (<a class="el" href="a03449.html">NLMISC::CStringIdArray</a> &amp;sida, const std::string &amp;name="", bool inputStream=false, <a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a> streamformat=UseDefault, <a class="el" href="a04558.html#a11">uint32</a> defaultCapacity=1000)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02271.html">NLMISC::CMemStream</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea9">extractStreamFromPos</a> (<a class="el" href="a04558.html#a10">sint32</a> pos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an input stream containing the stream beginning in the message at the specified pos. <a href="#NLNET_1_1CMessagea9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama5">fastRead</a> (T &amp;<a class="el" href="a04223.html#a658">value</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (T &amp;val)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama7">fastWrite</a> (const T &amp;<a class="el" href="a04223.html#a658">value</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama8">fill</a> (const <a class="el" href="a04558.html#a7">uint8</a> *srcbuf, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea14">getHeaderSize</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size, in byte of the header that contains the type name of the message or the type number. <a href="#NLNET_1_1CMessagea14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea15">getId</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the type id of this message is available. <a href="#NLNET_1_1CMessagea15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea16">getName</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama9">getPos</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Const and not-virtual <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a>, for direct use. Caution: should not be overloaded in a child class. <a href="#NLMISC_1_1CStringStreama9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a> () throw (EStream)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if a sub message has been locked. <a href="#NLNET_1_1CMessagea19"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increase the buffer size if 'len' can't enter, otherwise, do nothing. <a href="#NLMISC_1_1CStringStreama11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea21">invert</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama0">isReading</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is this stream a Read/Input stream? <a href="#NLMISC_1_1IStreama0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama3">isXML</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea24">length</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea25">lengthR</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the "read" message size (number of bytes to read) (note: see comment about _LengthR). <a href="#NLNET_1_1CMessagea25"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea26">lockSubMessage</a> (<a class="el" href="a04558.html#a11">uint32</a> subMsgSize)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea27">operator=</a> (const <a class="el" href="a02918.html">CMessage</a> &amp;other)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. <a href="#NLNET_1_1CMessagea27"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama17">poke</a> (T <a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a10">sint32</a> pos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea29">readType</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea30">readTypeAtCurrentPos</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the message name (input message only) and advance the current pos. <a href="#NLNET_1_1CMessagea30"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama18">reserve</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama19">resetBufPos</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama20">resetPtrTable</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Force to reset the ptr table. <a href="#NLMISC_1_1CStringStreama20"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama21">resize</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a587">size</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resize the buffer. <a href="#NLMISC_1_1CStringStreama21"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a> (<a class="el" href="a04558.html#a10">sint32</a> <a class="el" href="a04223.html#a586">offset</a>, <a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0">TSeekOrigin</a> origin) throw (EStream)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T0, class T1, class T2, class T3, class T4, class T5&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea36">serial</a> (T0 &amp;a, T1 &amp;b, T2 &amp;c, T3 &amp;d, T4 &amp;e, T5 &amp;f)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T0, class T1, class T2, class T3, class T4&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea37">serial</a> (T0 &amp;a, T1 &amp;b, T2 &amp;c, T3 &amp;d, T4 &amp;e)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T0, class T1, class T2, class T3&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea38">serial</a> (T0 &amp;a, T1 &amp;b, T2 &amp;c, T3 &amp;d)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T0, class T1, class T2&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea39">serial</a> (T0 &amp;a, T1 &amp;b, T2 &amp;c)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T0, class T1&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea40">serial</a> (T0 &amp;a, T1 &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (T &amp;obj)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Template serialisation (should take the one from <a class="el" href="a02270.html">IStream</a>). <a href="#NLNET_1_1CMessagea41"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea42">serialBit</a> (bool &amp;bit)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method inherited from <a class="el" href="a02270.html">IStream</a>. <a href="#NLNET_1_1CMessagea42"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method inherited from <a class="el" href="a02270.html">IStream</a>. <a href="#NLMISC_1_1CStringStreama30"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama6">serialBufferWithSize</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea45">serialCont</a> (std::vector&lt; bool &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea45"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea46">serialCont</a> (std::vector&lt; <a class="el" href="a04558.html#a6">sint8</a> &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;sint8&gt;. <a href="#NLNET_1_1CMessagea46"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea47">serialCont</a> (std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;uint8&gt;. <a href="#NLNET_1_1CMessagea47"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class K, class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea48">serialCont</a> (std::multimap&lt; K, T &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea48"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class K, class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea49">serialCont</a> (std::map&lt; K, T &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea49"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea50">serialCont</a> (std::multiset&lt; T &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea50"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea51">serialCont</a> (std::set&lt; T &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea51"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea52">serialCont</a> (std::deque&lt; T &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea52"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea53">serialCont</a> (std::list&lt; T &gt; &amp;cont)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLNET_1_1CMessagea53"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (std::vector&lt; T &gt; &amp;cont)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama7">serialEnum</a> (T &amp;em)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Template enum serialisation. Serialized as a sint32. <a href="#NLMISC_1_1IStreama7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama8">serialMemStream</a> (CMemStream &amp;b)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serial memstream, bitmemstream... <a href="#NLMISC_1_1IStreama8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea57">serialMessage</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msg)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encapsulate/decapsulate another message inside the current message. <a href="#NLNET_1_1CMessagea57"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama47">setStringMode</a> (bool stringmode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set string mode. <a href="#NLMISC_1_1CStringStreama47"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea59">setType</a> (const std::string &amp;name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the message type as a string and put it in the buffer if we are in writing mode. <a href="#NLNET_1_1CMessagea59"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea60">setType</a> (<a class="el" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the message type as a number (in range 0..32767) and put it in the buffer if we are in writing mode. <a href="#NLNET_1_1CMessagea60"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama48">size</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size of the buffer (can be greater than the length, especially in output mode). <a href="#NLMISC_1_1CStringStreama48"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama49">stringMode</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return string mode. <a href="#NLMISC_1_1CStringStreama49"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea63">toString</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea64">typeIsSet</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagea65">unlockSubMessage</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">String-specific methods</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_0">serialHex</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;b)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialisation in hexadecimal. <a href="#NLNET_1_1CMessagez1974_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_1">serialSeparatedBufferIn</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input: read len bytes at most from the stream until the next separator, and return the number of bytes read. The separator is then skipped. <a href="#NLNET_1_1CMessagez1974_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_2">serialSeparatedBufferOut</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output: writes len bytes from buf into the stream. <a href="#NLNET_1_1CMessagez1974_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Base types serialisation, redefined for string mode</div></td></tr>
+<tr><td colspan="2"><div class="groupText">Those method are a specialisation of template method "void serial(T&amp;)". <br><br></div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_0">serial</a> (<a class="el" href="a03924.html">ucstring</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_1">serial</a> (std::string &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_2">serial</a> (char &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_3">serial</a> (bool &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_4">serial</a> (double &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_5">serial</a> (float &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_6">serial</a> (<a class="el" href="a04558.html#a12">sint64</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_7">serial</a> (<a class="el" href="a04558.html#a13">uint64</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_8">serial</a> (<a class="el" href="a04558.html#a10">sint32</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_9">serial</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_10">serial</a> (<a class="el" href="a04558.html#a8">sint16</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_11">serial</a> (<a class="el" href="a04558.html#a9">uint16</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_12">serial</a> (<a class="el" href="a04558.html#a6">sint8</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_13">serial</a> (<a class="el" href="a04558.html#a7">uint8</a> &amp;b)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">String-specific methods</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_0">serialHex</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;b)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialisation in hexadecimal. <a href="#NLNET_1_1CMessagez1974_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_1">serialSeparatedBufferIn</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input: read len bytes at most from the stream until the next separator, and return the number of bytes read. The separator is then skipped. <a href="#NLNET_1_1CMessagez1974_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_2">serialSeparatedBufferOut</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output: writes len bytes from buf into the stream. <a href="#NLNET_1_1CMessagez1974_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Base types serialisation, redefined for string mode</div></td></tr>
+<tr><td colspan="2"><div class="groupText">Those method are a specialisation of template method "void serial(T&amp;)". <br><br></div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_0">serial</a> (<a class="el" href="a03924.html">ucstring</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_1">serial</a> (std::string &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_2">serial</a> (char &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_3">serial</a> (bool &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_4">serial</a> (double &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_5">serial</a> (float &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_6">serial</a> (<a class="el" href="a04558.html#a12">sint64</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_7">serial</a> (<a class="el" href="a04558.html#a13">uint64</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_8">serial</a> (<a class="el" href="a04558.html#a10">sint32</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_9">serial</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_10">serial</a> (<a class="el" href="a04558.html#a8">sint16</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_11">serial</a> (<a class="el" href="a04558.html#a9">uint16</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_12">serial</a> (<a class="el" href="a04558.html#a6">sint8</a> &amp;b)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1972_13">serial</a> (<a class="el" href="a04558.html#a7">uint8</a> &amp;b)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">String-specific methods</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_0">serialHex</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;b)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialisation in hexadecimal. <a href="#NLNET_1_1CMessagez1974_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_1">serialSeparatedBufferIn</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Input: read len bytes at most from the stream until the next separator, and return the number of bytes read. The separator is then skipped. <a href="#NLNET_1_1CMessagez1974_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagez1974_2">serialSeparatedBufferOut</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output: writes len bytes from buf into the stream. <a href="#NLNET_1_1CMessagez1974_2"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreame0">getVersionException</a> (bool &amp;throwOnOlder, bool &amp;throwOnNewer)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagee1">setDefaultStringMode</a> (bool stringmode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set default stream mode. <a href="#NLNET_1_1CMessagee1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreame1">setVersionException</a> (bool throwOnOlder, bool throwOnNewer)</td></tr>
+
+<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a></td></tr>
+
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessageb0">init</a> (const std::string &amp;name, <a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a> streamformat)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility method. <a href="#NLNET_1_1CMessageb0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the serialized length (number of bytes written or read). <a href="#NLMISC_1_1CStringStreamb1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessageb2">resetSubMessageInternals</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility method. <a href="#NLNET_1_1CMessageb2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>template&lt;class T&gt; void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a> (T &amp;cont)</td></tr>
+
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>CObjectVector&lt; <a class="el" href="a04558.html#a7">uint8</a>, false &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamp2">_DefaultCapacity</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a></td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager1">_Id</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager3">_Name</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03449.html">NLMISC::CStringIdArray</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html#NLNET_1_1CMessagev0">_DefaultStringMode</a> = false</td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLMISC_1_1IStreamz2036_0" doxytag="NLNET::CMessage::TSeekOrigin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0">NLMISC::IStream::TSeekOrigin</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Parameters for <a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_3">seek()</a>. begin seek from the begining of the stream. current seek from the current location of the stream pointer. end seek from the end of the stream.<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw0" doxytag="begin" ></a>begin</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw1" doxytag="current" ></a>current</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw2" doxytag="end" ></a>end</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00549">549</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+<div class="fragment"><pre>00549 { <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw0">begin</a>, <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw1">current</a>, <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw2">end</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagew5" doxytag="NLNET::CMessage::TStreamFormat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a02918.html#NLNET_1_1CMessagew5">NLNET::CMessage::TStreamFormat</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CMessagew5NLNET_1_1CMessagew6" doxytag="UseDefault" ></a>UseDefault</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CMessagew5NLNET_1_1CMessagew1" doxytag="Binary" ></a>Binary</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CMessagew5NLNET_1_1CMessagew4" doxytag="String" ></a>String</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00062">62</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+<div class="fragment"><pre>00062 { <a class="code" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew6">UseDefault</a>, <a class="code" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew1">Binary</a>, <a class="code" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew4">String</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLNET_1_1CMessagea8" doxytag="NLNET::CMessage::CMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CMessage::CMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03449.html">NLMISC::CStringIdArray</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>sida</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em> = "", </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>inputStream</em> = false, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>streamformat</em> = UseDefault, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>defaultCapacity</em> = 1000</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00050">50</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06026.html#l00072">init()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00050 :
+00051 <a class="code" href="a02271.html">NLMISC::CMemStream</a> (inputStream, <span class="keyword">false</span>, defaultCapacity),
+00052 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a>(<span class="keyword">false</span>), <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a>(<span class="keyword">false</span>), <a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a> (&amp;sida), <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a>(0), <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a>(0), <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a>(0xFFFFFFFF), <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> (<span class="keyword">false</span>)
+00053 {
+00054 <a class="code" href="a02918.html#NLNET_1_1CMessageb0">init</a>( name, streamformat );
+00055 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea7" doxytag="NLNET::CMessage::CMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CMessage::CMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em> = "", </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>inputStream</em> = false, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>streamformat</em> = UseDefault, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>defaultCapacity</em> = 1000</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00061">61</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06026.html#l00072">init()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00061 :
+00062 <a class="code" href="a02271.html">NLMISC::CMemStream</a> (inputStream, <span class="keyword">false</span>, defaultCapacity),
+00063 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a>(<span class="keyword">false</span>), <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a>(<span class="keyword">false</span>), <a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a> (NULL), <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a>(0), <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a>(0), <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a>(0xFFFFFFFF), <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> (<span class="keyword">false</span>)
+00064 {
+00065 <a class="code" href="a02918.html#NLNET_1_1CMessageb0">init</a>( name, streamformat );
+00066 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea6" doxytag="NLNET::CMessage::CMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CMessage::CMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02271.html">NLMISC::CMemStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>memstr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00091">91</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06026.html#l00319">readType()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+<div class="fragment"><pre>00091 :
+00092 <a class="code" href="a02271.html">NLMISC::CMemStream</a>( memstr ),
+00093 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a>(<span class="keyword">false</span>), <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a>(<span class="keyword">false</span>), <a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a> (NULL), <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a>(0), <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a>(0), <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a>(0xFFFFFFFF), <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> (<span class="keyword">false</span>)
+00094 {
+00095 <a class="code" href="a04558.html#a10">sint32</a> pos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>();
+00096 <span class="keywordtype">bool</span> reading = <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>();
+00097 <span class="keywordflow">if</span> ( reading ) <span class="comment">// force input mode to read the type</span>
+00098 <a class="code" href="a02918.html#NLNET_1_1CMessagea29">readType</a>(); <span class="comment">// sets _TypeSet, _HeaderSize and _LengthR</span>
+00099 <span class="keywordflow">else</span>
+00100 <a class="code" href="a02918.html#NLNET_1_1CMessagea21">invert</a>(); <span class="comment">// calls readType()</span>
+00101 <span class="keywordflow">if</span> ( ! reading )
+00102 <a class="code" href="a02918.html#NLNET_1_1CMessagea21">invert</a>(); <span class="comment">// set ouput mode back if necessary</span>
+00103 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( pos, begin ); <span class="comment">// sets the same position as the one in the memstream</span>
+00104 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea5" doxytag="NLNET::CMessage::CMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CMessage::CMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>other</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Copy constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00110">110</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06026.html#l00118">operator=()</a>.
+<p>
+<div class="fragment"><pre>00111 {
+00112 <a class="code" href="a02918.html#NLNET_1_1CMessagea27">operator= </a>(other);
+00113 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CMessagea0" doxytag="NLNET::CMessage::assignFromSubMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::assignFromSubMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>msgin</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Similar to operator=, but makes the current message contain *only* the locked sub message in msgin or the whole msgin if it is not locked<p>
+Preconditions:<ul>
+<li>msgin is an input message (<a class="el" href="a02270.html#NLMISC_1_1IStreama0">isReading()</a>)</li><li>The current message is blank (new or reset with <a class="el" href="a02918.html#NLNET_1_1CMessagea4">clear()</a>)</li></ul>
+<p>
+Postconditions:<ul>
+<li>If msgin has been locked using <a class="el" href="a02918.html#NLNET_1_1CMessagea26">lockSubMessage()</a>, the current message contains only the locked sub message in msgin, otherwise the current message is exactly msgin</li><li>The current message is an input message, it is not locked</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00151">151</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00263">_LengthR</a>, <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a05979.html#l00238">NLMISC::CMemStream::buffer()</a>, <a class="el" href="a05979.html#l00277">NLMISC::CMemStream::fill()</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, and <a class="el" href="a06026.html#l00319">readType()</a>.
+<p>
+<div class="fragment"><pre>00152 {
+00153 <a class="code" href="a04199.html#a6">nlassert</a>( msgin.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00154 <a class="code" href="a04199.html#a6">nlassert</a>( ! _TypeSet );
+00155 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00156 <a class="code" href="a02918.html#NLNET_1_1CMessagea21">invert</a>();
+00157
+00158 <span class="keywordflow">if</span> ( msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>() )
+00159 {
+00160 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama8">fill</a>( msgin.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama0">buffer</a>() + msgin.<a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a>, msgin.<a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a>-msgin.<a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a> );
+00161 <a class="code" href="a02918.html#NLNET_1_1CMessagea29">readType</a>();
+00162 }
+00163 <span class="keywordflow">else</span>
+00164 {
+00165 <a class="code" href="a02918.html#NLNET_1_1CMessagea27">operator=</a>( msgin );
+00166 }
+00167 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama0" doxytag="NLNET::CMessage::buffer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a04558.html#a7">uint8</a>* NLMISC::CMemStream::buffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns a pointer to the message buffer (read only) Returns NULL if the buffer is empty
+<p>
+Definition at line <a class="el" href="a05979.html#l00238">238</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a05482.html#l00652">NLMISC::displayBitStream()</a>, <a class="el" href="a06026.html#l00460">extractStreamFromPos()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, <a class="el" href="a05482.html#l00551">NLMISC::CBitMemStream::serialMemStream()</a>, and <a class="el" href="a06026.html#l00472">serialMessage()</a>.
+<p>
+<div class="fragment"><pre>00239 {
+00240 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00241 <span class="comment">/* if ( _Buffer.empty() )</span>
+00242 <span class="comment"> {</span>
+00243 <span class="comment"> return NULL;</span>
+00244 <span class="comment"> }</span>
+00245 <span class="comment"> else</span>
+00246 <span class="comment"> {</span>
+00247 <span class="comment"> return &amp;(*_Buffer.begin());</span>
+00248 <span class="comment"> }*/</span>
+00249 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama1" doxytag="NLNET::CMessage::bufferToFill" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a>* NLMISC::CMemStream::bufferToFill </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>msgsize</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resize the stream with the specified size, set the current position at the beginning of the stream and return a pointer to the stream buffer.<p>
+Precondition: the stream is an input stream.<p>
+Suggested usage: construct an input stream, resize and get the buffer using bufferToFillAndRead(), fill it with raw data using any filling function (warning: don't fill more than 'msgsize' bytes!), then you are ready to read, using <a class="el" href="a02271.html#NLNET_1_1CMessagea41">serial()</a>, the data you've just filled.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama1">NLMISC::CBitMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00306">306</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; uint8, false &gt;::resize()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00460">extractStreamFromPos()</a>, <a class="el" href="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, and <a class="el" href="a06026.html#l00472">serialMessage()</a>.
+<p>
+<div class="fragment"><pre>00307 {
+00308 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00309 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00310 <span class="preprocessor">#endif</span>
+00311 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( msgsize == 0 )
+00312 <span class="keywordflow">return</span> NULL;
+00313
+00314 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize( msgsize );
+00315 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00316 <span class="comment">/*if ( ! isReading() )</span>
+00317 <span class="comment"> _BufPos += msgsize;*/</span>
+00318 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00319 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea3" doxytag="NLNET::CMessage::changeType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::changeType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00297">297</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00298 {
+00299 <a class="code" href="a04558.html#a10">sint32</a> prevPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>();
+00300 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( <span class="keyword">sizeof</span>(<a class="code" href="a04558.html#a11">uint32</a>)+<span class="keyword">sizeof</span>(<a class="code" href="a04558.html#a7">uint8</a>), begin );
+00301 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> ((std::string&amp;)name);
+00302 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( prevPos, begin );
+00303 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea4" doxytag="NLNET::CMessage::clear" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::clear </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Clears the message.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama2">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a06026.html#l00398">398</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00263">_LengthR</a>, <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06026.html#l00041">NLNET::LockedSubMessageError</a>, and <a class="el" href="a05622.html#l00333">nlassertex</a>.
+<p>
+Referenced by <a class="el" href="a06138.html#l00085">NLNET::CPacsClient::initMessage()</a>.
+<p>
+<div class="fragment"><pre>00399 {
+00400 <a class="code" href="a04199.html#a8">nlassertex</a>( (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) || (!<a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>()), (<span class="stringliteral">"Clearing %s"</span>, LockedSubMessageError) );
+00401
+00402 CMemStream::clear ();
+00403 <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> = <span class="keyword">false</span>;
+00404 <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a> = 0;
+00405 <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a> = 0;
+00406 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea9" doxytag="NLNET::CMessage::extractStreamFromPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02271.html">NLMISC::CMemStream</a> NLNET::CMessage::extractStreamFromPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return an input stream containing the stream beginning in the message at the specified pos.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00460">460</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00238">NLMISC::CMemStream::buffer()</a>, <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06027.html#l00104">length()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+<div class="fragment"><pre>00461 {
+00462 <a class="code" href="a02271.html">NLMISC::CMemStream</a> msg( <span class="keyword">true</span> );
+00463 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a> = <a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>() - pos;
+00464 memcpy( msg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama1">bufferToFill</a>( len ), <a class="code" href="a02271.html#NLMISC_1_1CStringStreama0">buffer</a>() + pos, <a class="code" href="a04223.html#a571">len</a> );
+00465 <span class="keywordflow">return</span> msg;
+00466 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama5" doxytag="NLNET::CMessage::fastRead" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fastRead </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00404">404</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00405 {
+00406 <span class="comment">//nldebug( "MEMSTREAM: Reading %u-byte value in %p at pos %u", sizeof(value), this, _BufPos - _Buffer.getPtr() );</span>
+00407 <span class="comment">// Check that we don't read more than there is to read</span>
+00408 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>()+<span class="keyword">sizeof</span>(<a class="code" href="a04223.html#a658">value</a>) &gt; <a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>() ) <span class="comment">// calls virtual length (cf. sub messages)</span>
+00409 {
+00410 <span class="keywordflow">throw</span> EStreamOverflow();
+00411 }
+00412 <span class="comment">// Serialize in</span>
+00413 <a class="code" href="a04223.html#a658">value</a> = *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00414 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <span class="keyword">sizeof</span>(<a class="code" href="a04223.html#a658">value</a>);
+00415 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama6" doxytag="NLNET::CMessage::fastSerial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fastSerial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>val</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00371">371</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, and <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00561">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00372 {
+00373 <span class="preprocessor">#ifdef NL_LITTLE_ENDIAN</span>
+00374 <span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00375 {
+00376 <span class="comment">// Check that we don't read more than there is to read</span>
+00377 <span class="comment">// TODO OPTIM we can remove the check if we want to be faster (50ms-&gt;43ms for 1 million serial)</span>
+00378 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>()+<span class="keyword">sizeof</span>(T) &gt; <a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>() ) <span class="comment">// calls virtual length (cf. sub messages)</span>
+00379 <span class="keywordflow">throw</span> EStreamOverflow();
+00380 <span class="comment">// Serialize in</span>
+00381 val = *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00382 }
+00383 <span class="keywordflow">else</span>
+00384 {
+00385 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (<span class="keyword">sizeof</span>(T));
+00386 *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = val;
+00387 }
+00388 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <span class="keyword">sizeof</span> (T);
+00389 <span class="preprocessor">#else // NL_LITTLE_ENDIAN</span>
+00390 <span class="preprocessor"></span> IStream::serial( val );
+00391 <span class="preprocessor">#endif // NL_LITTLE_ENDIAN</span>
+00392 <span class="preprocessor"></span> }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama7" doxytag="NLNET::CMessage::fastWrite" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fastWrite </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00395">395</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00396 {
+00397 <span class="comment">//nldebug( "MEMSTREAM: Writing %u-byte value in %p at pos %u", sizeof(value), this, _BufPos - _Buffer.getPtr() );</span>
+00398 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (<span class="keyword">sizeof</span>(T));
+00399 *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a04223.html#a658">value</a>;
+00400 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <span class="keyword">sizeof</span> (T);
+00401 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama8" doxytag="NLNET::CMessage::fill" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fill </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>srcbuf</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resize the message buffer and fill data at position 0. Input stream: the current position is set at the beginning; Output stream: the current position is set after the filled data.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama10">NLMISC::CBitMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00277">277</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; uint8, false &gt;::resize()</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, and <a class="el" href="a06527.html#l00045">NL3D::CTextureMem::doGenerate()</a>.
+<p>
+<div class="fragment"><pre>00278 {
+00279 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a> == 0) <span class="keywordflow">return</span>;
+00280
+00281 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize( len );
+00282 CFastMem::memcpy( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(), srcbuf, <a class="code" href="a04223.html#a571">len</a> );
+00283 <span class="keywordflow">if</span> (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00284 {
+00285 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00286 }
+00287 <span class="keywordflow">else</span>
+00288 {
+00289 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size();
+00290 }
+00291 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea14" doxytag="NLNET::CMessage::getHeaderSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLNET::CMessage::getHeaderSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the size, in byte of the header that contains the type name of the message or the type number.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00309">309</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00266">_HeaderSize</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06580.html#l00414">NLNET::getNameOfMessageOrTransportClass()</a>.
+<p>
+<div class="fragment"><pre>00310 {
+00311 <a class="code" href="a04199.html#a6">nlassert</a> (_HeaderSize != 0xFFFFFFFF);
+00312 <span class="keywordflow">return</span> <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a>;
+00313 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea15" doxytag="NLNET::CMessage::getId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a> NLNET::CMessage::getId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the type id of this message is available.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00432">432</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06468.html#l00054">NLMISC::CStringIdArray::TStringId</a>, and <a class="el" href="a06027.html#l00239">TypeHasAnId</a>.
+<p>
+Referenced by <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>.
+<p>
+<div class="fragment"><pre>00433 {
+00434 <a class="code" href="a04199.html#a6">nlassert</a> (_TypeSet &amp;&amp; TypeHasAnId);
+00435 <span class="keywordflow">return</span> <a class="code" href="a02918.html#NLNET_1_1CMessager1">_Id</a>;
+00436 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea16" doxytag="NLNET::CMessage::getName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CMessage::getName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the type name in string if available. Be sure that the message have the name of the message type In a callback driven by message name, <a class="el" href="a02918.html#NLNET_1_1CMessagea16">getName()</a> does not necessarily return the right name.
+<p>
+Definition at line <a class="el" href="a06026.html#l00411">411</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06026.html#l00362">readTypeAtCurrentPos()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a06027.html#l00240">TypeHasAName</a>.
+<p>
+Referenced by <a class="el" href="a06580.html#l00414">NLNET::getNameOfMessageOrTransportClass()</a>, <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>, <a class="el" href="a06645.html#l01091">NLNET::CUnifiedNetwork::send()</a>, <a class="el" href="a06645.html#l00406">NLNET::uncbMsgProcessing()</a>, and <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00412 {
+00413 <span class="keywordflow">if</span> ( <a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>() )
+00414 {
+00415 <a class="code" href="a02918.html">CMessage</a>&amp; notconstMsg = const_cast&lt;CMessage&amp;&gt;(*this);
+00416 <a class="code" href="a04558.html#a10">sint32</a> savedPos = notconstMsg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>();
+00417 notconstMsg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( _SubMessagePosR, begin ); <span class="comment">// not really const... but removing the const from getName() would need too many const changes elsewhere</span>
+00418 std::string name = notconstMsg.<a class="code" href="a02918.html#NLNET_1_1CMessagea30">readTypeAtCurrentPos</a>();
+00419 notconstMsg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( savedPos, begin );
+00420 <span class="keywordflow">return</span> name;
+00421 }
+00422 <span class="keywordflow">else</span>
+00423 {
+00424 <a class="code" href="a04199.html#a6">nlassert</a> (_TypeSet &amp;&amp; TypeHasAName);
+00425 <span class="keywordflow">return</span> <a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a>;
+00426 }
+00427 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama9" doxytag="NLNET::CMessage::getPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a10">sint32</a> NLMISC::CMemStream::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Const and not-virtual <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a>, for direct use. Caution: should not be overloaded in a child class.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00159">159</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+<div class="fragment"><pre>00160 {
+00161 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00162 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama10" doxytag="NLNET::CMessage::getPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a10">sint32</a> NLMISC::CMemStream::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> throw (EStream)<code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the location of the stream pointer.<p>
+NB: If the stream doesn't support the seek fonctionnality, it throws <a class="el" href="a03808.html">ESeekNotSupported</a>. Default implementation: { throw <a class="el" href="a03808.html">ESeekNotSupported</a>; } <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>offset</em>&nbsp;</td><td>is the wanted offset from the origin. </td></tr>
+ <tr><td valign=top><em>origin</em>&nbsp;</td><td>is the origin of the seek </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>the new offset regarding from the origin. </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03808.html">ESeekNotSupported</a> SeekOrigin <a class="el" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a></dd></dl>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_1">NLMISC::IStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00153">153</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00297">changeType()</a>, <a class="el" href="a06026.html#l00091">CMessage()</a>, <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a06027.html#l00143">lockSubMessage()</a>, <a class="el" href="a06026.html#l00319">readType()</a>, <a class="el" href="a06026.html#l00362">readTypeAtCurrentPos()</a>, <a class="el" href="a05482.html#l00467">NLMISC::CBitMemStream::serial()</a>, <a class="el" href="a05482.html#l00591">NLMISC::CBitMemStream::serialCont()</a>, <a class="el" href="a05482.html#l00551">NLMISC::CBitMemStream::serialMemStream()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, and <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00154 {
+00155 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00156 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2036_2" doxytag="NLNET::CMessage::getStreamName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string NLMISC::IStream::getStreamName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get a name for this stream. maybe a fileName if FileStream. Default is to return "".
+<p>
+Reimplemented in <a class="el" href="a02653.html#NLMISC_1_1CIFilea9">NLMISC::CIFile</a>, and <a class="el" href="a03011.html#NLMISC_1_1COFilea5">NLMISC::COFile</a>.
+<p>
+Definition at line <a class="el" href="a06461.html#l00420">420</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06461.html#l00046">NLMISC::EStream::EStream()</a>.
+<p>
+<div class="fragment"><pre>00421 {
+00422 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00423 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreame0" doxytag="NLNET::CMessage::getVersionException" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::getVersionException </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>throwOnOlder</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>throwOnNewer</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the behavior of <a class="el" href="a02270.html">IStream</a> regarding input stream that are older/newer than the class. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion()</a> <a class="el" href="a02270.html#NLMISC_1_1IStreame1">setVersionException()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06461.html#l00078">78</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+References <a class="el" href="a06461.html#l00067">NLMISC::IStream::_ThrowOnNewer</a>, and <a class="el" href="a06461.html#l00066">NLMISC::IStream::_ThrowOnOlder</a>.
+<p>
+<div class="fragment"><pre>00079 {
+00080 throwOnOlder=_ThrowOnOlder;
+00081 throwOnNewer=_ThrowOnNewer;
+00082 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea19" doxytag="NLNET::CMessage::hasLockedSubMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CMessage::hasLockedSubMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if a sub message has been locked.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00175">175</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a06026.html#l00398">clear()</a>, <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, and <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00176 {
+00177 <span class="keywordflow">return</span> (<a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a> != 0);
+00178 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama11" doxytag="NLNET::CMessage::increaseBufferIfNecessary" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::increaseBufferIfNecessary </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>len</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Increase the buffer size if 'len' can't enter, otherwise, do nothing.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00358">358</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; uint8, false &gt;::resize()</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05979.html#l00395">NLMISC::CMemStream::fastWrite()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, and <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>.
+<p>
+<div class="fragment"><pre>00359 {
+00360 <a class="code" href="a04558.html#a11">uint32</a> oldBufferSize = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size();
+00361 <span class="keywordflow">if</span> (<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a04223.html#a571">len</a> &gt; oldBufferSize)
+00362 {
+00363 <span class="comment">// need to increase the buffer size</span>
+00364 <a class="code" href="a04558.html#a11">uint32</a> pos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00365 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize(oldBufferSize*2 + len);
+00366 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + pos;
+00367 }
+00368 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessageb0" doxytag="NLNET::CMessage::init" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02918.html#NLNET_1_1CMessagew5">TStreamFormat</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>streamformat</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Utility method.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00072">72</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06026.html#l00039">_DefaultStringMode</a>, <a class="el" href="a05979.html#l00113">NLMISC::CMemStream::setStringMode()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, and <a class="el" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew6">UseDefault</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00050">CMessage()</a>.
+<p>
+<div class="fragment"><pre>00073 {
+00074 <span class="keywordflow">if</span> ( streamformat == <a class="code" href="a02918.html#NLNET_1_1CMessagew5NLNET_1_1CMessagew6">UseDefault</a> )
+00075 {
+00076 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama47">setStringMode</a>( _DefaultStringMode );
+00077 }
+00078 <span class="keywordflow">else</span>
+00079 {
+00080 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama47">setStringMode</a>( streamformat == String );
+00081 }
+00082
+00083 <span class="keywordflow">if</span> (!name.empty())
+00084 <a class="code" href="a02918.html#NLNET_1_1CMessagea60">setType</a> (name);
+00085 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea21" doxytag="NLNET::CMessage::invert" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::invert </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Transforms the message from input to output or from output to input
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama12">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a06027.html#l00198">198</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06026.html#l00041">NLNET::LockedSubMessageError</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, and <a class="el" href="a06026.html#l00319">readType()</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a06026.html#l00091">CMessage()</a>, <a class="el" href="a06645.html#l01983">NLNET::NLMISC_COMMAND()</a>, and <a class="el" href="a06026.html#l00472">serialMessage()</a>.
+<p>
+<div class="fragment"><pre>00199 {
+00200 <a class="code" href="a04199.html#a8">nlassertex</a>( (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) || (!<a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>()), (<span class="stringliteral">"Inverting %s"</span>, LockedSubMessageError) );
+00201
+00202 CMemStream::invert();
+00203
+00204 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00205 {
+00206 <span class="comment">// Write -&gt; Read: skip the header </span>
+00207 <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> = <span class="keyword">false</span>;
+00208 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() != 0 )
+00209 <a class="code" href="a02918.html#NLNET_1_1CMessagea29">readType</a>();
+00210 }
+00211 <span class="comment">// For Read -&gt; Write, please use clear()</span>
+00212 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama0" doxytag="NLNET::CMessage::isReading" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::isReading </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Is this stream a Read/Input stream?
+<p>
+
+<p>
+Definition at line <a class="el" href="a06463.html#l00064">64</a> of file <a class="el" href="a06463.html">stream_inline.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00884">NLMISC::IStream::_InputStream</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a06152.html#l00136">NL3D::CParticleSystemShape::buildFromPS()</a>, <a class="el" href="a06026.html#l00398">clear()</a>, <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a06026.html#l00091">CMessage()</a>, <a class="el" href="a05482.html#l00673">NLMISC::CBitMemStream::displayStream()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05979.html#l00277">NLMISC::CMemStream::fill()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a05482.html#l00737">NLMISC::CBitMemStream::getSerialItem()</a>, <a class="el" href="a05483.html#l00730">NLMISC::CBitMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06107.html#l00111">NLMISC::COXml::init()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, <a class="el" href="a05482.html#l00172">NLMISC::CBitMemStream::internalSerial()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05483.html#l00418">NLMISC::CBitMemStream::invert()</a>, <a class="el" href="a06027.html#l00104">length()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::length()</a>, <a class="el" href="a05486.html#l00109">NLMISC::CBitmap::load()</a>, <a class="el" href="a05486.html#l02582">NLMISC::CBitmap::loadSize()</a>, <a class="el" href="a06027.html#l00143">lockSubMessage()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a05483.html#l00710">NLMISC::CBitMemStream::pointNextByte()</a>, <a class="el" href="a05979.html#l00190">NLMISC::CMemStream::poke()</a>, <a class="el" href="a05482.html#l00346">NLMISC::CBitMemStream::poke()</a>, <a class="el" href="a05482.html#l00375">NLMISC::CBitMemStream::pokeBits()</a>, <a class="el" href="a05482.html#l00415">NLMISC::CBitMemStream::readBits()</a>, <a class="el" href="a05486.html#l01800">NLMISC::CBitmap::readTGA()</a>, <a class="el" href="a06026.html#l00362">readTypeAtCurrentPos()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, <a class="el" href="a05482.html#l00275">NLMISC::CBitMemStream::reserveBits()</a>, <a class="el" href="a05483.html#l00382">NLMISC::CBitMemStream::resetBufPos()</a>, <a class="el" href="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06477.html#l00329">NLPACS::CSurfaceQuadTree::serial()</a>, <a class="el" href="a06477.html#l00246">NLPACS::CQuadBranch::serial()</a>, <a class="el" href="a06476.html#l00076">NL3D::CSurfaceLightGrid::CCellCorner::serial()</a>, <a class="el" href="a06471.html#l00115">NLMISC::CStringStream::serial()</a>, <a class="el" href="a06463.html#l00087">NLMISC::IStream::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a06350.html#l00065">NL3D::CInstanceGroup::CInstance::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06336.html#l00114">NLPACS::CRetrieverBank::serial()</a>, <a class="el" href="a06213.html#l00438">NL3D::CPSAttrib&lt; T &gt;::serial()</a>, <a class="el" href="a06193.html#l00216">NL3D::CPortal::serial()</a>, <a class="el" href="a06184.html#l00073">NL3D::CPointLightNamed::serial()</a>, <a class="el" href="a06179.html#l00230">NL3D::CPointLight::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, <a class="el" href="a06107.html#l00315">NLMISC::COXml::serial()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a06011.html#l00991">NL3D::CMeshMRMSkinnedGeom::serial()</a>, <a class="el" href="a05979.html#l00561">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05972.html#l01500">NLMISC::CMatrix::serial()</a>, <a class="el" href="a05968.html#l00438">NL3D::CMaterial::CLightMap::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05541.html#l00473">NLPACS::CChainQuad::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05482.html#l00447">NLMISC::CBitMemStream::serial()</a>, <a class="el" href="a05437.html#l00045">NL3D::CMaterialBase::CAnimatedTexture::serial()</a>, <a class="el" href="a05384.html#l00337">NLMISC::CAABBoxExt::serial()</a>, <a class="el" href="a05968.html#l00456">NL3D::CMaterial::CLightMap::serial2()</a>, <a class="el" href="a06471.html#l00253">NLMISC::CStringStream::serialBit()</a>, <a class="el" href="a05978.html#l00117">NLMISC::CMemStream::serialBit()</a>, <a class="el" href="a05482.html#l00100">NLMISC::CBitMemStream::serialBit()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05482.html#l00073">NLMISC::CBitMemStream::serialBuffer()</a>, <a class="el" href="a06462.html#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a06471.html#l00340">NLMISC::CStringStream::serialCont()</a>, <a class="el" href="a06461.html#l00318">NLMISC::IStream::serialCont()</a>, <a class="el" href="a05482.html#l00591">NLMISC::CBitMemStream::serialCont()</a>, <a class="el" href="a06462.html#l00261">NLMISC::IStream::serialEnum()</a>, <a class="el" href="a06710.html#l00883">NL3D::CVertexBuffer::serialHeader()</a>, <a class="el" href="a06471.html#l00375">NLMISC::CStringStream::serialHex()</a>, <a class="el" href="a05979.html#l00929">NLMISC::CMemStream::serialHex()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06005.html#l01918">NL3D::CMeshMRMGeom::serialLodVertexData()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, <a class="el" href="a05482.html#l00551">NLMISC::CBitMemStream::serialMemStream()</a>, <a class="el" href="a06026.html#l00472">serialMessage()</a>, <a class="el" href="a06462.html#l01271">NLMISC::IStream::serialMultimap()</a>, <a class="el" href="a06710.html#l00741">NL3D::CVertexBuffer::serialOldV1Minus()</a>, <a class="el" href="a06462.html#l00390">NLMISC::IStream::serialPtr()</a>, <a class="el" href="a06471.html#l00041">NLMISC::CStringStream::serialSeparatedBufferIn()</a>, <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>, <a class="el" href="a06471.html#l00071">NLMISC::CStringStream::serialSeparatedBufferOut()</a>, <a class="el" href="a06107.html#l00160">NLMISC::COXml::serialSeparatedBufferOut()</a>, <a class="el" href="a05978.html#l00338">NLMISC::CMemStream::serialSeparatedBufferOut()</a>, <a class="el" href="a06462.html#l00955">NLMISC::IStream::serialSTLCont()</a>, <a class="el" href="a06462.html#l00905">NLMISC::IStream::serialSTLContLen()</a>, <a class="el" href="a06462.html#l01162">NLMISC::IStream::serialSTLContLenPolyPtr()</a>, <a class="el" href="a06462.html#l01056">NLMISC::IStream::serialSTLContLenPtr()</a>, <a class="el" href="a06462.html#l01192">NLMISC::IStream::serialSTLContPolyPtr()</a>, <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>, <a class="el" href="a06710.html#l01008">NL3D::CVertexBuffer::serialSubset()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>, <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>, <a class="el" href="a05486.html#l02139">NLMISC::CBitmap::writeTGA()</a>, <a class="el" href="a06107.html#l00556">NLMISC::COXml::xmlBreakLineInternal()</a>, <a class="el" href="a06107.html#l00587">NLMISC::COXml::xmlCommentInternal()</a>, <a class="el" href="a06107.html#l00488">NLMISC::COXml::xmlPopInternal()</a>, <a class="el" href="a06107.html#l00394">NLMISC::COXml::xmlPushBeginInternal()</a>, <a class="el" href="a06107.html#l00457">NLMISC::COXml::xmlPushEndInternal()</a>, and <a class="el" href="a06107.html#l00522">NLMISC::COXml::xmlSetAttribInternal()</a>.
+<p>
+<div class="fragment"><pre>00065 {
+00066 <span class="keywordflow">return</span> _InputStream;
+00067 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama3" doxytag="NLNET::CMessage::isXML" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::isXML </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00221">221</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00803">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00221 { <span class="keywordflow">return</span> _XML; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea24" doxytag="NLNET::CMessage::length" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a11">uint32</a> NLNET::CMessage::length </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the length (size) of the message, in bytes. If <a class="el" href="a02270.html#NLMISC_1_1IStreama0">isReading()</a>, it is the number of bytes that can be read, otherwise it is the number of bytes that have been written. Overloaded because uses a specific version of <a class="el" href="a02918.html#NLNET_1_1CMessagea25">lengthR()</a>.
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama15">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a06027.html#l00104">104</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06027.html#l00117">lengthR()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00460">extractStreamFromPos()</a>, <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, and <a class="el" href="a06026.html#l00472">serialMessage()</a>.
+<p>
+<div class="fragment"><pre>00105 {
+00106 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00107 {
+00108 <span class="keywordflow">return</span> <a class="code" href="a02918.html#NLNET_1_1CMessagea25">lengthR</a>();
+00109 }
+00110 <span class="keywordflow">else</span>
+00111 {
+00112 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>();
+00113 }
+00114 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea25" doxytag="NLNET::CMessage::lengthR" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLNET::CMessage::lengthR </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the "read" message size (number of bytes to read) (note: see comment about _LengthR).
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreamb0">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a06027.html#l00117">117</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06027.html#l00263">_LengthR</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06027.html#l00104">length()</a>, and <a class="el" href="a06027.html#l00143">lockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00118 {
+00119 <span class="keywordflow">return</span> <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a>;
+00120 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamb1" doxytag="NLNET::CMessage::lengthS" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLMISC::CMemStream::lengthS </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the serialized length (number of bytes written or read).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00502">502</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00404">NLMISC::CMemStream::fastRead()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06027.html#l00104">length()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::length()</a>, <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a06471.html#l00041">NLMISC::CStringStream::serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>.
+<p>
+<div class="fragment"><pre>00503 {
+00504 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); <span class="comment">// not calling getPos() because virtual and not const!</span>
+00505 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea26" doxytag="NLNET::CMessage::lockSubMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CMessage::lockSubMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>subMsgSize</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set an input message to look like, from a message callback's scope, as if it began at the current pos and ended at the current pos + msgSize, and read the header and return the name of the sub message.<p>
+This method provides a way to pass a big message containing a set of sub messages to their message callback, without copying each sub message to a new message. If you need to perform some actions that are not allowed with a locked message (see postconditions), use <a class="el" href="a02918.html#NLNET_1_1CMessagea0">assignFromSubMessage()</a>: the locked sub message in M1 can be copied to a new message M2 with 'M2.assignFromSubMessage( M1 )'.<p>
+Preconditions:<ul>
+<li>The message is an input message (<a class="el" href="a02270.html#NLMISC_1_1IStreama0">isReading()</a>)</li><li>msgEndPos &lt;= <a class="el" href="a02918.html#NLNET_1_1CMessagea24">length()</a></li><li><a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a> &gt;= <a class="el" href="a02918.html#NLNET_1_1CMessagea14">getHeaderSize()</a></li></ul>
+<p>
+Postconditions:<ul>
+<li>The sub message is ready to be read from</li><li><a class="el" href="a02918.html#NLNET_1_1CMessagea24">length()</a> returns the size of the sub message</li><li><a class="el" href="a02918.html#NLNET_1_1CMessagea16">getName()</a> return the name of the sub message</li><li>Unless you call <a class="el" href="a02918.html#NLNET_1_1CMessagea65">unlockSubMessage()</a>, the following actions will assert or raise an exception: Serializing more than the sub message size, <a class="el" href="a02918.html#NLNET_1_1CMessagea4">clear()</a>, <a class="el" href="a02918.html#NLNET_1_1CMessagea27">operator=()</a> (from/to), <a class="el" href="a02918.html#NLNET_1_1CMessagea21">invert()</a>.</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00143">143</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06027.html#l00263">_LengthR</a>, <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06027.html#l00117">lengthR()</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a06026.html#l00362">readTypeAtCurrentPos()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00144 {
+00145 <a class="code" href="a04558.html#a11">uint32</a> subMsgBeginPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>();
+00146 <a class="code" href="a04558.html#a11">uint32</a> subMsgEndPos = subMsgBeginPos + subMsgSize;
+00147 <a class="code" href="a04199.html#a8">nlassertex</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() &amp;&amp; (subMsgEndPos &lt;= <a class="code" href="a02918.html#NLNET_1_1CMessagea25">lengthR</a>()), (<span class="stringliteral">"%s %u %u"</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"R"</span>:<span class="stringliteral">"W"</span>, subMsgEndPos, <a class="code" href="a02918.html#NLNET_1_1CMessagea25">lengthR</a>()) );
+00148 std::string name = <a class="code" href="a02918.html#NLNET_1_1CMessagea30">readTypeAtCurrentPos</a>();
+00149 <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a> = subMsgBeginPos;
+00150 <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a> = subMsgEndPos;
+00151 <span class="keywordflow">return</span> name;
+00152 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea27" doxytag="NLNET::CMessage::operator=" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02918.html">CMessage</a> &amp; NLNET::CMessage::operator= </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>other</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Assignment operator.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00118">118</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00266">_HeaderSize</a>, <a class="el" href="a06027.html#l00268">_Id</a>, <a class="el" href="a06027.html#l00263">_LengthR</a>, <a class="el" href="a06027.html#l00257">_Name</a>, <a class="el" href="a06027.html#l00255">_SIDA</a>, <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06026.html#l00041">NLNET::LockedSubMessageError</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a06027.html#l00240">TypeHasAName</a>, and <a class="el" href="a06027.html#l00239">TypeHasAnId</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, and <a class="el" href="a06026.html#l00110">CMessage()</a>.
+<p>
+<div class="fragment"><pre>00119 {
+00120 <a class="code" href="a04199.html#a8">nlassertex</a>( (!other.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) || (!other.<a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>()), (<span class="stringliteral">"Storing %s"</span>, <a class="code" href="a05379.html#a32">LockedSubMessageError</a>) );
+00121 <a class="code" href="a04199.html#a8">nlassertex</a>( (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) || (!<a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>()), (<span class="stringliteral">"Assigning %s"</span>, LockedSubMessageError) );
+00122
+00123 CMemStream::operator= (other);
+00124 <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a>;
+00125 <a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a>;
+00126 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a>;
+00127 <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a>;
+00128 <a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a>;
+00129 <a class="code" href="a02918.html#NLNET_1_1CMessager1">_Id</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager1">_Id</a>;
+00130 <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a>;
+00131 <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a>;
+00132 <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a> = other.<a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a>;
+00133 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00134
+00135 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama17" doxytag="NLNET::CMessage::poke" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::poke </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T&nbsp;</td>
+ <td class="mdname" nowrap> <em>value</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>pos</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+When writing, fill a value previously reserved by <a class="el" href="a02271.html#NLMISC_1_1CStringStreama18">reserve()</a> (warning: you MUST have called <a class="el" href="a02271.html#NLMISC_1_1CStringStreama18">reserve()</a> with sizeof(T) before poking). Usually it's an alternative to use serialCont with a vector. Example: uint8 counter=0; sint32 counterPos = msgout.reserve( sizeof(counter) ); counter = serialSelectedItems( msgout ); msgout.poke( counter, counterPos );
+<p>
+Definition at line <a class="el" href="a05979.html#l00190">190</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00191 {
+00192 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00193 {
+00194 <a class="code" href="a04558.html#a7">uint8</a> *pokeBufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + pos;
+00195 <a class="code" href="a04199.html#a6">nlassert</a>( pokeBufPos + <span class="keyword">sizeof</span>(T) &lt;= _BufPos );
+00196 *(T*)pokeBufPos = <a class="code" href="a04223.html#a658">value</a>;
+00197 }
+00198 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea29" doxytag="NLNET::CMessage::readType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::readType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The message was filled with an CMemStream, Now, we'll get the message type on this buffer. This method updates _LengthR with the actual size of the buffer (it calls resetLengthR()).
+<p>
+Definition at line <a class="el" href="a06026.html#l00319">319</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00266">_HeaderSize</a>, <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06027.html#l00248">resetSubMessageInternals()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, <a class="el" href="a06468.html#l00054">NLMISC::CStringIdArray::TStringId</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a06026.html#l00091">CMessage()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, and <a class="el" href="a06026.html#l00472">serialMessage()</a>.
+<p>
+<div class="fragment"><pre>00320 {
+00321 <a class="code" href="a04199.html#a6">nlassert</a> (isReading ());
+00322
+00323 <span class="comment">// debug features, we number all packet to be sure that they are all sent and received</span>
+00324 <span class="comment">// \todo remove this debug feature when ok</span>
+00325
+00326 <span class="comment">// we remove the message from the message</span>
+00327 <a class="code" href="a02918.html#NLNET_1_1CMessageb2">resetSubMessageInternals</a>();
+00328 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> HeaderSize = 4;
+00329 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a> (HeaderSize, begin);
+00330 <span class="comment">// uint32 zeroValue;</span>
+00331 <span class="comment">// serial (zeroValue);</span>
+00332
+00333 <span class="comment">// Force binary mode for header</span>
+00334 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> = <span class="keyword">false</span>;
+00335
+00336 <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a641">format</a>;
+00337 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (format);
+00338 <span class="comment">//nldebug( "IN format = %hu", (uint16)format );</span>
+00339 <span class="keywordtype">bool</span> LongFormat = (<a class="code" href="a04223.html#a641">format</a> &amp; 1);
+00340
+00341 <span class="comment">// Set mode for the following of the buffer</span>
+00342 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> = (<a class="code" href="a04223.html#a641">format</a> &gt;&gt; 1) &amp; 1;
+00343 <span class="keywordflow">if</span> (LongFormat)
+00344 {
+00345 std::string name;
+00346 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00347 <a class="code" href="a02918.html#NLNET_1_1CMessagea60">setType</a> (name);
+00348 }
+00349 <span class="keywordflow">else</span>
+00350 {
+00351 <a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a> <span class="keywordtype">id</span>;
+00352 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>);
+00353 <a class="code" href="a02918.html#NLNET_1_1CMessagea60">setType</a> (<span class="keywordtype">id</span>);
+00354 }
+00355 <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>();
+00356 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea30" doxytag="NLNET::CMessage::readTypeAtCurrentPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CMessage::readTypeAtCurrentPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the message name (input message only) and advance the current pos.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00362">362</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00411">getName()</a>, and <a class="el" href="a06027.html#l00143">lockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00363 {
+00364 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00365
+00366 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> HeaderSize = 4;
+00367 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>() + HeaderSize, begin );
+00368
+00369 <span class="keywordtype">bool</span> sm = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a>;
+00370 _StringMode = <span class="keyword">false</span>;
+00371
+00372 <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a641">format</a>;
+00373 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( format );
+00374 <span class="keywordtype">bool</span> LongFormat = (<a class="code" href="a04223.html#a641">format</a> &amp; 1);
+00375 _StringMode = (<a class="code" href="a04223.html#a641">format</a> &gt;&gt; 1) &amp; 1;
+00376 <span class="keywordflow">if</span> ( LongFormat )
+00377 {
+00378 std::string name;
+00379 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( name );
+00380 _StringMode = sm;
+00381 <span class="keywordflow">return</span> name;
+00382 }
+00383 <span class="keywordflow">else</span>
+00384 <a class="code" href="a04199.html#a3">nlerror</a>( <span class="stringliteral">"Id not supported"</span> );
+00385
+00386 _StringMode = sm;
+00387 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00388 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama18" doxytag="NLNET::CMessage::reserve" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a10">sint32</a> NLMISC::CMemStream::reserve </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>len</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+When writing, skip 'len' bytes and return the position of the blank space for a future <a class="el" href="a02271.html#NLMISC_1_1CStringStreama17">poke()</a>. Warning: this has nothing to do with the semantics of <a class="el" href="a02271.html#NLMISC_1_1CStringStreama18">reserve()</a> in std::vector!
+<p>
+Definition at line <a class="el" href="a05979.html#l00168">168</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00169 {
+00170 <a class="code" href="a04558.html#a10">sint32</a> pos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00171 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00172 {
+00173 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a>( len );
+00174 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>;
+00175 }
+00176 <span class="keywordflow">return</span> pos;
+00177 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama19" doxytag="NLNET::CMessage::resetBufPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::resetBufPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+When you fill the buffer externaly (using bufferAsVector) you have to reset the BufPos calling this method<p>
+If you are using the stream only in output mode, you can use this method as a faster version of <a class="el" href="a02271.html#NLMISC_1_1CStringStreama2">clear()</a> *if you don't serialize pointers*.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama27">NLMISC::CBitMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00270">270</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, and <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>.
+<p>
+Referenced by <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00270 { <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama20" doxytag="NLNET::CMessage::resetPtrTable" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::resetPtrTable </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Force to reset the ptr table.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_0">NLMISC::IStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00352">352</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, and <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>.
+<p>
+<div class="fragment"><pre>00352 { IStream::resetPtrTable() ; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessageb2" doxytag="NLNET::CMessage::resetSubMessageInternals" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::resetSubMessageInternals </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Utility method.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00248">248</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06027.html#l00263">_LengthR</a>, and <a class="el" href="a06027.html#l00260">_SubMessagePosR</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00319">readType()</a>, and <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00249 {
+00250 <a class="code" href="a02918.html#NLNET_1_1CMessager5">_SubMessagePosR</a> = 0;
+00251 <a class="code" href="a02918.html#NLNET_1_1CMessager2">_LengthR</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size();
+00252 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama21" doxytag="NLNET::CMessage::resize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::resize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>size</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resize the buffer.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05978.html#l00235">235</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; uint8, false &gt;::resize()</a>, <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00236 {
+00237 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a587">size</a> == <a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>()) <span class="keywordflow">return</span>;
+00238 <span class="comment">// need to increase the buffer size</span>
+00239 <a class="code" href="a04558.html#a11">uint32</a> pos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00240 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize(size);
+00241 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + pos;
+00242 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama22" doxytag="NLNET::CMessage::seek" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::CMemStream::seek </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_0">TSeekOrigin</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>origin</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> throw (EStream)<code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Moves the stream pointer to a specified location.<p>
+Warning: in output mode, seek(end) does not point to the end of the serialized data, but on the end of the whole allocated buffer (see <a class="el" href="a02271.html#NLMISC_1_1CStringStreama48">size()</a>). If you seek back and want to return to the end of the serialized data, you have to store the position (a better way is to use <a class="el" href="a02271.html#NLMISC_1_1CStringStreama18">reserve()</a>/poke()).<p>
+NB: If the stream doesn't support the seek fonctionnality, it throws <a class="el" href="a03808.html">ESeekNotSupported</a>. Default implementation: { throw <a class="el" href="a03808.html">ESeekNotSupported</a>; } <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>offset</em>&nbsp;</td><td>is the wanted offset from the origin. </td></tr>
+ <tr><td valign=top><em>origin</em>&nbsp;</td><td>is the origin of the seek </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>true if seek sucessfull. </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03808.html">ESeekNotSupported</a> SeekOrigin <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a></dd></dl>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2036_3">NLMISC::IStream</a>.
+<p>
+Definition at line <a class="el" href="a05978.html#l00177">177</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00645">offset</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00297">changeType()</a>, <a class="el" href="a06026.html#l00091">CMessage()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a06580.html#l00414">NLNET::getNameOfMessageOrTransportClass()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, <a class="el" href="a06026.html#l00319">readType()</a>, <a class="el" href="a06026.html#l00362">readTypeAtCurrentPos()</a>, <a class="el" href="a06026.html#l00472">serialMessage()</a>, and <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>.
+<p>
+<div class="fragment"><pre>00178 {
+00179 <span class="keywordflow">switch</span> (origin)
+00180 {
+00181 <span class="keywordflow">case</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw0">begin</a>:
+00182 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a586">offset</a> &gt; (<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>())
+00183 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00184 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a586">offset</a> &lt; 0)
+00185 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00186 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>=<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()+<a class="code" href="a04223.html#a586">offset</a>;
+00187 <span class="keywordflow">break</span>;
+00188 <span class="keywordflow">case</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw1">current</a>:
+00189 <span class="keywordflow">if</span> (<a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a> ()+<a class="code" href="a04223.html#a586">offset</a> &gt; (<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>())
+00190 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00191 <span class="keywordflow">if</span> (<a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a> ()+<a class="code" href="a04223.html#a586">offset</a> &lt; 0)
+00192 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00193 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>+=<a class="code" href="a04223.html#a586">offset</a>;
+00194 <span class="keywordflow">break</span>;
+00195 <span class="keywordflow">case</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw2">end</a>:
+00196 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a586">offset</a> &lt; -(<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>())
+00197 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00198 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a586">offset</a> &gt; 0)
+00199 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00200 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>=<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()+<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size()+<a class="code" href="a04223.html#a586">offset</a>;
+00201 <span class="keywordflow">break</span>;
+00202 }
+00203 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_0" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03924.html">ucstring</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_0">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_1">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_0">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00863">863</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00864 {
+00865 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00866 {
+00867 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00868 <span class="comment">// Read/Write the length.</span>
+00869 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00870 {
+00871 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len);
+00872 b.resize(len);
+00873 }
+00874 <span class="keywordflow">else</span>
+00875 {
+00876 <a class="code" href="a04223.html#a571">len</a>= b.size();
+00877 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len);
+00878 }
+00879 <span class="comment">// Read/Write the string.</span>
+00880 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i&lt;<a class="code" href="a04223.html#a571">len</a>;i++)
+00881 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&amp;b[i], <span class="keyword">sizeof</span>( <span class="keyword">sizeof</span>(b[i]) ) );
+00882
+00883 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>;
+00884 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&amp;sep, 1 );
+00885 }
+00886 <span class="keywordflow">else</span>
+00887 {
+00888 IStream::serial( b );
+00889 }
+00890 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_1" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_1">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_2">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_1">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00803">803</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00221">NLMISC::IStream::isXML()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00804 {
+00805 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00806 {
+00807 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00808 <span class="comment">// Read/Write the length.</span>
+00809 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00810 {
+00811 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len);
+00812 <a class="code" href="a04199.html#a6">nlassert</a>( len&lt;1000000 ); <span class="comment">// limiting string size</span>
+00813 b.resize(len);
+00814 }
+00815 <span class="keywordflow">else</span>
+00816 {
+00817 <a class="code" href="a04223.html#a571">len</a>= b.size();
+00818 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len);
+00819 }
+00820
+00821 <span class="comment">// Read/Write the string.</span>
+00822 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i&lt;<a class="code" href="a04223.html#a571">len</a>;i++)
+00823 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&amp;(b[i]), <span class="keyword">sizeof</span>(b[i]) );
+00824
+00825 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>;
+00826 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&amp;sep, 1 );
+00827 }
+00828 <span class="keywordflow">else</span>
+00829 {
+00830 <span class="keywordflow">if</span> (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00831 {
+00832 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>) == 1 &amp;&amp; !<a class="code" href="a02270.html#NLMISC_1_1IStreama3">isXML</a>())
+00833 {
+00834 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00835 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a>(len);
+00836 <span class="comment">// nlassert( len&lt;1000000 ); // limiting string size</span>
+00837 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a>&gt;1000000)
+00838 {
+00839 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"Trying to serialize a string of %u character !"</span>, len);
+00840 <span class="keywordflow">throw</span> <a class="code" href="a03824.html">NLMISC::EStreamOverflow</a>();
+00841 }
+00842 b.resize(len);
+00843 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a> &gt; 0)
+00844 {
+00845 <span class="comment">// can serial all in a single call to serialBuffer, since sizeof(char) == 1</span>
+00846 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>((<a class="code" href="a04558.html#a7">uint8</a> *) &amp;b[0], len);
+00847 }
+00848 }
+00849 <span class="keywordflow">else</span>
+00850 {
+00851 IStream::serial( b );
+00852 }
+00853 }
+00854 <span class="keywordflow">else</span>
+00855 {
+00856 IStream::serial( b );
+00857 }
+00858 }
+00859 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_2" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_2">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_3">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_2">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00778">778</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00779 {
+00780 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00781 {
+00782 <span class="keywordtype">char</span> buff [2];
+00783 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00784 {
+00785 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)buff, 2 );
+00786 b = buff[0];
+00787 }
+00788 <span class="keywordflow">else</span>
+00789 {
+00790 buff[0] = b;
+00791 buff[1] = <a class="code" href="a05378.html#a28">SEPARATOR</a>;
+00792 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)buff, 2 );
+00793 }
+00794 }
+00795 <span class="keywordflow">else</span>
+00796 {
+00797 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00798 }
+00799 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_3" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_3">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_4">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_3">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00763">763</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, and <a class="el" href="a05978.html#l00117">NLMISC::CMemStream::serialBit()</a>.
+<p>
+<div class="fragment"><pre>00764 {
+00765 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00766 {
+00767 <a class="code" href="a02271.html#NLNET_1_1CMessagea42">serialBit</a>(b);
+00768 }
+00769 <span class="keywordflow">else</span>
+00770 {
+00771 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00772 }
+00773 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_4" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">double &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_4">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_5">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_4">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00743">743</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00744 {
+00745 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00746 {
+00747 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00748 {
+00749 <a class="code" href="a04377.html#a1">readnumber</a>( b, <span class="keywordtype">double</span>, 128, atof ); <span class="comment">//</span>
+00750 }
+00751 <span class="keywordflow">else</span>
+00752 {
+00753 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%f"</span>, 128 );
+00754 }
+00755 }
+00756 <span class="keywordflow">else</span>
+00757 {
+00758 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00759 }
+00760 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_5" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_5">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_6">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_5">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00723">723</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00724 {
+00725 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00726 {
+00727 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00728 {
+00729 <a class="code" href="a04377.html#a1">readnumber</a>( b, <span class="keywordtype">float</span>, 128, atof ); <span class="comment">// ?</span>
+00730 }
+00731 <span class="keywordflow">else</span>
+00732 {
+00733 <a class="code" href="a04684.html#a0">writenumber</a>( (<span class="keywordtype">double</span>)b, <span class="stringliteral">"%f"</span>, 128 );
+00734 }
+00735 }
+00736 <span class="keywordflow">else</span>
+00737 {
+00738 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00739 }
+00740 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_6" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a12">sint64</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_6">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_7">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_6">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00703">703</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00101">sint64</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00704 {
+00705 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00706 {
+00707 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00708 {
+00709 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a12">sint64</a>, 20, atoiInt64 ); <span class="comment">// -9223372036854775808</span>
+00710 }
+00711 <span class="keywordflow">else</span>
+00712 {
+00713 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"d"</span>, 20 );
+00714 }
+00715 }
+00716 <span class="keywordflow">else</span>
+00717 {
+00718 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00719 }
+00720 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_7" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_7">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_8">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_7">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00683">683</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00684 {
+00685 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00686 {
+00687 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00688 {
+00689 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a13">uint64</a>, 20, atoiInt64 ); <span class="comment">// 18446744073709551615</span>
+00690 }
+00691 <span class="keywordflow">else</span>
+00692 {
+00693 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"u"</span>, 20 );
+00694 }
+00695 }
+00696 <span class="keywordflow">else</span>
+00697 {
+00698 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00699 }
+00700 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_8" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_8">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_9">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_8">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00663">663</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00664 {
+00665 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00666 {
+00667 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00668 {
+00669 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a10">sint32</a>, 11, atoi ); <span class="comment">// -2147483648</span>
+00670 }
+00671 <span class="keywordflow">else</span>
+00672 {
+00673 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%d"</span>, 11 );
+00674 }
+00675 }
+00676 <span class="keywordflow">else</span>
+00677 {
+00678 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00679 }
+00680 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_9" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_9">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_10">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_9">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00642">642</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05800.html#l00481">NLMISC::atoui()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00643 {
+00644 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00645 {
+00646 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00647 {
+00648 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a11">uint32</a>, 10, atoui ); <span class="comment">// 4294967295</span>
+00649 }
+00650 <span class="keywordflow">else</span>
+00651 {
+00652 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%u"</span>, 10 );
+00653 }
+00654 }
+00655 <span class="keywordflow">else</span>
+00656 {
+00657 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00658 }
+00659 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_10" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a8">sint16</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_10">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_11">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_10">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00622">622</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00097">sint16</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00623 {
+00624 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00625 {
+00626 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00627 {
+00628 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a8">sint16</a>, 6, atoi ); <span class="comment">// -32768</span>
+00629 }
+00630 <span class="keywordflow">else</span>
+00631 {
+00632 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%hd"</span>, 6 );
+00633 }
+00634 }
+00635 <span class="keywordflow">else</span>
+00636 {
+00637 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00638 }
+00639 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_11" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_11">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_12">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_11">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00601">601</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00602 {
+00603 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00604 {
+00605 <span class="comment">// No byte swapping in text mode</span>
+00606 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00607 {
+00608 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a9">uint16</a>, 5, atoi ); <span class="comment">// 65535</span>
+00609 }
+00610 <span class="keywordflow">else</span>
+00611 {
+00612 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%hu"</span>, 5 );
+00613 }
+00614 }
+00615 <span class="keywordflow">else</span>
+00616 {
+00617 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00618 }
+00619 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_12" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a6">sint8</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_12">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_13">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_12">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00581">581</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00097">sint16</a>, <a class="el" href="a05981.html#l00095">sint8</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00582 {
+00583 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00584 {
+00585 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00586 {
+00587 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a6">sint8</a>, 4, atoi ); <span class="comment">// -128</span>
+00588 }
+00589 <span class="keywordflow">else</span>
+00590 {
+00591 <a class="code" href="a04684.html#a0">writenumber</a>( (<a class="code" href="a04558.html#a8">sint16</a>)b, <span class="stringliteral">"%hd"</span>, 4 );
+00592 }
+00593 }
+00594 <span class="keywordflow">else</span>
+00595 {
+00596 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00597 }
+00598 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1972_13" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_13">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_14">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_13">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00561">561</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+<div class="fragment"><pre>00562 {
+00563 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00564 {
+00565 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00566 {
+00567 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a7">uint8</a>, 3, atoi ); <span class="comment">// 255</span>
+00568 }
+00569 <span class="keywordflow">else</span>
+00570 {
+00571 <a class="code" href="a04684.html#a0">writenumber</a>( (<a class="code" href="a04558.html#a9">uint16</a>)b,<span class="stringliteral">"%hu"</span>, 3 );
+00572 }
+00573 }
+00574 <span class="keywordflow">else</span>
+00575 {
+00576 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b);
+00577 }
+00578 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea36" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T0, class T1, class T2, class T3, class T4, class T5&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T0 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T1 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T2 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T3 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>d</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T4 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>e</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T5 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>f</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2032_0">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama23">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00459">459</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00460 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(d); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(e); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(f);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea37" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T0, class T1, class T2, class T3, class T4&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T0 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T1 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T2 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T3 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>d</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T4 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>e</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2032_1">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama24">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00456">456</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00457 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(d); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(e);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea38" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T0, class T1, class T2, class T3&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T0 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T1 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T2 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T3 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>d</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2032_2">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama25">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00453">453</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00454 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(d);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea39" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T0, class T1, class T2&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T0 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T1 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T2 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>c</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2032_3">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama26">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00450">450</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00451 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea40" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T0, class T1&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T0 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T1 &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>b</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2032_4">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama27">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00447">447</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00448 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea41" doxytag="NLNET::CMessage::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>obj</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Template serialisation (should take the one from <a class="el" href="a02270.html">IStream</a>).
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreama5">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama36">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama28">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00420">420</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06138.html#l00149">NLNET::CPacsClient::addPrimitive()</a>, <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, <a class="el" href="a05526.html#l00328">NLNET::CCallbackNetBase::baseUpdate()</a>, <a class="el" href="a05391.html#l00169">NLNET::cbAESConnection()</a>, <a class="el" href="a06650.html#l00296">NLNET::cbClientGetUniversalTime()</a>, <a class="el" href="a05391.html#l00144">NLNET::cbExecCommand()</a>, <a class="el" href="a06650.html#l00139">NLNET::cbGetUniversalTime()</a>, <a class="el" href="a05526.html#l00088">NLNET::cbnbMessageAskAssociations()</a>, <a class="el" href="a05526.html#l00055">NLNET::cbnbMessageRecvAssociations()</a>, <a class="el" href="a06138.html#l00495">NLNET::cbPacsAnswer()</a>, <a class="el" href="a06089.html#l00109">NLNET::cbQueryPort()</a>, <a class="el" href="a06364.html#l00251">NLNET::cbReceiveShardId()</a>, <a class="el" href="a06089.html#l00085">NLNET::cbRegister()</a>, <a class="el" href="a06089.html#l00119">NLNET::cbRegisterBroadcast()</a>, <a class="el" href="a06650.html#l00262">NLNET::cbServerAskUniversalTime()</a>, <a class="el" href="a05391.html#l00112">NLNET::cbServGetView()</a>, <a class="el" href="a05958.html#l00048">NLNET::cbShardValidate()</a>, <a class="el" href="a05962.html#l00181">NLNET::cbShardValidation()</a>, <a class="el" href="a06580.html#l00279">NLNET::cbTCReceiveOtherSideClass()</a>, <a class="el" href="a06089.html#l00178">NLNET::cbUnregisterBroadcast()</a>, <a class="el" href="a05962.html#l00100">NLNET::cbWSChooseShard()</a>, <a class="el" href="a05962.html#l00142">NLNET::cbWSDisconnectClient()</a>, <a class="el" href="a06026.html#l00297">changeType()</a>, <a class="el" href="a05391.html#l00310">NLNET::cleanRequest()</a>, <a class="el" href="a05962.html#l00413">NLNET::CLoginServer::clientDisconnected()</a>, <a class="el" href="a05524.html#l00286">NLNET::CCallbackClient::connect()</a>, <a class="el" href="a05958.html#l00063">NLNET::CLoginClient::connectToShard()</a>, <a class="el" href="a06645.html#l01892">NLNET::createMessage()</a>, <a class="el" href="a06094.html#l00123">NLNET::CNetDisplayer::doDisplay()</a>, <a class="el" href="a06138.html#l00180">NLNET::CPacsClient::evalCollision()</a>, <a class="el" href="a05952.html#l00196">NLLOGIC::CLogicState::exitState()</a>, <a class="el" href="a06580.html#l00414">NLNET::getNameOfMessageOrTransportClass()</a>, <a class="el" href="a06138.html#l00433">NLNET::CPacsClient::getPositionSpeed()</a>, <a class="el" href="a06138.html#l00400">NLNET::CPacsClient::globalMove()</a>, <a class="el" href="a06138.html#l00132">NLNET::CPacsClient::rayTest()</a>, <a class="el" href="a06026.html#l00319">readType()</a>, <a class="el" href="a06026.html#l00362">readTypeAtCurrentPos()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>, <a class="el" href="a06138.html#l00418">NLNET::CPacsClient::relativeMove()</a>, <a class="el" href="a06138.html#l00164">NLNET::CPacsClient::removePrimitive()</a>, <a class="el" href="a06028.html#l00326">NLNET::CMessageRecorder::replayConnectionAttempt()</a>, <a class="el" href="a06089.html#l00373">NLNET::CNamingClient::resendRegisteration()</a>, <a class="el" href="a05391.html#l00612">NLNET::sendAdminEmail()</a>, <a class="el" href="a05528.html#l00091">NLNET::CCallbackServer::sendAllMyAssociations()</a>, <a class="el" href="a06138.html#l00097">NLNET::CPacsClient::sendMessage()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a05979.html#l00447">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>, <a class="el" href="a05978.html#l00117">NLMISC::CMemStream::serialBit()</a>, <a class="el" href="a06026.html#l00472">serialMessage()</a>, <a class="el" href="a06138.html#l00338">NLNET::CPacsClient::setAbsorption()</a>, <a class="el" href="a06138.html#l00278">NLNET::CPacsClient::setCollisionMask()</a>, <a class="el" href="a06138.html#l00215">NLNET::CPacsClient::setCurrentPrimitive()</a>, <a class="el" href="a06138.html#l00369">NLNET::CPacsClient::setHeight()</a>, <a class="el" href="a06138.html#l00308">NLNET::CPacsClient::setObstacle()</a>, <a class="el" href="a06138.html#l00293">NLNET::CPacsClient::setOcclusionMask()</a>, <a class="el" href="a06138.html#l00323">NLNET::CPacsClient::setOrientation()</a>, <a class="el" href="a06138.html#l00230">NLNET::CPacsClient::setPrimitiveType()</a>, <a class="el" href="a06138.html#l00384">NLNET::CPacsClient::setRadius()</a>, <a class="el" href="a06138.html#l00246">NLNET::CPacsClient::setReactionType()</a>, <a class="el" href="a06138.html#l00354">NLNET::CPacsClient::setSize()</a>, <a class="el" href="a06138.html#l00262">NLNET::CPacsClient::setTriggerType()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, <a class="el" href="a06138.html#l00197">NLNET::CPacsClient::testMove()</a>, <a class="el" href="a05952.html#l00239">NLLOGIC::CLogicState::trySendEntryMessages()</a>, <a class="el" href="a05952.html#l00265">NLLOGIC::CLogicState::trySendEventMessages()</a>, <a class="el" href="a06645.html#l00284">NLNET::uncbServiceIdentification()</a>, <a class="el" href="a06089.html#l00385">NLNET::CNamingClient::unregisterService()</a>, <a class="el" href="a06645.html#l00857">NLNET::CUnifiedNetwork::update()</a>, and <a class="el" href="a05391.html#l00648">NLNET::updateAdmin()</a>.
+<p>
+<div class="fragment"><pre>00420 { obj.serial(*<span class="keyword">this</span>); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea42" doxytag="NLNET::CMessage::serialBit" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialBit </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bit</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Method inherited from <a class="el" href="a02270.html">IStream</a>.
+<p>
+
+<p>
+Implements <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_0">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama39">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama29">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05978.html#l00117">117</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00763">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00118 {
+00119 <span class="comment">/* if ( _StringMode )</span>
+00120 <span class="comment"> {</span>
+00121 <span class="comment">*/</span> <a class="code" href="a04558.html#a7">uint8</a> u;
+00122 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00123 {
+00124 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( u );
+00125 bit = (u!=0);
+00126 }
+00127 <span class="keywordflow">else</span>
+00128 {
+00129 u = (<a class="code" href="a04558.html#a7">uint8</a>)bit;
+00130 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( u );
+00131 }
+00132 <span class="comment">/* }</span>
+00133 <span class="comment"> else</span>
+00134 <span class="comment"> {</span>
+00135 <span class="comment"> uint len = sizeof(uint8);</span>
+00136 <span class="comment"> uint8 thebuf;</span>
+00137 <span class="comment"></span>
+00138 <span class="comment"> if ( isReading() )</span>
+00139 <span class="comment"> {</span>
+00140 <span class="comment"> // Check that we don't read more than there is to read</span>
+00141 <span class="comment"> if ( lengthS()+len &gt; length() ) // calls virtual length (cf. sub messages)</span>
+00142 <span class="comment"> {</span>
+00143 <span class="comment"> throw EStreamOverflow();</span>
+00144 <span class="comment"> }</span>
+00145 <span class="comment"> // Serialize in</span>
+00146 <span class="comment"> memcpy( &amp;thebuf, &amp;(*_BufPos), len );</span>
+00147 <span class="comment"> _BufPos += len;</span>
+00148 <span class="comment"> bit = (thebuf!=0);</span>
+00149 <span class="comment"> }</span>
+00150 <span class="comment"> else</span>
+00151 <span class="comment"> {</span>
+00152 <span class="comment"> thebuf = (uint8)bit;</span>
+00153 <span class="comment"> // Serialize out</span>
+00154 <span class="comment"> _Buffer.resize( _Buffer.size() + len );</span>
+00155 <span class="comment"> _BufPos = _Buffer.end() - len;</span>
+00156 <span class="comment"> memcpy( &amp;(*_BufPos), &amp;thebuf, len );</span>
+00157 <span class="comment"> _BufPos = _Buffer.end();</span>
+00158 <span class="comment"> }</span>
+00159 <span class="comment"> }*/</span>
+00160 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2030_0" doxytag="NLNET::CMessage::serialBitField16" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a9">uint16</a> NLMISC::IStream::serialBitField16 </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bf</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialisation of bitfield &lt;=16 bits.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06463.html#l00332">332</a> of file <a class="el" href="a06463.html">stream_inline.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00333 {
+00334 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(bf);
+00335 <span class="keywordflow">return</span> bf;
+00336 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2030_1" doxytag="NLNET::CMessage::serialBitField32" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLMISC::IStream::serialBitField32 </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bf</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialisation of bitfield &lt;=32 bits.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06463.html#l00338">338</a> of file <a class="el" href="a06463.html">stream_inline.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00339 {
+00340 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(bf);
+00341 <span class="keywordflow">return</span> bf;
+00342 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2030_2" doxytag="NLNET::CMessage::serialBitField8" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a> NLMISC::IStream::serialBitField8 </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bf</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialisation of bitfield &lt;=8 bits.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06463.html#l00326">326</a> of file <a class="el" href="a06463.html">stream_inline.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05969.html#l00542">NL3D::CMaterial::CTexEnv::serial()</a>.
+<p>
+<div class="fragment"><pre>00327 {
+00328 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(bf);
+00329 <span class="keywordflow">return</span> bf;
+00330 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama30" doxytag="NLNET::CMessage::serialBuffer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Method inherited from <a class="el" href="a02270.html">IStream</a>.
+<p>
+
+<p>
+Implements <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama40">NLMISC::CBitMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05978.html#l00073">73</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06471.html#l00271">NLMISC::CStringStream::serial()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a05979.html#l00778">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a06026.html#l00472">serialMessage()</a>.
+<p>
+<div class="fragment"><pre>00074 {
+00075 <span class="comment">// commented for optimum performance</span>
+00076 <a class="code" href="a04199.html#a6">nlassert</a> (len &gt; 0);
+00077 <a class="code" href="a04199.html#a6">nlassert</a> (buf != NULL);
+00078
+00079 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00080 {
+00081 <span class="comment">// Check that we don't read more than there is to read</span>
+00082 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>()+<a class="code" href="a04223.html#a571">len</a> &gt; <a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>() ) <span class="comment">// calls virtual length (cf. sub messages)</span>
+00083 {
+00084 <span class="keywordflow">throw</span> EStreamOverflow();
+00085 }
+00086 <span class="comment">// Serialize in</span>
+00087 CFastMem::memcpy( buf, _BufPos, len );
+00088 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>;
+00089 }
+00090 <span class="keywordflow">else</span>
+00091 {
+00092 <span class="comment">// Serialize out</span>
+00093
+00094 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (len);
+00095 <span class="comment">/* uint32 oldBufferSize = _Buffer.size();</span>
+00096 <span class="comment"> if (_BufPos - _Buffer.getPtr() + len &gt; oldBufferSize)</span>
+00097 <span class="comment"> {</span>
+00098 <span class="comment"> // need to increase the buffer size</span>
+00099 <span class="comment"> uint32 pos = _BufPos - _Buffer.getPtr();</span>
+00100 <span class="comment"> _Buffer.resize(oldBufferSize*2 + len);</span>
+00101 <span class="comment"> _BufPos = _Buffer.getPtr() + pos;</span>
+00102 <span class="comment"> }</span>
+00103 <span class="comment">*/</span>
+00104 CFastMem::memcpy( _BufPos, buf, len );
+00105 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>;
+00106
+00107 <span class="comment">/* _Buffer.resize( size );</span>
+00108 <span class="comment"> _BufPos = _Buffer.end() - len;</span>
+00109 <span class="comment"> CFastMem::memcpy( &amp;(*_BufPos), buf, len );</span>
+00110 <span class="comment"> _BufPos = _Buffer.end();*/</span>
+00111 }
+00112 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama6" doxytag="NLNET::CMessage::serialBufferWithSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLMISC::IStream::serialBufferWithSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This method first serializes the size of the buffer and after the buffer itself, it enables the possibility to serial with a <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> on the other side.
+<p>
+Definition at line <a class="el" href="a06462.html#l00877">877</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00878 {
+00879 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (len);
+00880 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a> (buf, len);
+00881 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_0" doxytag="NLNET::CMessage::serialCheck" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialCheck </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a check value. An object can stream a check value to check integrity or format of filed or streamed data. Just call serial check with a const value. Write will serial the value. Read will check the value is the same. If it is not, it will throw <a class="el" href="a03794.html">EInvalidDataStream</a> exception.<p>
+NB: The type of the value must implement an operator == and must be serializable. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>the value used to the check. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00520">520</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05646.html#l01132">value</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>.
+<p>
+Referenced by <a class="el" href="a06138.html#l00495">NLNET::cbPacsAnswer()</a>, <a class="el" href="a06138.html#l00085">NLNET::CPacsClient::initMessage()</a>, <a class="el" href="a05926.html#l00145">loadForm()</a>, <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06399.html#l00069">NL3D::CSkeletonWeight::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a05937.html#l00505">NL3D::CLodCharacterShape::serial()</a>, <a class="el" href="a05937.html#l00273">NL3D::CLodCharacterShapeBuild::serial()</a>, <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>, and <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>.
+<p>
+<div class="fragment"><pre>00521 {
+00522 <span class="comment">// Open a node</span>
+00523 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"CHECK"</span>);
+00524
+00525 <span class="keywordflow">if</span> (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00526 {
+00527 T read;
+00528 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (read);
+00529 <span class="keywordflow">if</span> (read!=<a class="code" href="a04223.html#a658">value</a>)
+00530 <span class="keywordflow">throw</span> EInvalidDataStream(*<span class="keyword">this</span>);
+00531 }
+00532 <span class="keywordflow">else</span>
+00533 {
+00534 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (const_cast&lt;T&amp;&gt;(value));
+00535 }
+00536
+00537 <span class="comment">// Close the node </span>
+00538 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00539 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2033_9" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, class Allocator&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; T, Allocator &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00324">324</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l00055">NL3D::H_AUTO_DECL()</a>, <a class="el" href="a06127.html#l00304">NLAISCRIPT::CLdbHeapMemberiOpCode::load()</a>, <a class="el" href="a06127.html#l00245">NLAISCRIPT::CLdbStackMemberiOpCode::load()</a>, <a class="el" href="a06127.html#l00188">NLAISCRIPT::CLdbMemberiOpCode::load()</a>, <a class="el" href="a06125.html#l00437">NLAISCRIPT::CCallMethodi::load()</a>, <a class="el" href="a06125.html#l00315">NLAISCRIPT::CCallStackMethodi::load()</a>, <a class="el" href="a06125.html#l00242">NLAISCRIPT::CCallHeapMethodi::load()</a>, <a class="el" href="a06123.html#l00439">NLAISCRIPT::CLibStackMemberMethod::load()</a>, <a class="el" href="a06123.html#l00370">NLAISCRIPT::CLibCallMethodi::load()</a>, <a class="el" href="a06123.html#l00184">NLAISCRIPT::CLibMemberMethodi::load()</a>, <a class="el" href="a06121.html#l01165">NLAISCRIPT::CAffMemberiOpCode::load()</a>, <a class="el" href="a06121.html#l01099">NLAISCRIPT::CAffHeapMemberiOpCode::load()</a>, <a class="el" href="a06112.html#l00217">NLAISCRIPT::CLoadHeapObject::load()</a>, <a class="el" href="a06112.html#l00166">NLAISCRIPT::CLoadStackObject::load()</a>, <a class="el" href="a06112.html#l00117">NLAISCRIPT::CLoadSelfObject::load()</a>, <a class="el" href="a05668.html#l00405">NLMISC::CEntityIdTranslator::load()</a>, <a class="el" href="a05471.html#l00618">NLSOUND::CBackgroundSoundManager::load()</a>, <a class="el" href="a05926.html#l00145">loadForm()</a>, <a class="el" href="a06127.html#l00296">NLAISCRIPT::CLdbHeapMemberiOpCode::save()</a>, <a class="el" href="a06127.html#l00239">NLAISCRIPT::CLdbStackMemberiOpCode::save()</a>, <a class="el" href="a06127.html#l00182">NLAISCRIPT::CLdbMemberiOpCode::save()</a>, <a class="el" href="a06125.html#l00427">NLAISCRIPT::CCallMethodi::save()</a>, <a class="el" href="a06125.html#l00305">NLAISCRIPT::CCallStackMethodi::save()</a>, <a class="el" href="a06125.html#l00230">NLAISCRIPT::CCallHeapMethodi::save()</a>, <a class="el" href="a06123.html#l00429">NLAISCRIPT::CLibStackMemberMethod::save()</a>, <a class="el" href="a06123.html#l00358">NLAISCRIPT::CLibCallMethodi::save()</a>, <a class="el" href="a06123.html#l00174">NLAISCRIPT::CLibMemberMethodi::save()</a>, <a class="el" href="a06121.html#l01159">NLAISCRIPT::CAffMemberiOpCode::save()</a>, <a class="el" href="a06121.html#l01091">NLAISCRIPT::CAffHeapMemberiOpCode::save()</a>, <a class="el" href="a06112.html#l00210">NLAISCRIPT::CLoadHeapObject::save()</a>, <a class="el" href="a06112.html#l00161">NLAISCRIPT::CLoadStackObject::save()</a>, <a class="el" href="a06112.html#l00112">NLAISCRIPT::CLoadSelfObject::save()</a>, <a class="el" href="a05668.html#l00442">NLMISC::CEntityIdTranslator::save()</a>, <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06550.html#l00099">NL3D::CTileVegetableDesc::serial()</a>, <a class="el" href="a06399.html#l00069">NL3D::CSkeletonWeight::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a06350.html#l00065">NL3D::CInstanceGroup::CInstance::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06336.html#l00114">NLPACS::CRetrieverBank::serial()</a>, <a class="el" href="a06333.html#l00097">NLPACS::CRetrievableSurface::TLoop::serial()</a>, <a class="el" href="a06333.html#l00051">NLPACS::CRetrievableSurface::serial()</a>, <a class="el" href="a06197.html#l00219">NL3D::CPrimitiveBlock::serial()</a>, <a class="el" href="a06193.html#l00216">NL3D::CPortal::serial()</a>, <a class="el" href="a06186.html#l00164">NL3D::CPointLightNamedArray::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06105.html#l00337">NLMISC::CNoiseColorGradient::serial()</a>, <a class="el" href="a06012.html#l00314">NL3D::CMeshMRMSkinnedGeom::CRdrPass::serial()</a>, <a class="el" href="a06011.html#l01926">NL3D::CMeshMRMSkinnedGeom::CPackedVertexBuffer::serial()</a>, <a class="el" href="a06011.html#l00991">NL3D::CMeshMRMSkinnedGeom::serial()</a>, <a class="el" href="a05992.html#l00103">NL3D::CMeshBase::CLightMapInfoList::serial()</a>, <a class="el" href="a05992.html#l00071">NL3D::CMeshBase::CLightInfoMapListV7::serial()</a>, <a class="el" href="a05990.html#l00518">NL3D::CMeshGeom::CMatrixBlock::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05941.html#l00043">NL3D::CLodCharacterTexture::serial()</a>, <a class="el" href="a05939.html#l00121">NL3D::CLodCharacterShapeBank::serial()</a>, <a class="el" href="a05937.html#l00505">NL3D::CLodCharacterShape::serial()</a>, <a class="el" href="a05937.html#l00495">NL3D::CLodCharacterShape::CBoneInfluence::serial()</a>, <a class="el" href="a05937.html#l00481">NL3D::CLodCharacterShape::CAnim::serial()</a>, <a class="el" href="a05937.html#l00273">NL3D::CLodCharacterShapeBuild::serial()</a>, <a class="el" href="a05930.html#l00129">NLPACS::CLocalRetriever::CTopology::serial()</a>, <a class="el" href="a05930.html#l00106">NLPACS::CLocalRetriever::CTip::serial()</a>, <a class="el" href="a05929.html#l00895">NLPACS::CLocalRetriever::serial()</a>, <a class="el" href="a05806.html#l00098">NL3D::CIGSurfaceLight::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05790.html#l00313">NL3D::CHLSColorTexture::serial()</a>, <a class="el" href="a05790.html#l00057">NL3D::CHLSColorTexture::CMask::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05694.html#l00170">NLPACS::CFaceGrid::serial()</a>, <a class="el" href="a05692.html#l00098">NLPACS::CExteriorMesh::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05579.html#l00149">NLPACS::CCollisionMeshBuild::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05539.html#l00274">NLPACS::CChain::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05539.html#l00064">NLPACS::COrderedChain3f::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05468.html#l00115">CAutomataDesc::CState::serial()</a>, <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>, <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>, <a class="el" href="a05437.html#l00080">NL3D::CMaterialBase::serial()</a>, and <a class="el" href="a05584.html#l00374">NLMISC::ICommand::serialCommands()</a>.
+<p>
+<div class="fragment"><pre>00324 {<a class="code" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea45" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; bool &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_0">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama42">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama32">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00442">442</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00442 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea46" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a04558.html#a6">sint8</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;sint8&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_1">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama43">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama33">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00440">440</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00440 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea47" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;uint8&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_2">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama44">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama34">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00438">438</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00438 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea48" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class K, class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::multimap&lt; K, T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_3">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama45">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama35">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00435">435</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00435 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea49" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class K, class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::map&lt; K, T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_4">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama46">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama36">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00433">433</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00433 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea50" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::multiset&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_5">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama47">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama37">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00431">431</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00431 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea51" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::set&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_6">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama48">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama38">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00429">429</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00429 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea52" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::deque&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_7">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama49">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama39">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00427">427</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00427 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea53" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::list&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_8">NLMISC::IStream</a>.
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama50">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama40">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00425">425</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00425 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea54" doxytag="NLNET::CMessage::serialCont" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama51">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00423">423</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00100">NLNET::cbInfo()</a>, <a class="el" href="a06138.html#l00495">NLNET::cbPacsAnswer()</a>, <a class="el" href="a06089.html#l00119">NLNET::cbRegisterBroadcast()</a>, <a class="el" href="a05391.html#l00310">NLNET::cleanRequest()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>, and <a class="el" href="a06089.html#l00373">NLNET::CNamingClient::resendRegisteration()</a>.
+<p>
+<div class="fragment"><pre>00423 {IStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_1" doxytag="NLNET::CMessage::serialContPolyPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::multiset&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a check value. An object can stream a check value to check integrity or format of filed or streamed data. Just call serial check with a const value. Write will serial the value. Read will check the value is the same. If it is not, it will throw <a class="el" href="a03794.html">EInvalidDataStream</a> exception.<p>
+NB: The type of the value must implement an operator == and must be serializable. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>the value used to the check. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00379">379</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01192">NLMISC::IStream::serialSTLContPolyPtr()</a>.
+<p>
+<div class="fragment"><pre>00379 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd7">serialSTLContPolyPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_2" doxytag="NLNET::CMessage::serialContPolyPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::set&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a check value. An object can stream a check value to check integrity or format of filed or streamed data. Just call serial check with a const value. Write will serial the value. Read will check the value is the same. If it is not, it will throw <a class="el" href="a03794.html">EInvalidDataStream</a> exception.<p>
+NB: The type of the value must implement an operator == and must be serializable. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>the value used to the check. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00377">377</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01192">NLMISC::IStream::serialSTLContPolyPtr()</a>.
+<p>
+<div class="fragment"><pre>00377 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd7">serialSTLContPolyPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_3" doxytag="NLNET::CMessage::serialContPolyPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::deque&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a check value. An object can stream a check value to check integrity or format of filed or streamed data. Just call serial check with a const value. Write will serial the value. Read will check the value is the same. If it is not, it will throw <a class="el" href="a03794.html">EInvalidDataStream</a> exception.<p>
+NB: The type of the value must implement an operator == and must be serializable. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>the value used to the check. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00375">375</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01192">NLMISC::IStream::serialSTLContPolyPtr()</a>.
+<p>
+<div class="fragment"><pre>00375 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd7">serialSTLContPolyPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_4" doxytag="NLNET::CMessage::serialContPolyPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::list&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a check value. An object can stream a check value to check integrity or format of filed or streamed data. Just call serial check with a const value. Write will serial the value. Read will check the value is the same. If it is not, it will throw <a class="el" href="a03794.html">EInvalidDataStream</a> exception.<p>
+NB: The type of the value must implement an operator == and must be serializable. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>the value used to the check. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00373">373</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01192">NLMISC::IStream::serialSTLContPolyPtr()</a>.
+<p>
+<div class="fragment"><pre>00373 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd7">serialSTLContPolyPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_5" doxytag="NLNET::CMessage::serialContPolyPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, class Allocator&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; T, Allocator &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a check value. An object can stream a check value to check integrity or format of filed or streamed data. Just call serial check with a const value. Write will serial the value. Read will check the value is the same. If it is not, it will throw <a class="el" href="a03794.html">EInvalidDataStream</a> exception.<p>
+NB: The type of the value must implement an operator == and must be serializable. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>value</em>&nbsp;</td><td>the value used to the check. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00371">371</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>.
+<p>
+Referenced by <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>.
+<p>
+<div class="fragment"><pre>00371 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd9">serialVectorPolyPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2034_0" doxytag="NLNET::CMessage::serialContPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::multiset&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00362">362</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>.
+<p>
+<div class="fragment"><pre>00362 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd8">serialSTLContPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2034_1" doxytag="NLNET::CMessage::serialContPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::set&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00360">360</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>.
+<p>
+<div class="fragment"><pre>00360 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd8">serialSTLContPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2034_2" doxytag="NLNET::CMessage::serialContPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::deque&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00358">358</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>.
+<p>
+<div class="fragment"><pre>00358 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd8">serialSTLContPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2034_3" doxytag="NLNET::CMessage::serialContPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::list&lt; T &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00356">356</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>.
+<p>
+<div class="fragment"><pre>00356 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd8">serialSTLContPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2034_4" doxytag="NLNET::CMessage::serialContPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T, class Allocator&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; T, Allocator &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00354">354</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>.
+<p>
+Referenced by <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>.
+<p>
+<div class="fragment"><pre>00354 {<a class="code" href="a02270.html#NLMISC_1_1IStreamd10">serialVectorPtr</a>(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama7" doxytag="NLNET::CMessage::serialEnum" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialEnum </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>em</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Template enum serialisation. Serialized as a sint32.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00261">261</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a06580.html#l00279">NLNET::cbTCReceiveOtherSideClass()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06686.html#l00375">NL3D::CVegetable::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06179.html#l00230">NL3D::CPointLight::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05929.html#l00895">NLPACS::CLocalRetriever::serial()</a>, <a class="el" href="a05585.html#l00164">NLMISC::CSerialCommand::serial()</a>, and <a class="el" href="a05447.html#l00292">NL3D::CAnimationPlaylist::serial()</a>.
+<p>
+<div class="fragment"><pre>00262 {
+00263 <a class="code" href="a04558.html#a10">sint32</a> i;
+00264 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00265 {
+00266 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(i);
+00267 em = (T)i;
+00268 }
+00269 <span class="keywordflow">else</span>
+00270 {
+00271 i = em;
+00272 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(i);
+00273 }
+00274 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1974_0" doxytag="NLNET::CMessage::serialHex" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialHex </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialisation in hexadecimal.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama43">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00929">929</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a06471.html#l00102">NLMISC::atoihex()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>.
+<p>
+Referenced by <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>.
+<p>
+<div class="fragment"><pre>00930 {
+00931 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00932 {
+00933 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00934 {
+00935 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a11">uint32</a>, 10, atoihex ); <span class="comment">// 4294967295</span>
+00936 }
+00937 <span class="keywordflow">else</span>
+00938 {
+00939 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%x"</span>, 10 );
+00940 }
+00941 }
+00942 <span class="keywordflow">else</span>
+00943 {
+00944 IStream::serial( b );
+00945 }
+00946 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama8" doxytag="NLNET::CMessage::serialMemStream" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialMemStream </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02271.html">CMemStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serial memstream, bitmemstream...
+<p>
+
+<p>
+Definition at line <a class="el" href="a06461.html#l00436">436</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00238">NLMISC::CMemStream::buffer()</a>, <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00270">NLMISC::CMemStream::resetBufPos()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00437 {
+00438 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00439
+00440 <span class="comment">// Serialize length</span>
+00441 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00442 {
+00443 <span class="comment">// fill b with data from this</span>
+00444 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (len);
+00445 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a> (b.bufferToFill (len), <a class="code" href="a04223.html#a571">len</a>);
+00446 b.resetBufPos ();
+00447 }
+00448 <span class="keywordflow">else</span>
+00449 {
+00450 <span class="comment">// fill this with data from b</span>
+00451 <a class="code" href="a04223.html#a571">len</a> = b.length();
+00452
+00453 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( len );
+00454 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*) b.buffer (), <a class="code" href="a04223.html#a571">len</a> );
+00455 }
+00456 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea57" doxytag="NLNET::CMessage::serialMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::serialMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>msg</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Encapsulate/decapsulate another message inside the current message.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00472">472</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00238">NLMISC::CMemStream::buffer()</a>, <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06027.html#l00104">length()</a>, <a class="el" href="a06026.html#l00319">readType()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00473 {
+00474 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00475 {
+00476 <span class="comment">// Init 'msg' with the contents serialised from 'this'</span>
+00477 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a>;
+00478 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( len );
+00479 <span class="keywordflow">if</span> ( ! msg.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00480 msg.<a class="code" href="a02918.html#NLNET_1_1CMessagea21">invert</a>();
+00481 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( msg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama1">bufferToFill</a>( len ), <a class="code" href="a04223.html#a571">len</a> );
+00482 msg.<a class="code" href="a02918.html#NLNET_1_1CMessagea29">readType</a>();
+00483 msg.<a class="code" href="a02918.html#NLNET_1_1CMessagea21">invert</a>();
+00484 msg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( 0, CMemStream::end );
+00485 }
+00486 <span class="keywordflow">else</span>
+00487 {
+00488 <span class="comment">// Store into 'this' the contents of 'msg'</span>
+00489 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a> = msg.<a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>();
+00490 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( len );
+00491 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( const_cast&lt;uint8*&gt;(msg.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama0">buffer</a>()), msg.<a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>() );
+00492 }
+00493 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_6" doxytag="NLNET::CMessage::serialPolyPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialPolyPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T *&amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize Polymorphic Objet Ptr. Works with NULL pointers. If the same object is found mutliple time in the stream, ONLY ONE instance is written! NB: The ptr is serialised as a uint64 (64 bit compliant). <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>ptr</em>&nbsp;</td><td>a pointer on a <a class="el" href="a02867.html">IStreamable</a> object. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_0">resetPtrTable()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00492">492</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>.
+<p>
+Referenced by <a class="el" href="a05445.html#l00138">NL3D::CAnimationOptimizer::cloneTrack()</a>, <a class="el" href="a05968.html#l00438">NL3D::CMaterial::CLightMap::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05437.html#l00045">NL3D::CMaterialBase::CAnimatedTexture::serial()</a>, <a class="el" href="a05968.html#l00456">NL3D::CMaterial::CLightMap::serial2()</a>, and <a class="el" href="a06462.html#l01162">NLMISC::IStream::serialSTLContLenPolyPtr()</a>.
+<p>
+<div class="fragment"><pre>00493 { IStreamable *p=ptr; <a class="code" href="a02270.html#NLMISC_1_1IStreamd0">serialIStreamable</a>(p); ptr= static_cast&lt;T*&gt;(p);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_7" doxytag="NLNET::CMessage::serialPtr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T *&amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize Non Polymorphic Objet Ptr. Works with NULL pointers. If the same object is found mutliple time in the stream, ONLY ONE instance is written! NB: The ptr is serialised as a uint64 (64 bit compliant). <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>ptr</em>&nbsp;</td><td>a pointer on a base type or an object. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_0">resetPtrTable()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00390">390</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00890">NLMISC::IStream::_IdMap</a>, <a class="el" href="a06462.html#l00889">NLMISC::IStream::_NextSerialPtrId</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00891">NLMISC::IStream::ItIdMap</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00102">uint64</a>, <a class="el" href="a06462.html#l00892">NLMISC::IStream::ValueIdMap</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, <a class="el" href="a06462.html#l00725">NLMISC::IStream::xmlPushBegin()</a>, <a class="el" href="a06462.html#l00742">NLMISC::IStream::xmlPushEnd()</a>, and <a class="el" href="a06462.html#l00777">NLMISC::IStream::xmlSetAttrib()</a>.
+<p>
+Referenced by <a class="el" href="a06152.html#l00136">NL3D::CParticleSystemShape::buildFromPS()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, and <a class="el" href="a06462.html#l01056">NLMISC::IStream::serialSTLContLenPtr()</a>.
+<p>
+<div class="fragment"><pre>00391 {
+00392 <a class="code" href="a04558.html#a13">uint64</a> node;
+00393
+00394 <span class="comment">// Open the node header</span>
+00395 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin</a> (<span class="stringliteral">"PTR"</span>);
+00396
+00397 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"id"</span>);
+00398
+00399 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00400 {
+00401 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node);
+00402
+00403 <span class="comment">// Close the header</span>
+00404 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00405
+00406 <span class="keywordflow">if</span>(node==0)
+00407 ptr=NULL;
+00408 <span class="keywordflow">else</span>
+00409 {
+00410 ItIdMap it;
+00411 it= _IdMap.find(node);
+00412
+00413 <span class="comment">// Test if object already created/read.</span>
+00414 <span class="keywordflow">if</span>( it==_IdMap.end() )
+00415 {
+00416 <span class="comment">// Construct object. </span>
+00417 ptr= <span class="keyword">new</span> T;
+00418 <span class="keywordflow">if</span>(ptr==NULL)
+00419 <span class="keywordflow">throw</span> EStream();
+00420
+00421 <span class="comment">// Insert the node.</span>
+00422 _IdMap.insert( <a class="code" href="a02270.html#NLMISC_1_1IStreamy1">ValueIdMap</a>(node, ptr) );
+00423
+00424 <span class="comment">// Read the object!</span>
+00425 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(*ptr);
+00426 }
+00427 <span class="keywordflow">else</span>
+00428 ptr= static_cast&lt;T*&gt;(it-&gt;second);
+00429 }
+00430 }
+00431 <span class="keywordflow">else</span>
+00432 {
+00433 <span class="keywordflow">if</span>(ptr==NULL)
+00434 {
+00435 node= 0;
+00436 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node);
+00437
+00438 <span class="comment">// Close the header</span>
+00439 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00440 }
+00441 <span class="keywordflow">else</span>
+00442 {
+00443 ItIdMap it;
+00444 it = _IdMap.find((<a class="code" href="a04558.html#a13">uint64</a>)(<a class="code" href="a04558.html#a15">uint</a>)ptr);
+00445
+00446 <span class="comment">// Test if object has been already written</span>
+00447 <span class="keywordflow">if</span>( it==_IdMap.end() )
+00448 {
+00449 <span class="comment">// Not yet written</span>
+00450
+00451 <span class="comment">// Get the next available ID</span>
+00452 node = _NextSerialPtrId++;
+00453
+00454 <span class="comment">// Serial the id</span>
+00455 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node);
+00456
+00457 <span class="comment">// Insert the pointer in the map with the id</span>
+00458 _IdMap.insert( <a class="code" href="a02270.html#NLMISC_1_1IStreamy1">ValueIdMap</a>((<a class="code" href="a04558.html#a13">uint64</a>)(<a class="code" href="a04558.html#a15">uint</a>)ptr, (<span class="keywordtype">void</span>*)(uint)node) );
+00459
+00460 <span class="comment">// Close the header</span>
+00461 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00462
+00463 <span class="comment">// Write the object</span>
+00464 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(*ptr);
+00465 }
+00466 <span class="keywordflow">else</span>
+00467 {
+00468 <span class="comment">// Write only the object id</span>
+00469 node = (<a class="code" href="a04558.html#a13">uint64</a>)(<a class="code" href="a04558.html#a15">uint</a>)(it-&gt;second);
+00470
+00471 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node);
+00472
+00473 <span class="comment">// Close the header</span>
+00474 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+00475 }
+00476 }
+00477 }
+00478
+00479 <span class="comment">// Close the node</span>
+00480 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00481 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1974_1" doxytag="NLNET::CMessage::serialSeparatedBufferIn" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NLMISC::CMemStream::serialSeparatedBufferIn </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Input: read len bytes at most from the stream until the next separator, and return the number of bytes read. The separator is then skipped.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama45">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05978.html#l00307">307</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05979.html#l00553">NLMISC::SEP_SIZE</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00308 {
+00309 <a class="code" href="a04199.html#a6">nlassert</a>( _StringMode &amp;&amp; <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00310
+00311 <span class="comment">// Check that we don't read more than there is to read</span>
+00312 <span class="keywordflow">if</span> ( ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> == <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()+<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() ) || <span class="comment">// we are at the end</span>
+00313 ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>()+<a class="code" href="a04223.html#a571">len</a>+<a class="code" href="a05378.html#a37">SEP_SIZE</a> &gt; <a class="code" href="a02918.html#NLNET_1_1CMessagea24">length</a>() ) &amp;&amp; (<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>[<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size()-1] != <a class="code" href="a05378.html#a28">SEPARATOR</a> ) ) <span class="comment">// we are before the end // calls virtual length (cf. sub messages)</span>
+00314 {
+00315 <span class="keywordflow">throw</span> EStreamOverflow();
+00316 }
+00317 <span class="comment">// Serialize in</span>
+00318 <a class="code" href="a04558.html#a11">uint32</a> i = 0;
+00319 <span class="keywordflow">while</span> ( (i&lt;<a class="code" href="a04223.html#a571">len</a>) &amp;&amp; (*_BufPos) != <a class="code" href="a05378.html#a28">SEPARATOR</a> )
+00320 {
+00321 *(buf+i) = *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00322 i++;
+00323 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>++;
+00324 }
+00325 <span class="comment">// Exceeds len</span>
+00326 <span class="keywordflow">if</span> ( (*_BufPos) != <a class="code" href="a05378.html#a28">SEPARATOR</a> )
+00327 {
+00328 <span class="keywordflow">throw</span> EStreamOverflow();
+00329 }
+00330 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a05378.html#a37">SEP_SIZE</a>;
+00331 <span class="keywordflow">return</span> i;
+00332 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1974_2" doxytag="NLNET::CMessage::serialSeparatedBufferOut" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialSeparatedBufferOut </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Output: writes len bytes from buf into the stream.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03452.html#NLMISC_1_1CStringStreama46">NLMISC::CStringStream</a>.
+<p>
+Definition at line <a class="el" href="a05978.html#l00338">338</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector&lt; uint8, false &gt;::resize()</a>, <a class="el" href="a05979.html#l00553">NLMISC::SEP_SIZE</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00339 {
+00340 <a class="code" href="a04199.html#a6">nlassert</a>( _StringMode &amp;&amp; (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) );
+00341
+00342 <span class="comment">// Serialize out</span>
+00343 <a class="code" href="a04558.html#a11">uint32</a> oldBufferSize = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size();
+00344 <span class="keywordflow">if</span> (<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + (<a class="code" href="a04223.html#a571">len</a> + <a class="code" href="a05378.html#a37">SEP_SIZE</a>) &gt; oldBufferSize)
+00345 {
+00346 <span class="comment">// need to increase the buffer size</span>
+00347 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize(oldBufferSize*2 + len + SEP_SIZE);
+00348 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + oldBufferSize;
+00349 }
+00350
+00351 CFastMem::memcpy( _BufPos, buf, len );
+00352 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>;
+00353 *(<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>++) = <a class="code" href="a05378.html#a28">SEPARATOR</a>;
+00354
+00355 <span class="comment">// Serialize out</span>
+00356 <span class="comment">/* _Buffer.resize( _Buffer.size() + len + SEP_SIZE );</span>
+00357 <span class="comment"> _BufPos = _Buffer.end() - len - SEP_SIZE;</span>
+00358 <span class="comment"> CFastMem::memcpy( &amp;(*_BufPos), buf, len );</span>
+00359 <span class="comment"> _Buffer[_Buffer.size()-1] = SEPARATOR;</span>
+00360 <span class="comment"> _BufPos = _Buffer.end();</span>
+00361 <span class="comment">*/</span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamb0" doxytag="NLNET::CMessage::serialVector" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::serialVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cont</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+special version for serializing a vector. Support up to sint32 length containers.
+<p>
+Definition at line <a class="el" href="a06462.html#l00992">992</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a05587.html#l00141">NLMISC::contReset()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>, <a class="el" href="a06462.html#l00725">NLMISC::IStream::xmlPushBegin()</a>, <a class="el" href="a06462.html#l00742">NLMISC::IStream::xmlPushEnd()</a>, and <a class="el" href="a06462.html#l00777">NLMISC::IStream::xmlSetAttrib()</a>.
+<p>
+Referenced by <a class="el" href="a06472.html#l00124">NLMISC::CStringStream::serialCont()</a>, <a class="el" href="a06462.html#l00324">NLMISC::IStream::serialCont()</a>, and <a class="el" href="a05483.html#l00634">NLMISC::CBitMemStream::serialCont()</a>.
+<p>
+<div class="fragment"><pre>00993 {
+00994 <span class="keyword">typedef</span> <span class="keyword">typename</span> T::value_type __value_type;
+00995 <span class="keyword">typedef</span> <span class="keyword">typename</span> T::iterator __iterator;
+00996
+00997 <span class="comment">// Open a node header</span>
+00998 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin</a> (<span class="stringliteral">"VECTOR"</span>);
+00999
+01000 <span class="comment">// Attrib size</span>
+01001 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"size"</span>);
+01002
+01003 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+01004 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+01005 {
+01006 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len);
+01007
+01008 <span class="comment">// Open a node header</span>
+01009 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+01010
+01011 <span class="comment">// special version for vector: adjut good size.</span>
+01012 <a class="code" href="a05378.html#a381">contReset</a>(cont);
+01013 cont.resize (len);
+01014
+01015 <span class="comment">// Read the vector</span>
+01016 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i&lt;<a class="code" href="a04223.html#a571">len</a>;i++)
+01017 {
+01018 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"ELM"</span>);
+01019
+01020 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(cont[i]);
+01021
+01022 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+01023 }
+01024 }
+01025 <span class="keywordflow">else</span>
+01026 {
+01027 <a class="code" href="a04223.html#a571">len</a>= cont.size();
+01028 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len);
+01029
+01030 <span class="comment">// Close the node header</span>
+01031 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> ();
+01032
+01033 <span class="comment">// Write the vector</span>
+01034 __iterator it= cont.begin();
+01035 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i&lt;<a class="code" href="a04223.html#a571">len</a>;i++, it++)
+01036 {
+01037 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"ELM"</span>);
+01038
+01039 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(const_cast&lt;__value_type&amp;&gt;(*it));
+01040
+01041 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+01042 }
+01043 }
+01044
+01045 <span class="comment">// Close the node</span>
+01046 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+01047 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_8" doxytag="NLNET::CMessage::serialVersion" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NLMISC::IStream::serialVersion </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>currentVersion</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a version number. Each object should store/read first a version number, using this method. Then he can use the streamVersion returned to see how he should serialise himself.<p>
+NB: Version Number is read/store as a uint8, or uint32 if too bigger.. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>currentVersion</em>&nbsp;</td><td>the current version of the class, provided by user. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>the version of the stream. If the stream is an Output stream, currentVersion is returned. </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02270.html#NLMISC_1_1IStreame1">setVersionException()</a> <a class="el" href="a02270.html#NLMISC_1_1IStreame0">getVersionException()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06461.html#l00266">266</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+References <a class="el" href="a06461.html#l00067">NLMISC::IStream::_ThrowOnNewer</a>, <a class="el" href="a06461.html#l00066">NLMISC::IStream::_ThrowOnOlder</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00237">v</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l00055">NL3D::H_AUTO_DECL()</a>, <a class="el" href="a05668.html#l00405">NLMISC::CEntityIdTranslator::load()</a>, <a class="el" href="a05926.html#l00145">loadForm()</a>, <a class="el" href="a05668.html#l00442">NLMISC::CEntityIdTranslator::save()</a>, <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06772.html#l00101">NLLIGO::CZoneRegion::SZoneUnit2::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06758.html#l00421">NL3D::CPatchInfo::CBindInfo::serial()</a>, <a class="el" href="a06758.html#l00410">NL3D::CZone::CPatchConnect::serial()</a>, <a class="el" href="a06758.html#l00402">NL3D::CBorderVertex::serial()</a>, <a class="el" href="a06710.html#l00854">NL3D::CVertexBuffer::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06686.html#l00375">NL3D::CVegetable::serial()</a>, <a class="el" href="a06564.html#l00062">NL3D::CTrackSampledVector::serial()</a>, <a class="el" href="a06562.html#l00125">NL3D::CTrackSampledQuat::serial()</a>, <a class="el" href="a06560.html#l00080">NL3D::CTrackSampledCommon::CTimeBlock::serial()</a>, <a class="el" href="a06550.html#l00099">NL3D::CTileVegetableDesc::serial()</a>, <a class="el" href="a06548.html#l00036">NL3D::CTileNoiseMap::serial()</a>, <a class="el" href="a06536.html#l01912">NL3D::CTileNoise::serial()</a>, <a class="el" href="a06477.html#l00329">NLPACS::CSurfaceQuadTree::serial()</a>, <a class="el" href="a06476.html#l00076">NL3D::CSurfaceLightGrid::CCellCorner::serial()</a>, <a class="el" href="a06475.html#l00051">NL3D::CSurfaceLightGrid::serial()</a>, <a class="el" href="a06399.html#l00083">NL3D::CSkeletonWeight::CNode::serial()</a>, <a class="el" href="a06399.html#l00069">NL3D::CSkeletonWeight::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a06350.html#l00065">NL3D::CInstanceGroup::CInstance::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06336.html#l00114">NLPACS::CRetrieverBank::serial()</a>, <a class="el" href="a06333.html#l00051">NLPACS::CRetrievableSurface::serial()</a>, <a class="el" href="a06213.html#l00438">NL3D::CPSAttrib&lt; T &gt;::serial()</a>, <a class="el" href="a06197.html#l00219">NL3D::CPrimitiveBlock::serial()</a>, <a class="el" href="a06193.html#l00216">NL3D::CPortal::serial()</a>, <a class="el" href="a06187.html#l00100">NL3D::CPointLightNamedArray::CPointLightGroup::serial()</a>, <a class="el" href="a06186.html#l00164">NL3D::CPointLightNamedArray::serial()</a>, <a class="el" href="a06184.html#l00073">NL3D::CPointLightNamed::serial()</a>, <a class="el" href="a06179.html#l00230">NL3D::CPointLight::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06105.html#l00337">NLMISC::CNoiseColorGradient::serial()</a>, <a class="el" href="a06105.html#l00294">NLMISC::CNoiseValue::serial()</a>, <a class="el" href="a06012.html#l00314">NL3D::CMeshMRMSkinnedGeom::CRdrPass::serial()</a>, <a class="el" href="a06012.html#l00262">NL3D::CMeshMRMSkinnedGeom::CShadowVertex::serial()</a>, <a class="el" href="a06011.html#l01937">NL3D::CMeshMRMSkinnedGeom::CPackedVertexBuffer::CPackedVertex::serial()</a>, <a class="el" href="a06011.html#l01926">NL3D::CMeshMRMSkinnedGeom::CPackedVertexBuffer::serial()</a>, <a class="el" href="a06011.html#l01482">NL3D::CMeshMRMSkinned::serial()</a>, <a class="el" href="a06011.html#l00991">NL3D::CMeshMRMSkinnedGeom::serial()</a>, <a class="el" href="a06006.html#l00463">NL3D::CMeshMRMGeom::CLodInfo::serial()</a>, <a class="el" href="a06006.html#l00350">NL3D::CMeshMRMGeom::CRdrPass::serial()</a>, <a class="el" href="a06006.html#l00296">NL3D::CMeshMRMGeom::CShadowVertex::serial()</a>, <a class="el" href="a05992.html#l00103">NL3D::CMeshBase::CLightMapInfoList::serial()</a>, <a class="el" href="a05992.html#l00092">NL3D::CMeshBase::CLightMapInfoList::CMatStage::serial()</a>, <a class="el" href="a05990.html#l00518">NL3D::CMeshGeom::CMatrixBlock::serial()</a>, <a class="el" href="a05990.html#l00497">NL3D::CMeshGeom::CRdrPass::serial()</a>, <a class="el" href="a05972.html#l01500">NLMISC::CMatrix::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05941.html#l00043">NL3D::CLodCharacterTexture::serial()</a>, <a class="el" href="a05939.html#l00121">NL3D::CLodCharacterShapeBank::serial()</a>, <a class="el" href="a05937.html#l00505">NL3D::CLodCharacterShape::serial()</a>, <a class="el" href="a05937.html#l00495">NL3D::CLodCharacterShape::CBoneInfluence::serial()</a>, <a class="el" href="a05937.html#l00481">NL3D::CLodCharacterShape::CAnim::serial()</a>, <a class="el" href="a05937.html#l00273">NL3D::CLodCharacterShapeBuild::serial()</a>, <a class="el" href="a05929.html#l00895">NLPACS::CLocalRetriever::serial()</a>, <a class="el" href="a05807.html#l00056">NL3D::CIGSurfaceLight::CRetrieverLightGrid::serial()</a>, <a class="el" href="a05806.html#l00098">NL3D::CIGSurfaceLight::serial()</a>, <a class="el" href="a05792.html#l00154">NL3D::CHLSTextureBank::CTextureInstance::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05790.html#l00313">NL3D::CHLSColorTexture::serial()</a>, <a class="el" href="a05790.html#l00057">NL3D::CHLSColorTexture::CMask::serial()</a>, <a class="el" href="a05790.html#l00049">NL3D::CHLSColorDelta::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05694.html#l00170">NLPACS::CFaceGrid::serial()</a>, <a class="el" href="a05692.html#l00098">NLPACS::CExteriorMesh::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05541.html#l00473">NLPACS::CChainQuad::serial()</a>, <a class="el" href="a05539.html#l00274">NLPACS::CChain::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05539.html#l00064">NLPACS::COrderedChain3f::serial()</a>, <a class="el" href="a05491.html#l00056">NL3D::CBoneBase::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>, <a class="el" href="a05447.html#l00292">NL3D::CAnimationPlaylist::serial()</a>, <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>, <a class="el" href="a05438.html#l00103">NL3D::CMaterialBase::CTexAnimTracks::serial()</a>, <a class="el" href="a05437.html#l00080">NL3D::CMaterialBase::serial()</a>, <a class="el" href="a05384.html#l00206">NLMISC::CAABBox::serial()</a>, <a class="el" href="a05968.html#l00456">NL3D::CMaterial::CLightMap::serial2()</a>, <a class="el" href="a06560.html#l00090">NL3D::CTrackSampledCommon::serialCommon()</a>, <a class="el" href="a06710.html#l00883">NL3D::CVertexBuffer::serialHeader()</a>, <a class="el" href="a06005.html#l01918">NL3D::CMeshMRMGeom::serialLodVertexData()</a>, and <a class="el" href="a06710.html#l01008">NL3D::CVertexBuffer::serialSubset()</a>.
+<p>
+<div class="fragment"><pre>00267 {
+00268 <a class="code" href="a04558.html#a7">uint8</a> b=0;
+00269 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a>=0;
+00270 <a class="code" href="a04558.html#a15">uint</a> streamVersion;
+00271
+00272 <span class="comment">// Open the node</span>
+00273 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"VERSION"</span>);
+00274
+00275 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00276 {
+00277 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b);
+00278 <span class="keywordflow">if</span>(b==0xFF)
+00279 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(v);
+00280 <span class="keywordflow">else</span>
+00281 <a class="code" href="a04223.html#a576">v</a>=b;
+00282 streamVersion=<a class="code" href="a04223.html#a576">v</a>;
+00283
+00284 <span class="comment">// Exception test.</span>
+00285 <span class="keywordflow">if</span>(_ThrowOnOlder &amp;&amp; streamVersion &lt; currentVersion)
+00286 <span class="keywordflow">throw</span> EOlderStream(*<span class="keyword">this</span>);
+00287 <span class="keywordflow">if</span>(_ThrowOnNewer &amp;&amp; streamVersion &gt; currentVersion)
+00288 <span class="keywordflow">throw</span> ENewerStream(*<span class="keyword">this</span>);
+00289 }
+00290 <span class="keywordflow">else</span>
+00291 {
+00292 <a class="code" href="a04223.html#a576">v</a>= streamVersion=currentVersion;
+00293 <span class="keywordflow">if</span>(<a class="code" href="a04223.html#a576">v</a>&gt;=0xFF)
+00294 {
+00295 b=0xFF;
+00296 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b);
+00297 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(v);
+00298 }
+00299 <span class="keywordflow">else</span>
+00300 {
+00301 b= (<a class="code" href="a04558.html#a7">uint8</a>)<a class="code" href="a04223.html#a576">v</a>;
+00302 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b);
+00303 }
+00304 }
+00305
+00306 <span class="comment">// Close the node</span>
+00307 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00308
+00309 <span class="keywordflow">return</span> streamVersion;
+00310 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagee1" doxytag="NLNET::CMessage::setDefaultStringMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::setDefaultStringMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>stringmode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set default stream mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00231">231</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06026.html#l00039">_DefaultStringMode</a>.
+<p>
+<div class="fragment"><pre>00231 { <a class="code" href="a02918.html#NLNET_1_1CMessagev0">_DefaultStringMode</a> = stringmode; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_1" doxytag="NLNET::CMessage::setInOut" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::setInOut </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>inputStream</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change, in live, the state of the inputStream. This could be usefull in certain case. The deriver which would want to do such a thing must call this method, and implement his own behavior. In certain case, it should call <a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_0">resetPtrTable()</a> if he want to reset the stream ptr info (maybe always)...
+<p>
+Definition at line <a class="el" href="a06461.html#l00413">413</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+References <a class="el" href="a06462.html#l00884">NLMISC::IStream::_InputStream</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00737">NLMISC::CBitMemStream::getSerialItem()</a>, and <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>.
+<p>
+<div class="fragment"><pre>00414 {
+00415 _InputStream= inputStream;
+00416 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama47" doxytag="NLNET::CMessage::setStringMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::CMemStream::setStringMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>stringmode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set string mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00113">113</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00072">init()</a>.
+<p>
+<div class="fragment"><pre>00113 { <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> = stringmode; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea59" doxytag="NLNET::CMessage::setType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::setType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the message type as a string and put it in the buffer if we are in writing mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00229">229</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00266">_HeaderSize</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a06026.html#l00043">FormatLong</a>, <a class="el" href="a06026.html#l00044">FormatShort</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06468.html#l00054">NLMISC::CStringIdArray::TStringId</a>, <a class="el" href="a06027.html#l00240">TypeHasAName</a>, <a class="el" href="a06027.html#l00239">TypeHasAnId</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00230 {
+00231 <span class="comment">// check if we already do a setType ()</span>
+00232 <a class="code" href="a04199.html#a6">nlassert</a> (!_TypeSet);
+00233 <span class="comment">// don't accept empty string</span>
+00234 <a class="code" href="a04199.html#a6">nlassert</a> (!name.empty ());
+00235
+00236 <a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a> = name;
+00237 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a> = <span class="keyword">false</span>;
+00238 <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a> = <span class="keyword">true</span>;
+00239
+00240 <span class="keywordflow">if</span> (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a> ())
+00241 {
+00242 <span class="comment">// check if they don't already serial some stuffs</span>
+00243 <a class="code" href="a04199.html#a6">nlassert</a> (length () == 0);
+00244
+00245 <span class="comment">// if we can send the id instead of the string, "just do it" (c)nike!</span>
+00246 <span class="comment">//NLMISC::CStringIdArray::TStringId id = _SIDA-&gt;getId (name);</span>
+00247
+00248 <span class="comment">// PATCH: always send in full text</span>
+00249 <a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a> <span class="keywordtype">id</span> = -1;
+00250
+00251 <span class="comment">// Force binary mode for header</span>
+00252 <span class="keywordtype">bool</span> msgmode = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a>;
+00253 _StringMode = <span class="keyword">false</span>;
+00254
+00255 <span class="comment">// debug features, we number all packet to be sure that they are all sent and received</span>
+00256 <span class="comment">// \todo remove this debug feature when ok</span>
+00257 <span class="comment">// this value will be fill after in the callback function</span>
+00258 <a class="code" href="a04558.html#a11">uint32</a> zeroValue = 123;
+00259 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (zeroValue);
+00260
+00261 <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == -1)
+00262 {
+00263 <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a04603.html#a0">FormatLong</a> | (msgmode &lt;&lt; 1);
+00264 <span class="comment">//nldebug( "OUT format = %hu", (uint16)format );</span>
+00265 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (format);
+00266
+00267 <span class="comment">// End of binary header</span>
+00268 _StringMode = msgmode;
+00269
+00270 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> ((std::string&amp;)name);
+00271 }
+00272 <span class="keywordflow">else</span>
+00273 {
+00274 <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a04603.html#a1">FormatShort</a> | (msgmode &lt;&lt; 1);
+00275 <span class="comment">//nldebug( "MSG: OUT format = %hu", (uint16)format );</span>
+00276 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (format);
+00277
+00278 <span class="comment">// End of binary header</span>
+00279 _StringMode = msgmode;
+00280
+00281 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>);
+00282
+00283 <a class="code" href="a02918.html#NLNET_1_1CMessager1">_Id</a> = <span class="keywordtype">id</span>;
+00284 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a> = <span class="keyword">true</span>;
+00285 }
+00286 <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a> ();
+00287 }
+00288
+00289 <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> = <span class="keyword">true</span>;
+00290 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea60" doxytag="NLNET::CMessage::setType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::setType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>id</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the message type as a number (in range 0..32767) and put it in the buffer if we are in writing mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00173">173</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00266">_HeaderSize</a>, <a class="el" href="a06027.html#l00255">_SIDA</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a06026.html#l00043">FormatLong</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06468.html#l00131">NLMISC::CStringIdArray::getString()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06468.html#l00054">NLMISC::CStringIdArray::TStringId</a>, <a class="el" href="a06027.html#l00240">TypeHasAName</a>, <a class="el" href="a06027.html#l00239">TypeHasAnId</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00072">init()</a>, <a class="el" href="a06138.html#l00085">NLNET::CPacsClient::initMessage()</a>, and <a class="el" href="a06026.html#l00319">readType()</a>.
+<p>
+<div class="fragment"><pre>00174 {
+00175 <span class="comment">// PATCH: the id system is not available</span>
+00176 <a class="code" href="a04199.html#a12">nlstop</a>;
+00177
+00178 <span class="comment">// check if we already do a setType ()</span>
+00179 <a class="code" href="a04199.html#a6">nlassert</a> (!_TypeSet);
+00180 <span class="comment">// don't accept negative value</span>
+00181 <a class="code" href="a04199.html#a6">nlassert</a> (<span class="keywordtype">id</span> &gt;= 0 &amp;&amp; <span class="keywordtype">id</span> &lt; pow(2, <span class="keyword">sizeof</span> (<a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a>)*8));
+00182
+00183 <a class="code" href="a02918.html#NLNET_1_1CMessager1">_Id</a> = <span class="keywordtype">id</span>;
+00184 <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a> = <span class="keyword">true</span>;
+00185 <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a> = <span class="keyword">false</span>;
+00186
+00187 <span class="keywordflow">if</span> (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a> ())
+00188 {
+00189 <span class="comment">// check if they don't already serial some stuffs</span>
+00190 <a class="code" href="a04199.html#a6">nlassert</a> (length () == 0);
+00191
+00192 <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a04603.html#a0">FormatLong</a> | (<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> &lt;&lt; 1);
+00193 <span class="comment">//nlinfo( "MSG: OUT format = %hu", (uint16)format );</span>
+00194
+00195 <span class="comment">// Force binary mode for header</span>
+00196 <span class="keywordtype">bool</span> msgmode = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a>;
+00197 _StringMode = <span class="keyword">false</span>;
+00198
+00199 <span class="comment">// debug features, we number all packet to be sure that they are all sent and received</span>
+00200 <span class="comment">// \todo remove this debug feature when ok</span>
+00201 <span class="comment">// this value will be fill after in the callback function</span>
+00202 <a class="code" href="a04558.html#a11">uint32</a> zeroValue = 123;
+00203 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (zeroValue);
+00204
+00205 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (format);
+00206
+00207 <span class="comment">// End of binary header</span>
+00208 _StringMode = msgmode;
+00209
+00210 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>);
+00211 <a class="code" href="a02918.html#NLNET_1_1CMessager0">_HeaderSize</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a> ();
+00212 }
+00213 <span class="keywordflow">else</span>
+00214 {
+00215 <span class="comment">// we set the id, now, we try to set the name if available in the sida</span>
+00216 <span class="keywordflow">if</span> (<a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a> != NULL)
+00217 {
+00218 <a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a> = <a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a>-&gt;<a class="code" href="a03449.html#NLMISC_1_1CStringIdArraya8">getString</a> (<span class="keywordtype">id</span>);
+00219 <a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a> = <span class="keyword">true</span>;
+00220 }
+00221 }
+00222
+00223 <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a> = <span class="keyword">true</span>;
+00224 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreame1" doxytag="NLNET::CMessage::setVersionException" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::setVersionException </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>throwOnOlder</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>throwOnNewer</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the behavior of <a class="el" href="a02270.html">IStream</a> regarding input stream that are older/newer than the class. If throwOnOlder==true, <a class="el" href="a02270.html">IStream</a> throws a <a class="el" href="a03798.html">EOlderStream</a> when needed. If throwOnNewer==true, <a class="el" href="a02270.html">IStream</a> throws a <a class="el" href="a03797.html">ENewerStream</a> when needed.<p>
+By default, the behavior is throwOnOlder=false, throwOnNewer=true. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion()</a> <a class="el" href="a02270.html#NLMISC_1_1IStreame0">getVersionException()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06461.html#l00071">71</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+References <a class="el" href="a06461.html#l00067">NLMISC::IStream::_ThrowOnNewer</a>, and <a class="el" href="a06461.html#l00066">NLMISC::IStream::_ThrowOnOlder</a>.
+<p>
+<div class="fragment"><pre>00072 {
+00073 _ThrowOnOlder=throwOnOlder;
+00074 _ThrowOnNewer=throwOnNewer;
+00075 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_2" doxytag="NLNET::CMessage::setXMLMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::setXMLMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>on</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the XML mode is true to enable XML mode else false
+<p>
+Definition at line <a class="el" href="a06461.html#l00427">427</a> of file <a class="el" href="a06461.html">stream.cpp</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>.
+<p>
+Referenced by <a class="el" href="a06107.html#l00075">NLMISC::COXml::COXml()</a>, and <a class="el" href="a06107.html#l00111">NLMISC::COXml::init()</a>.
+<p>
+<div class="fragment"><pre>00428 {
+00429 _XML = on;
+00430 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama48" doxytag="NLNET::CMessage::size" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLMISC::CMemStream::size </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the size of the buffer (can be greater than the length, especially in output mode).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00230">230</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00511">NLMISC::CMemStream::lengthR()</a>.
+<p>
+<div class="fragment"><pre>00231 {
+00232 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size();
+00233 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama49" doxytag="NLNET::CMessage::stringMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::CMemStream::stringMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return string mode.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00116">116</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00519">NLMISC::CMemStream::_StringMode</a>.
+<p>
+Referenced by <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, and <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>.
+<p>
+<div class="fragment"><pre>00116 { <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea63" doxytag="NLNET::CMessage::toString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CMessage::toString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns a readable string to display it to the screen. It's only for debugging purpose! Don't use it for anything else than to debugging, the string format could change in the futur
+<p>
+Definition at line <a class="el" href="a06026.html#l00441">441</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00255">_SIDA</a>, <a class="el" href="a06027.html#l00270">_TypeSet</a>, <a class="el" href="a06468.html#l00089">NLMISC::CStringIdArray::getId()</a>, <a class="el" href="a06468.html#l00131">NLMISC::CStringIdArray::getString()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, <a class="el" href="a06027.html#l00240">TypeHasAName</a>, and <a class="el" href="a06027.html#l00239">TypeHasAnId</a>.
+<p>
+Referenced by <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>.
+<p>
+<div class="fragment"><pre>00442 {
+00443 <a class="code" href="a04199.html#a6">nlassert</a> (_TypeSet);
+00444 <span class="comment">// std::stringstream s;</span>
+00445 <span class="comment">// if (TypeHasAName &amp;&amp; TypeHasAnId) s &lt;&lt; "('" &lt;&lt; _Name &lt;&lt; "'," &lt;&lt; _Id &lt;&lt; ")";</span>
+00446 <span class="comment">// else if (TypeHasAName) s &lt;&lt; "('" &lt;&lt; _Name &lt;&lt; "'," &lt;&lt; _SIDA-&gt;getId (_Name, true) &lt;&lt; ")";</span>
+00447 <span class="comment">// else if (TypeHasAnId) s &lt;&lt; "('" &lt;&lt; _SIDA-&gt;getString (_Id) &lt;&lt; "'," &lt;&lt; _Id &lt;&lt; "')";</span>
+00448 <span class="comment">// return s.str();</span>
+00449 std::string str;
+00450 <span class="keywordflow">if</span> (<a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a> &amp;&amp; <a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a>) str += <span class="stringliteral">"('"</span> + <a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a> + <span class="stringliteral">"',"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(_Id) + <span class="stringliteral">")"</span>;
+00451 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a02918.html#NLNET_1_1CMessageo0">TypeHasAName</a>) str += <span class="stringliteral">"('"</span> + <a class="code" href="a02918.html#NLNET_1_1CMessager3">_Name</a> + <span class="stringliteral">"',"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(<a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a>-&gt;<a class="code" href="a03449.html#NLMISC_1_1CStringIdArraya6">getId</a> (_Name, <span class="keyword">true</span>)) + <span class="stringliteral">")"</span>;
+00452 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a02918.html#NLNET_1_1CMessageo1">TypeHasAnId</a>) str += <span class="stringliteral">"('"</span> + <a class="code" href="a02918.html#NLNET_1_1CMessager4">_SIDA</a>-&gt;<a class="code" href="a03449.html#NLMISC_1_1CStringIdArraya8">getString</a> (_Id) + <span class="stringliteral">"',"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(_Id) + <span class="stringliteral">"')"</span>;
+00453 <span class="keywordflow">return</span> str;
+00454 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea64" doxytag="NLNET::CMessage::typeIsSet" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CMessage::typeIsSet </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00392">392</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+References <a class="el" href="a06027.html#l00270">_TypeSet</a>.
+<p>
+<div class="fragment"><pre>00393 {
+00394 <span class="keywordflow">return</span> <a class="code" href="a02918.html#NLNET_1_1CMessager6">_TypeSet</a>;
+00395 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea65" doxytag="NLNET::CMessage::unlockSubMessage" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CMessage::unlockSubMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Exit from sub message locking, and skip the whole sub message.<p>
+Preconditions:<ul>
+<li>The message is an input message (<a class="el" href="a02270.html#NLMISC_1_1IStreama0">isReading()</a>) and has been locked using <a class="el" href="a02918.html#NLNET_1_1CMessagea26">lockSubMessage()</a></li><li>The reading pos is within or at the end of the previous sub message (if any) (see nlassertex)</li></ul>
+<p>
+Postconditions:<ul>
+<li>The current pos is the next byte after the sub message</li></ul>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00164">164</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+References <a class="el" href="a06027.html#l00263">_LengthR</a>, <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a06027.html#l00248">resetSubMessageInternals()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00165 {
+00166 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() &amp;&amp; <a class="code" href="a02918.html#NLNET_1_1CMessagea19">hasLockedSubMessage</a>() );
+00167 <a class="code" href="a04199.html#a8">nlassertex</a>( <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>() &lt;= (<a class="code" href="a04558.html#a10">sint32</a>)_LengthR, (<span class="stringliteral">"The callback for msg %s read more data than there is in the message (pos=%d len=%u)"</span>, <a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a>().c_str(), <a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>(), _LengthR) );
+00168
+00169 <a class="code" href="a04558.html#a11">uint32</a> subMsgEndPos = _LengthR;
+00170 <a class="code" href="a02918.html#NLNET_1_1CMessageb2">resetSubMessageInternals</a>();
+00171 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( subMsgEndPos, IStream::begin );
+00172 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2039_0" doxytag="NLNET::CMessage::xmlBreakLine" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlBreakLine </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_0">xmlBreakLine()</a> insert a break line in the XML stream.<p>
+<dl compact><dt><b>Returns:</b></dt><dd>true if the break line is added, return false if no node is opened.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00794">794</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, and <a class="el" href="a06462.html#l00845">NLMISC::IStream::xmlBreakLineInternal()</a>.
+<p>
+<div class="fragment"><pre>00795 {
+00796 <span class="comment">// XML Mode ?</span>
+00797 <span class="keywordflow">if</span> (_XML)
+00798 {
+00799 <span class="keywordflow">return</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_3">xmlBreakLineInternal</a> ();
+00800 }
+00801
+00802 <span class="comment">// Return ok</span>
+00803 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00804 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_3" doxytag="NLNET::CMessage::xmlBreakLineInternal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLMISC::IStream::xmlBreakLineInternal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+xmlBreakLine implementation
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03032.html#NLMISC_1_1COXmld18">NLMISC::COXml</a>.
+<p>
+Definition at line <a class="el" href="a06462.html#l00845">845</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06462.html#l00794">NLMISC::IStream::xmlBreakLine()</a>.
+<p>
+<div class="fragment"><pre>00845 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2039_1" doxytag="NLNET::CMessage::xmlComment" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlComment </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>comment</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_1">xmlComment()</a> insert a comment line in the XML stream.<p>
+<dl compact><dt><b>Returns:</b></dt><dd>true if the comment is added, return false if no node is opened.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00811">811</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, <a class="el" href="a04115.html#a118">comment()</a>, and <a class="el" href="a06462.html#l00848">NLMISC::IStream::xmlCommentInternal()</a>.
+<p>
+<div class="fragment"><pre>00812 {
+00813 <span class="comment">// XML Mode ?</span>
+00814 <span class="keywordflow">if</span> (_XML)
+00815 {
+00816 <span class="keywordflow">return</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_4">xmlCommentInternal</a> (comment);
+00817 }
+00818
+00819 <span class="comment">// Return ok</span>
+00820 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00821 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_4" doxytag="NLNET::CMessage::xmlCommentInternal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLMISC::IStream::xmlCommentInternal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>comment</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+xmlComment implementation
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03032.html#NLMISC_1_1COXmld19">NLMISC::COXml</a>.
+<p>
+Definition at line <a class="el" href="a06462.html#l00848">848</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06462.html#l00811">NLMISC::IStream::xmlComment()</a>.
+<p>
+<div class="fragment"><pre>00848 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2039_2" doxytag="NLNET::CMessage::xmlPop" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlPop </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop()</a> close the node.<p>
+<dl compact><dt><b>Returns:</b></dt><dd>true if you can close the node, false if the node can't be closed (its header is still opened) or if there is no node to close.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00759">759</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, and <a class="el" href="a06462.html#l00839">NLMISC::IStream::xmlPopInternal()</a>.
+<p>
+Referenced by <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, <a class="el" href="a06107.html#l00315">NLMISC::COXml::serial()</a>, <a class="el" href="a06107.html#l00373">NLMISC::COXml::serialBuffer()</a>, <a class="el" href="a06462.html#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06462.html#l01271">NLMISC::IStream::serialMultimap()</a>, <a class="el" href="a06462.html#l00390">NLMISC::IStream::serialPtr()</a>, <a class="el" href="a06462.html#l00955">NLMISC::IStream::serialSTLCont()</a>, <a class="el" href="a06462.html#l00905">NLMISC::IStream::serialSTLContLen()</a>, <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>, <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, and <a class="el" href="a06462.html#l00647">NLMISC::IStream::xmlSerial()</a>.
+<p>
+<div class="fragment"><pre>00760 {
+00761 <span class="comment">// XML Mode ?</span>
+00762 <span class="keywordflow">if</span> (_XML)
+00763 {
+00764 <span class="keywordflow">return</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_5">xmlPopInternal</a> ();
+00765 }
+00766
+00767 <span class="comment">// Return ok</span>
+00768 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00769 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_5" doxytag="NLNET::CMessage::xmlPopInternal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLMISC::IStream::xmlPopInternal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+xmlPop implementation
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03032.html#NLMISC_1_1COXmld20">NLMISC::COXml</a>.
+<p>
+Definition at line <a class="el" href="a06462.html#l00839">839</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>.
+<p>
+<div class="fragment"><pre>00839 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2038_0" doxytag="NLNET::CMessage::xmlPush" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlPush </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00701">701</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a06462.html#l00833">NLMISC::IStream::xmlPushBeginInternal()</a>, and <a class="el" href="a06462.html#l00836">NLMISC::IStream::xmlPushEndInternal()</a>.
+<p>
+Referenced by <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, <a class="el" href="a06107.html#l00315">NLMISC::COXml::serial()</a>, <a class="el" href="a06107.html#l00373">NLMISC::COXml::serialBuffer()</a>, <a class="el" href="a06462.html#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06462.html#l01271">NLMISC::IStream::serialMultimap()</a>, <a class="el" href="a06462.html#l00905">NLMISC::IStream::serialSTLContLen()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, and <a class="el" href="a06462.html#l00647">NLMISC::IStream::xmlSerial()</a>.
+<p>
+<div class="fragment"><pre>00702 {
+00703 <span class="comment">// XML Mode ?</span>
+00704 <span class="keywordflow">if</span> (_XML)
+00705 {
+00706 <span class="comment">// Open the header</span>
+00707 <span class="keywordtype">bool</span> <a class="code" href="a04223.html#a643">res</a>=<a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_6">xmlPushBeginInternal</a> (name);
+00708 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a643">res</a>)
+00709 <span class="comment">// close the header</span>
+00710 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_7">xmlPushEndInternal</a> ();
+00711 <span class="comment">// Return the result</span>
+00712 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a643">res</a>;
+00713 }
+00714
+00715 <span class="comment">// Return ok</span>
+00716 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00717 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2039_3" doxytag="NLNET::CMessage::xmlPushBegin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlPushBegin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_0">xmlBreakLine()</a> insert a break line in the XML stream.<p>
+<dl compact><dt><b>Returns:</b></dt><dd>true if the break line is added, return false if no node is opened.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00725">725</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, and <a class="el" href="a06462.html#l00833">NLMISC::IStream::xmlPushBeginInternal()</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06462.html#l01271">NLMISC::IStream::serialMultimap()</a>, <a class="el" href="a06462.html#l00390">NLMISC::IStream::serialPtr()</a>, <a class="el" href="a06462.html#l00955">NLMISC::IStream::serialSTLCont()</a>, <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>, and <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>.
+<p>
+<div class="fragment"><pre>00726 {
+00727 <span class="comment">// XML Mode ?</span>
+00728 <span class="keywordflow">if</span> (_XML)
+00729 {
+00730 <span class="keywordflow">return</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_6">xmlPushBeginInternal</a> (name);
+00731 }
+00732
+00733 <span class="comment">// Return ok</span>
+00734 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00735 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_6" doxytag="NLNET::CMessage::xmlPushBeginInternal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLMISC::IStream::xmlPushBeginInternal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+xmlPushBegin implementation
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03032.html#NLMISC_1_1COXmld21">NLMISC::COXml</a>.
+<p>
+Definition at line <a class="el" href="a06462.html#l00833">833</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>, and <a class="el" href="a06462.html#l00725">NLMISC::IStream::xmlPushBegin()</a>.
+<p>
+<div class="fragment"><pre>00833 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2039_4" doxytag="NLNET::CMessage::xmlPushEnd" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlPushEnd </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd()</a> close the node header.<p>
+<dl compact><dt><b>Returns:</b></dt><dd>true if you can close the node header, false if no node header have been opened with <a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin()</a>.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00742">742</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, and <a class="el" href="a06462.html#l00836">NLMISC::IStream::xmlPushEndInternal()</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06462.html#l01271">NLMISC::IStream::serialMultimap()</a>, <a class="el" href="a06462.html#l00390">NLMISC::IStream::serialPtr()</a>, <a class="el" href="a06462.html#l00955">NLMISC::IStream::serialSTLCont()</a>, <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>, and <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>.
+<p>
+<div class="fragment"><pre>00743 {
+00744 <span class="comment">// XML Mode ?</span>
+00745 <span class="keywordflow">if</span> (_XML)
+00746 {
+00747 <span class="keywordflow">return</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_7">xmlPushEndInternal</a> ();
+00748 }
+00749
+00750 <span class="comment">// Return ok</span>
+00751 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00752 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_7" doxytag="NLNET::CMessage::xmlPushEndInternal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLMISC::IStream::xmlPushEndInternal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+xmlPushEnd implementation
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03032.html#NLMISC_1_1COXmld22">NLMISC::COXml</a>.
+<p>
+Definition at line <a class="el" href="a06462.html#l00836">836</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>, and <a class="el" href="a06462.html#l00742">NLMISC::IStream::xmlPushEnd()</a>.
+<p>
+<div class="fragment"><pre>00836 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2037_0" doxytag="NLNET::CMessage::xmlSerial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value2</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value3</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>nodeName</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00683">683</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>.
+<p>
+<div class="fragment"><pre>00684 {
+00685 <span class="comment">// Open the node</span>
+00686 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName);
+00687
+00688 <span class="comment">// Serial the values</span>
+00689 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0, value1, value2, value3);
+00690
+00691 <span class="comment">// Close the node</span>
+00692 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00693 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2037_1" doxytag="NLNET::CMessage::xmlSerial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value2</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>nodeName</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00671">671</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>.
+<p>
+<div class="fragment"><pre>00672 {
+00673 <span class="comment">// Open the node</span>
+00674 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName);
+00675
+00676 <span class="comment">// Serial the values</span>
+00677 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0, value1, value2);
+00678
+00679 <span class="comment">// Close the node</span>
+00680 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00681 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2037_2" doxytag="NLNET::CMessage::xmlSerial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>nodeName</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00659">659</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>.
+<p>
+<div class="fragment"><pre>00660 {
+00661 <span class="comment">// Open the node</span>
+00662 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName);
+00663
+00664 <span class="comment">// Serial the values</span>
+00665 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0, value1);
+00666
+00667 <span class="comment">// Close the node</span>
+00668 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00669 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2037_3" doxytag="NLNET::CMessage::xmlSerial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" colspan="4">
+template&lt;class T&gt; </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>nodeName</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2037_3">xmlSerial()</a> serial a values into a node.
+<p>
+Definition at line <a class="el" href="a06462.html#l00647">647</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>.
+<p>
+Referenced by <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06772.html#l00101">NLLIGO::CZoneRegion::SZoneUnit2::serial()</a>, <a class="el" href="a06772.html#l00057">NLLIGO::CZoneRegion::SZoneUnit::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06758.html#l00421">NL3D::CPatchInfo::CBindInfo::serial()</a>, <a class="el" href="a06758.html#l00410">NL3D::CZone::CPatchConnect::serial()</a>, <a class="el" href="a06758.html#l00402">NL3D::CBorderVertex::serial()</a>, <a class="el" href="a06540.html#l00082">NL3D::CTileElement::serial()</a>, <a class="el" href="a06539.html#l00080">NL3D::CTileColorOldPatchVersion6::serial()</a>, <a class="el" href="a06539.html#l00056">NL3D::CTileColor::serial()</a>, and <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>.
+<p>
+<div class="fragment"><pre>00648 {
+00649 <span class="comment">// Open the node</span>
+00650 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName);
+00651
+00652 <span class="comment">// Serial the value</span>
+00653 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0);
+00654
+00655 <span class="comment">// Close the node</span>
+00656 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> ();
+00657 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2039_5" doxytag="NLNET::CMessage::xmlSetAttrib" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLMISC::IStream::xmlSetAttrib </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<a class="el" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib()</a> set the name of the next node header attribute serialised.<p>
+is the name of the node header attribute serialised. <dl compact><dt><b>Returns:</b></dt><dd>true if the attribute name have been set, false if the node header is not open (the call is not between xmlPushBegin and xmlPushEnd)</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06462.html#l00777">777</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l01443">NLMISC::IStream::_XML</a>, and <a class="el" href="a06462.html#l00842">NLMISC::IStream::xmlSetAttribInternal()</a>.
+<p>
+Referenced by <a class="el" href="a06116.html#l00260">NLMISC::CObjectVector&lt; sint8, false &gt;::serial()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06462.html#l01271">NLMISC::IStream::serialMultimap()</a>, <a class="el" href="a06462.html#l00390">NLMISC::IStream::serialPtr()</a>, <a class="el" href="a06462.html#l00955">NLMISC::IStream::serialSTLCont()</a>, <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>, and <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>.
+<p>
+<div class="fragment"><pre>00778 {
+00779 <span class="comment">// XML Mode ?</span>
+00780 <span class="keywordflow">if</span> (_XML)
+00781 {
+00782 <span class="keywordflow">return</span> <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_8">xmlSetAttribInternal</a> (name);
+00783 }
+00784
+00785 <span class="comment">// Return ok</span>
+00786 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00787 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2040_8" doxytag="NLNET::CMessage::xmlSetAttribInternal" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLMISC::IStream::xmlSetAttribInternal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>name</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+xmlBreakLine implementation
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03032.html#NLMISC_1_1COXmld23">NLMISC::COXml</a>.
+<p>
+Definition at line <a class="el" href="a06462.html#l00842">842</a> of file <a class="el" href="a06462.html">stream.h</a>.
+<p>
+Referenced by <a class="el" href="a06462.html#l00777">NLMISC::IStream::xmlSetAttrib()</a>.
+<p>
+<div class="fragment"><pre>00842 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CStringStreamp0" doxytag="NLNET::CMessage::_Buffer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> CObjectVector&lt;<a class="el" href="a04558.html#a7">uint8</a>, false&gt; <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp0">NLMISC::CMemStream::_Buffer</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00516">516</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamp1" doxytag="NLNET::CMessage::_BufPos" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a>* <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp1">NLMISC::CMemStream::_BufPos</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00517">517</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a05979.html#l00086">NLMISC::CMemStream::CMemStream()</a>, <a class="el" href="a05979.html#l00404">NLMISC::CMemStream::fastRead()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05979.html#l00395">NLMISC::CMemStream::fastWrite()</a>, <a class="el" href="a05979.html#l00277">NLMISC::CMemStream::fill()</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>, <a class="el" href="a05979.html#l00190">NLMISC::CMemStream::poke()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, <a class="el" href="a05979.html#l00270">NLMISC::CMemStream::resetBufPos()</a>, <a class="el" href="a05978.html#l00235">NLMISC::CMemStream::resize()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00338">NLMISC::CMemStream::serialSeparatedBufferOut()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamp2" doxytag="NLNET::CMessage::_DefaultCapacity" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp2">NLMISC::CMemStream::_DefaultCapacity</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00521">521</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a05979.html#l00086">NLMISC::CMemStream::CMemStream()</a>, and <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagev0" doxytag="NLNET::CMessage::_DefaultStringMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02918.html#NLNET_1_1CMessagev0">NLNET::CMessage::_DefaultStringMode</a> = false<code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00039">39</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00072">init()</a>, and <a class="el" href="a06027.html#l00231">setDefaultStringMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager0" doxytag="NLNET::CMessage::_HeaderSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02918.html#NLNET_1_1CMessager0">NLNET::CMessage::_HeaderSize</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00266">266</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00309">getHeaderSize()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a06026.html#l00319">readType()</a>, and <a class="el" href="a06026.html#l00173">setType()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager1" doxytag="NLNET::CMessage::_Id" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03449.html#NLMISC_1_1CStringIdArrayw0">NLMISC::CStringIdArray::TStringId</a> <a class="el" href="a02918.html#NLNET_1_1CMessager1">NLNET::CMessage::_Id</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00268">268</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00118">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager2" doxytag="NLNET::CMessage::_LengthR" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02918.html#NLNET_1_1CMessager2">NLNET::CMessage::_LengthR</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00263">263</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a06026.html#l00398">clear()</a>, <a class="el" href="a06027.html#l00117">lengthR()</a>, <a class="el" href="a06027.html#l00143">lockSubMessage()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a06027.html#l00248">resetSubMessageInternals()</a>, and <a class="el" href="a06027.html#l00164">unlockSubMessage()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager3" doxytag="NLNET::CMessage::_Name" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a02918.html#NLNET_1_1CMessager3">NLNET::CMessage::_Name</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00257">257</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00118">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager4" doxytag="NLNET::CMessage::_SIDA" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03449.html">NLMISC::CStringIdArray</a>* <a class="el" href="a02918.html#NLNET_1_1CMessager4">NLNET::CMessage::_SIDA</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00255">255</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, and <a class="el" href="a06026.html#l00441">toString()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamp3" doxytag="NLNET::CMessage::_StringMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp3">NLMISC::CMemStream::_StringMode</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05979.html#l00519">519</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05979.html#l00086">NLMISC::CMemStream::CMemStream()</a>, <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>, <a class="el" href="a05979.html#l00561">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05979.html#l00929">NLMISC::CMemStream::serialHex()</a>, <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>, <a class="el" href="a05978.html#l00338">NLMISC::CMemStream::serialSeparatedBufferOut()</a>, <a class="el" href="a05979.html#l00113">NLMISC::CMemStream::setStringMode()</a>, and <a class="el" href="a05979.html#l00116">NLMISC::CMemStream::stringMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager5" doxytag="NLNET::CMessage::_SubMessagePosR" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02918.html#NLNET_1_1CMessager5">NLNET::CMessage::_SubMessagePosR</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00260">260</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a06026.html#l00398">clear()</a>, <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a06027.html#l00175">hasLockedSubMessage()</a>, <a class="el" href="a06027.html#l00143">lockSubMessage()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, and <a class="el" href="a06027.html#l00248">resetSubMessageInternals()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessager6" doxytag="NLNET::CMessage::_TypeSet" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02918.html#NLNET_1_1CMessager6">NLNET::CMessage::_TypeSet</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00270">270</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00151">assignFromSubMessage()</a>, <a class="el" href="a06026.html#l00398">clear()</a>, <a class="el" href="a06026.html#l00432">getId()</a>, <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a06027.html#l00198">invert()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, <a class="el" href="a06026.html#l00441">toString()</a>, and <a class="el" href="a06026.html#l00392">typeIsSet()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessageo0" doxytag="NLNET::CMessage::TypeHasAName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02918.html#NLNET_1_1CMessageo0">NLNET::CMessage::TypeHasAName</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00240">240</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00411">getName()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, and <a class="el" href="a06026.html#l00441">toString()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessageo1" doxytag="NLNET::CMessage::TypeHasAnId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02918.html#NLNET_1_1CMessageo1">NLNET::CMessage::TypeHasAnId</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06027.html#l00239">239</a> of file <a class="el" href="a06027.html">message.h</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00432">getId()</a>, <a class="el" href="a06026.html#l00118">operator=()</a>, <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>, <a class="el" href="a06026.html#l00173">setType()</a>, and <a class="el" href="a06026.html#l00441">toString()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06027.html">message.h</a><li><a class="el" href="a06026.html">message.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:59:58 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>