aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02269.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/a02269.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02269.html')
-rw-r--r--docs/doxygen/nel/a02269.html7104
1 files changed, 7104 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02269.html b/docs/doxygen/nel/a02269.html
new file mode 100644
index 00000000..3e75c092
--- /dev/null
+++ b/docs/doxygen/nel/a02269.html
@@ -0,0 +1,7104 @@
+<!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: NLMISC::CBitMemStream 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>NLMISC::CBitMemStream Class Reference</h1><code>#include &lt;<a class="el" href="a05483.html">bit_mem_stream.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLMISC::CBitMemStream:
+<p><center><img src="a02269.png" usemap="#NLMISC::CBitMemStream_map" border="0" alt=""></center>
+<map name="NLMISC::CBitMemStream_map">
+<area href="a02271.html" alt="NLMISC::CMemStream" shape="rect" coords="0,56,154,80">
+<area href="a02270.html" alt="NLMISC::IStream" shape="rect" coords="0,0,154,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Bit-oriented memory stream<p>
+How output mode works: In <a class="el" href="a02271.html">CMemStream</a>, _BufPos points to the end of the stream, where to write new data. In <a class="el" href="a02269.html">CBitMemStream</a>, _BufPos points to the last byte of the stream, where to write new data. Then _FreeBits tells the number of bits not used in this byte (i.e. (8-_FreeBits) is the number of bits already filled inside this byte). The minimum buffer size is 1: when nothing has been written yet, the position is at beginning and _FreeBits is 8.<p>
+How input mode works: Same as in <a class="el" href="a02271.html">CMemStream</a>, but some bits may be free in the last byte (the information about how many is not stored in the <a class="el" href="a02269.html">CBitMemStream</a> object, the reader needs to know the format of the data it reads).<p>
+<dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001, 2003 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00356">356</a> of file <a class="el" href="a05483.html">bit_mem_stream.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 colspan=2><br><h2>Public Member Functions</h2></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="a02269.html#NLMISC_1_1CBitMemStreama1">bufferToFill</a> (<a class="el" href="a04558.html#a11">uint32</a> msgsize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See doc in <a class="el" href="a02271.html#NLMISC_1_1CStringStreama1">CMemStream::bufferToFill()</a>. <a href="#NLMISC_1_1CBitMemStreama1"></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="a02269.html#NLMISC_1_1CBitMemStreama2">CBitMemStream</a> (const <a class="el" href="a02269.html">CBitMemStream</a> &amp;other)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <a href="#NLMISC_1_1CBitMemStreama2"></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="a02269.html#NLMISC_1_1CBitMemStreama3">CBitMemStream</a> (bool inputStream=false, <a class="el" href="a04558.html#a11">uint32</a> defaultcapacity=32)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NLMISC_1_1CBitMemStreama3"></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="a02269.html#NLMISC_1_1CBitMemStreama4">clear</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the message. <a href="#NLMISC_1_1CBitMemStreama4"></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="a02269.html#NLMISC_1_1CBitMemStreama5">displayLastBits</a> (<a class="el" href="a04558.html#a14">sint</a> nbits, <a class="el" href="a04558.html#a14">sint</a> bitpos=-1, <a class="el" href="a02813.html">NLMISC::CLog</a> *log=<a class="el" href="a05378.html#a13">NLMISC::DebugLog</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display the bits of the stream just before the specified bitpos (or current pos if -1). <a href="#NLMISC_1_1CBitMemStreama5"></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="a02269.html#NLMISC_1_1CBitMemStreama6">displayStream</a> (const char *title="", <a class="el" href="a02813.html">CLog</a> *log=<a class="el" href="a05378.html#a13">NLMISC::DebugLog</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the stream as a string with 0 and 1. <a href="#NLMISC_1_1CBitMemStreama6"></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="a02269.html#NLMISC_1_1CBitMemStreama10">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="mdescLeft">&nbsp;</td><td class="mdescRight">See doc in <a class="el" href="a02271.html#NLMISC_1_1CStringStreama8">CMemStream::fill()</a>. <a href="#NLMISC_1_1CBitMemStreama10"></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_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><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bit from the beginning of the buffer (in bit). <a href="#NLMISC_1_1CBitMemStreama13"></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="a02269.html#NLMISC_1_1CBitMemStreama14">getSerialItem</a> (const <a class="el" href="a03899.html">TBMSSerialInfo</a> &amp;serialItem)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a string showing the serial item. <a href="#NLMISC_1_1CBitMemStreama14"></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>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama16">invert</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transforms the message from input to output or from output to input. <a href="#NLMISC_1_1CBitMemStreama16"></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_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="a02269.html#NLMISC_1_1CBitMemStreama19">length</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02269.html">CBitMemStream</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama20">operator=</a> (const <a class="el" href="a02269.html">CBitMemStream</a> &amp;other)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. <a href="#NLMISC_1_1CBitMemStreama20"></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="a02269.html#NLMISC_1_1CBitMemStreama22">poke</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> bitpos, <a class="el" href="a04558.html#a15">uint</a> nbits)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama23">pokeBits</a> (const <a class="el" href="a02272.html">NLMISC::CBitSet</a> &amp;bitfield, <a class="el" href="a04558.html#a15">uint</a> bitpos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama24">readBits</a> (<a class="el" href="a02272.html">NLMISC::CBitSet</a> &amp;bitfield)</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="a02269.html#NLMISC_1_1CBitMemStreama26">reserveBits</a> (<a class="el" href="a04558.html#a15">uint</a> nbits)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama27">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="a02269.html#NLMISC_1_1CBitMemStreama36">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="#NLMISC_1_1CBitMemStreama36"></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="a02269.html#NLMISC_1_1CBitMemStreama37">serial</a> (<a class="el" href="a04558.html#a13">uint64</a> &amp;<a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> nbits)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> nbits, bool resetvalue=true)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama39">serialBit</a> (bool &amp;bit)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialize one bit. <a href="#NLMISC_1_1CBitMemStreama39"></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="a02269.html#NLMISC_1_1CBitMemStreama40">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">Serialize a buffer. <a href="#NLMISC_1_1CBitMemStreama40"></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="a02269.html#NLMISC_1_1CBitMemStreama42">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama42"></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="a02269.html#NLMISC_1_1CBitMemStreama43">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;sint8&gt;. <a href="#NLMISC_1_1CBitMemStreama43"></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="a02269.html#NLMISC_1_1CBitMemStreama44">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;uint8&gt;. <a href="#NLMISC_1_1CBitMemStreama44"></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="a02269.html#NLMISC_1_1CBitMemStreama45">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama45"></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="a02269.html#NLMISC_1_1CBitMemStreama46">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama46"></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="a02269.html#NLMISC_1_1CBitMemStreama47">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama47"></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="a02269.html#NLMISC_1_1CBitMemStreama48">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama48"></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="a02269.html#NLMISC_1_1CBitMemStreama49">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama49"></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="a02269.html#NLMISC_1_1CBitMemStreama50">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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;. <a href="#NLMISC_1_1CBitMemStreama50"></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="a02269.html#NLMISC_1_1CBitMemStreama51">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> (<a class="el" href="a02271.html">CMemStream</a> &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="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><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 colspan="2"><div class="groupHeader">Base type serialisation.</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="a02269.html#NLMISC_1_1CBitMemStreamz1916_0">serial</a> (<a class="el" href="a02269.html">CBitMemStream</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="a02269.html#NLMISC_1_1CBitMemStreamz1916_1">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_2">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_3">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_4">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_5">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_6">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_7">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_8">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_9">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_10">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_11">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_12">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_13">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="a02269.html#NLMISC_1_1CBitMemStreamz1916_14">serial</a> (<a class="el" href="a04558.html#a7">uint8</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="a02269.html#NLMISC_1_1CBitMemStreamz1916_15">serialMemStream</a> (<a class="el" href="a02269.html">CBitMemStream</a> &amp;b)</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="a02270.html#NLMISC_1_1IStreame1">setVersionException</a> (bool throwOnOlder, bool throwOnNewer)</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="a02269.html#NLMISC_1_1CBitMemStreamb0">increaseBufferIfNecessary</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb1">internalSerial</a> (<a class="el" href="a04558.html#a13">uint64</a> &amp;<a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> nbits)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> nbits, bool resetvalue=true)</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_1CStringStreamb0">lengthR</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="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="a02269.html#NLMISC_1_1CBitMemStreamb5">pointNextByte</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb6">prepareNextByte</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb7">serialPoke</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> nbits)</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><a class="el" href="a03000.html">CObjectVector</a>&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="a02276.html">CBMSDbgInfo</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Debug details about what was serialised. <a href="#NLMISC_1_1CBitMemStreamp2"></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_1CStringStreamp2">_DefaultCapacity</a></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="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of bits unused at the current pos. If 8, means the current pos if full and we need to increment the pos! <a href="#NLMISC_1_1CBitMemStreamp4"></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_1CStringStreamp3">_StringMode</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLMISC_1_1IStreamz2036_0" doxytag="NLMISC::CBitMemStream::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>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama3" doxytag="NLMISC::CBitMemStream::CBitMemStream" ></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"> NLMISC::CBitMemStream::CBitMemStream </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">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="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>defaultcapacity</em> = 32</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>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05482.html#l00051">51</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00382">resetBufPos()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00051 :
+00052 <a class="code" href="a02271.html#NLMISC_1_1CMemStreama4">CMemStream</a>( inputStream, <span class="keyword">false</span>, defaultcapacity ),
+00053 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>( 0 )
+00054 {
+00055 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama27">resetBufPos</a>();
+00056 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama2" doxytag="NLMISC::CBitMemStream::CBitMemStream" ></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"> NLMISC::CBitMemStream::CBitMemStream </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02269.html">CBitMemStream</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="a05482.html#l00062">62</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+<div class="fragment"><pre>00062 :
+00063 <a class="code" href="a02271.html#NLMISC_1_1CMemStreama4">CMemStream</a>( other ),
+00064 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>( other._FreeBits ),
+00065 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>( other._DbgInfo )
+00066 {
+00067 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLMISC_1_1CStringStreama0" doxytag="NLMISC::CBitMemStream::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">NLNET::CMessage::assignFromSubMessage()</a>, <a class="el" href="a05482.html#l00652">NLMISC::displayBitStream()</a>, <a class="el" href="a06026.html#l00460">NLNET::CMessage::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">serialMemStream()</a>, and <a class="el" href="a06026.html#l00472">NLNET::CMessage::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_1CBitMemStreama1" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+See doc in <a class="el" href="a02271.html#NLMISC_1_1CStringStreama1">CMemStream::bufferToFill()</a>.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama1">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00460">460</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00275">NLMISC::CBMSDbgInfo::clear()</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="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00461 {
+00462 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> = 8;
+00463 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.clear();
+00464 <span class="keywordflow">return</span> CMemStream::bufferToFill( msgsize );
+00465 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama4" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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> [inline, 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="a05483.html#l00436">436</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00382">resetBufPos()</a>.
+<p>
+<div class="fragment"><pre>00437 {
+00438 CMemStream::clear();
+00439 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama27">resetBufPos</a>();
+00440 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama5" doxytag="NLMISC::CBitMemStream::displayLastBits" ></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::CBitMemStream::displayLastBits </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbits</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>bitpos</em> = -1, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02813.html">NLMISC::CLog</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>log</em> = <a class="el" href="a05378.html#a13">NLMISC::DebugLog</a></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>
+Display the bits of the stream just before the specified bitpos (or current pos if -1).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05482.html#l00641">641</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05482.html#l00652">NLMISC::displayBitStream()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+<div class="fragment"><pre>00642 {
+00643 <span class="keywordflow">if</span> ( bitpos == -1 )
+00644 bitpos = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>();
+00645 <a class="code" href="a05378.html#a251">displayBitStream</a>( *<span class="keyword">this</span>, max(bitpos-nbits, 0), bitpos-1, log );
+00646 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama6" doxytag="NLMISC::CBitMemStream::displayStream" ></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::CBitMemStream::displayStream </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>title</em> = "", </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02813.html">CLog</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>log</em> = <a class="el" href="a05378.html#a13">NLMISC::DebugLog</a></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>
+Returns the stream as a string with 0 and 1.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05482.html#l00673">673</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00283">NLMISC::CBMSDbgInfo::beginEventBrowsing()</a>, <a class="el" href="a05943.html#l00323">NLMISC::CLog::displayNL()</a>, <a class="el" href="a05943.html#l00442">NLMISC::CLog::displayRawNL()</a>, <a class="el" href="a05483.html#l00292">NLMISC::CBMSDbgInfo::endEventBrowsing()</a>, <a class="el" href="a05483.html#l00300">NLMISC::CBMSDbgInfo::getEventIdAtBitPos()</a>, <a class="el" href="a05483.html#l00765">NLMISC::CBMSDbgInfo::getEventLegendAtBitPos()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</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="a05646.html#l00977">s</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</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>00674 {
+00675 <a class="code" href="a04199.html#a6">nlassert</a>( (_BufPos &gt;= <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()) &amp;&amp; (<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> &lt;= <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size()) );
+00676
+00677 <span class="comment">// Display title and information</span>
+00678 string <a class="code" href="a04223.html#a626">s</a> = (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?string(<span class="stringliteral">"I"</span>):string("O")) + string("BMS ") + string(title) + ": ";
+00679 string sLegend;
+00680 <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() )
+00681 {
+00682 log-&gt;displayNL( (s + <span class="stringliteral">"Empty"</span>).c_str() );
+00683 <span class="keywordflow">return</span>;
+00684 }
+00685
+00686 <a class="code" href="a04223.html#a626">s</a> += <a class="code" href="a05378.html#a244">NLMISC::toString</a>( <span class="stringliteral">"BitPos=%d Pos=%u FreeBits=%u Size=%u "</span>, <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>(), (<a class="code" href="a04558.html#a11">uint32</a>)(_BufPos-<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()), <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>, <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() );
+00687 log-&gt;displayNL( <a class="code" href="a04223.html#a626">s</a>.c_str() );
+00688 <a class="code" href="a04223.html#a626">s</a>.clear();
+00689
+00690 <span class="comment">// Display bitstream (output: until _BufPos/_FreeBits; input: whole buffer)</span>
+00691 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.beginEventBrowsing();
+00692 <a class="code" href="a04558.html#a10">sint32</a> eventId;
+00693 <a class="code" href="a04558.html#a11">uint32</a> bitpos = 0;
+00694 <a class="code" href="a04558.html#a7">uint8</a> *p;
+00695 <a class="code" href="a04558.html#a7">uint8</a> *endPos = <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</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="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>+1);
+00696 <span class="keywordflow">for</span> ( p=<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); p!=endPos; ++p )
+00697 {
+00698 <a class="code" href="a04558.html#a14">sint</a> i;
+00699 <span class="keywordflow">for</span> ( i=7; i!=-1; --i )
+00700 {
+00701 <span class="comment">//bitpos = (p-_Buffer.getPtr())*8 + (7-i);</span>
+00702 <span class="keywordflow">if</span> ( bitpos == (<a class="code" href="a04558.html#a11">uint32</a>)<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() )
+00703 <a class="code" href="a04223.html#a626">s</a> += <span class="stringliteral">"&lt;P&gt;"</span>; <span class="comment">// display the current position</span>
+00704 <a class="code" href="a04223.html#a626">s</a> += <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.getEventIdAtBitPos( bitpos, &amp;eventId );
+00705 <a class="code" href="a04223.html#a626">s</a> += ( ((*p) &gt;&gt; i) &amp; 1 ) ? <span class="charliteral">'1'</span> : <span class="charliteral">'0'</span>;
+00706 sLegend += <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.getEventLegendAtBitPos( *<span class="keyword">this</span>, eventId );
+00707 ++bitpos;
+00708 }
+00709
+00710 <a class="code" href="a04223.html#a626">s</a> += <span class="charliteral">' '</span>; <span class="comment">// a blank char between each byte</span>
+00711 <span class="keywordflow">if</span> ( bitpos % 64 == 0 ) <span class="comment">// limit to 8 bytes per line</span>
+00712 {
+00713 log-&gt;displayRawNL( <a class="code" href="a04223.html#a626">s</a>.c_str() );
+00714 <a class="code" href="a04223.html#a626">s</a>.clear();
+00715 }
+00716 }
+00717 <span class="keywordflow">if</span> ( bitpos % 64 != 0 )
+00718 log-&gt;displayRawNL( <a class="code" href="a04223.html#a626">s</a>.c_str() );
+00719 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.endEventBrowsing();
+00720
+00721 <span class="comment">// Display legend</span>
+00722 string::size_type lineStart = 0;
+00723 string::size_type crp = sLegend.find( <span class="charliteral">'\n'</span>, lineStart );
+00724 <span class="keywordflow">while</span> ( crp != string::npos )
+00725 {
+00726 log-&gt;displayRawNL( sLegend.substr( lineStart, crp-lineStart ).c_str() );
+00727 lineStart = crp + 1;
+00728 crp = sLegend.find( <span class="charliteral">'\n'</span>, lineStart );
+00729 }
+00730 <span class="comment">// sLegend ends with a '\n'</span>
+00731 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama5" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama19">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama19">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="a02269.html#NLMISC_1_1CBitMemStreamb0">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreamb0">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_1CBitMemStreama10" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+See doc in <a class="el" href="a02271.html#NLMISC_1_1CStringStreama8">CMemStream::fill()</a>.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama8">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00452">452</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00275">NLMISC::CBMSDbgInfo::clear()</a>, <a class="el" href="a05646.html#l00235">len</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>00453 {
+00454 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> = 8;
+00455 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.clear();
+00456 CMemStream::fill( srcbuf, len );
+00457 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama9" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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 (<a class="el" href="a03781.html">EStream</a>)<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">NLNET::CMessage::changeType()</a>, <a class="el" href="a06026.html#l00091">NLNET::CMessage::CMessage()</a>, <a class="el" href="a06026.html#l00411">NLNET::CMessage::getName()</a>, <a class="el" href="a06027.html#l00143">NLNET::CMessage::lockSubMessage()</a>, <a class="el" href="a06026.html#l00319">NLNET::CMessage::readType()</a>, <a class="el" href="a06026.html#l00362">NLNET::CMessage::readTypeAtCurrentPos()</a>, <a class="el" href="a05482.html#l00467">serial()</a>, <a class="el" href="a05482.html#l00591">serialCont()</a>, <a class="el" href="a05482.html#l00551">serialMemStream()</a>, <a class="el" href="a06026.html#l00173">NLNET::CMessage::setType()</a>, and <a class="el" href="a06027.html#l00164">NLNET::CMessage::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_1CBitMemStreama13" doxytag="NLMISC::CBitMemStream::getPosInBit" ></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::CBitMemStream::getPosInBit </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 number of bit from the beginning of the buffer (in bit).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00443">443</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00751">_FreeBits</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="a05482.html#l00641">displayLastBits()</a>, <a class="el" href="a05482.html#l00673">displayStream()</a>, <a class="el" href="a05482.html#l00737">getSerialItem()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a05482.html#l00346">poke()</a>, <a class="el" href="a05482.html#l00375">pokeBits()</a>, <a class="el" href="a05482.html#l00415">readBits()</a>, <a class="el" href="a05482.html#l00275">reserveBits()</a>, <a class="el" href="a05482.html#l00447">serial()</a>, <a class="el" href="a05482.html#l00100">serialBit()</a>, <a class="el" href="a05482.html#l00073">serialBuffer()</a>, <a class="el" href="a05482.html#l00591">serialCont()</a>, and <a class="el" href="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00444 {
+00445 <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() + 1)*8 - <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00446 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama14" doxytag="NLMISC::CBitMemStream::getSerialItem" ></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 NLMISC::CBitMemStream::getSerialItem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03899.html">TBMSSerialInfo</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>serialItem</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 a string showing the serial item.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05482.html#l00737">737</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00144">NLMISC::TBMSSerialInfo::BitPos</a>, <a class="el" href="a05483.html#l00145">NLMISC::TBMSSerialInfo::BitSize</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</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#l00511">NLMISC::CMemStream::lengthR()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05482.html#l00415">readBits()</a>, <a class="el" href="a05484.html#l00081">NLMISC::CBitSet::resize()</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05482.html#l00100">serialBit()</a>, <a class="el" href="a05482.html#l00073">serialBuffer()</a>, <a class="el" href="a06461.html#l00413">NLMISC::IStream::setInOut()</a>, <a class="el" href="a05484.html#l00334">NLMISC::CBitSet::toString()</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, <a class="el" href="a05483.html#l00146">NLMISC::TBMSSerialInfo::Type</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#l00102">uint64</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05483.html#l00765">NLMISC::CBMSDbgInfo::getEventLegendAtBitPos()</a>.
+<p>
+<div class="fragment"><pre>00738 {
+00739 <span class="comment">// Save the current pointers of the stream, and make them point to the required position</span>
+00740 <a class="code" href="a04558.html#a15">uint</a> savedFreeBits = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00741 <a class="code" href="a04558.html#a15">uint</a> bytepos = serialItem.BitPos &gt;&gt; 3;
+00742 _FreeBits = 8 - (serialItem.BitPos - (bytepos &lt;&lt; 3));
+00743 <a class="code" href="a04558.html#a7">uint8</a> *savedBufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00744 _BufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + bytepos;
+00745
+00746 <span class="keywordtype">bool</span> wasOutput = <span class="keyword">false</span>;;
+00747 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00748 {
+00749 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_1">setInOut</a>( <span class="keyword">true</span> ); <span class="comment">// lighter than invert()</span>
+00750 wasOutput = <span class="keyword">true</span>;
+00751 }
+00752
+00753 <span class="comment">// Read and format string</span>
+00754 string <a class="code" href="a04223.html#a626">s</a>;
+00755 <span class="keywordflow">if</span> ( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() + serialItem.BitSize &gt; <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR</a>() * 8 )
+00756 {
+00757 <a class="code" href="a04223.html#a626">s</a> = <span class="stringliteral">"&lt;Stream Overflow&gt;"</span>;
+00758 }
+00759 <span class="keywordflow">else</span>
+00760 {
+00761 <span class="keywordflow">switch</span> ( serialItem.Type )
+00762 {
+00763 <span class="keywordflow">case</span> TBMSSerialInfo::B:
+00764 {
+00765 <span class="keywordtype">bool</span> b;
+00766 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama39">serialBit</a>( b );
+00767 <a class="code" href="a04223.html#a626">s</a> = <a class="code" href="a05378.html#a244">NLMISC::toString</a>( <span class="stringliteral">"%s"</span>, b?<span class="stringliteral">"TRUE"</span>:<span class="stringliteral">"FALSE"</span> );
+00768 <span class="keywordflow">break</span>;
+00769 }
+00770 <span class="keywordflow">case</span> TBMSSerialInfo::U: <span class="comment">// no distinction with signed int!</span>
+00771 {
+00772 <a class="code" href="a04558.html#a11">uint32</a> u;
+00773 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( u, serialItem.BitSize );
+00774 <a class="code" href="a04223.html#a626">s</a> = <a class="code" href="a05378.html#a244">NLMISC::toString</a>( <span class="stringliteral">"%u"</span>, u );
+00775 <span class="keywordflow">break</span>;
+00776 }
+00777 <span class="keywordflow">case</span> TBMSSerialInfo::U64: <span class="comment">// no distinction with signed int64!</span>
+00778 {
+00779 <a class="code" href="a04558.html#a13">uint64</a> u;
+00780 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( u, serialItem.BitSize );
+00781 <a class="code" href="a04223.html#a626">s</a> = <a class="code" href="a05378.html#a244">NLMISC::toString</a>( <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"u"</span>, u );
+00782 <span class="keywordflow">break</span>;
+00783 }
+00784 <span class="keywordflow">case</span> TBMSSerialInfo::F: <span class="comment">// what about double?</span>
+00785 {
+00786 <span class="keywordtype">float</span> f;
+00787 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( f );
+00788 <a class="code" href="a04223.html#a626">s</a> = <a class="code" href="a05378.html#a244">NLMISC::toString</a>( <span class="stringliteral">"%g"</span>, f );
+00789 <span class="keywordflow">break</span>;
+00790 }
+00791 <span class="keywordflow">case</span> TBMSSerialInfo::BF:
+00792 {
+00793 CBitSet bs;
+00794 bs.resize( serialItem.BitSize );
+00795 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama24">readBits</a>( bs );
+00796 <a class="code" href="a04223.html#a626">s</a> = bs.toString();
+00797 <span class="keywordflow">break</span>;
+00798 }
+00799 <span class="keywordflow">case</span> TBMSSerialInfo::Buffer:
+00800 {
+00801 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a> = serialItem.BitSize / 8;
+00802 <a class="code" href="a04223.html#a626">s</a>.resize( len + 2 );
+00803 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a571">len</a> != 0 )
+00804 {
+00805 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">serialBuffer</a>( &amp;((<a class="code" href="a04558.html#a7">uint8</a>&amp;)(s[1])), len );
+00806 string::size_type p;
+00807 <span class="keywordflow">for</span> ( p=1; p!=<a class="code" href="a04223.html#a571">len</a>+1; ++p )
+00808 {
+00809 <span class="keywordflow">if</span> ( ! isalnum(s[p]) )
+00810 <a class="code" href="a04223.html#a626">s</a>[p] = <span class="charliteral">'?'</span>; <span class="comment">// remove end-of-c_string</span>
+00811 }
+00812 }
+00813 <a class="code" href="a04223.html#a626">s</a>[0] = <span class="charliteral">'['</span>;
+00814 <a class="code" href="a04223.html#a626">s</a>[<a class="code" href="a04223.html#a571">len</a>+1] = <span class="charliteral">']'</span>;
+00815 <span class="keywordflow">break</span>;
+00816 }
+00817 <span class="keywordflow">default</span>:
+00818 <span class="keywordflow">break</span>;
+00819 }
+00820 }
+00821
+00822 <span class="comment">// Restore the current pointers</span>
+00823 <span class="keywordflow">if</span> ( wasOutput )
+00824 {
+00825 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_1">setInOut</a>( <span class="keyword">false</span> );
+00826 }
+00827
+00828 _FreeBits = savedFreeBits;
+00829 _BufPos = savedBufPos;
+00830
+00831 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a626">s</a>;
+00832 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2036_2" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC_1_1CStringStreama11" doxytag="NLMISC::CBitMemStream::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="NLMISC_1_1CBitMemStreamb0" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::increaseBufferIfNecessary </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>
+Increase the size of the buffer if necessary (outpout bit stream)<p>
+Preconditions:<ul>
+<li>The stream is in output mode (!isReading())</li><li><a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama27">resetBufPos()</a> must have been called since construction</li><li><a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a> &lt;= <a class="el" href="a04223.html#a587">_Buffer.size()</a></li></ul>
+<p>
+Postconditions:<ul>
+<li><a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a> &lt; <a class="el" href="a04223.html#a587">_Buffer.size()</a></li></ul>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00730">730</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a06116.html#l00180">NLMISC::CObjectVector&lt; uint8, false &gt;::empty()</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="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="a05483.html#l00694">prepareNextByte()</a>.
+<p>
+<div class="fragment"><pre>00731 {
+00732 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00733 <span class="preprocessor"></span> <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="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.empty()) );
+00734 <a class="code" href="a04199.html#a6">nlassert</a>( _BufPos &lt;= <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() );
+00735 <span class="preprocessor">#endif</span>
+00736 <span class="preprocessor"></span> <a class="code" href="a04558.html#a11">uint32</a> bytepos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr();
+00737 <span class="keywordflow">if</span> ( bytepos == <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() )
+00738 {
+00739 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize( bytepos * 2 );
+00740 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + bytepos; <span class="comment">// don't change the pos but update pointer (needed because the buffer may have moved when reallocating)</span>
+00741 }
+00742 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamb1" doxytag="NLMISC::CBitMemStream::internalSerial" ></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::CBitMemStream::internalSerial </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="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#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbits</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Helper for serial(uint64,uint)
+<p>
+Definition at line <a class="el" href="a05483.html#l00650">650</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</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#l00102">uint64</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00651 {
+00652 <span class="keywordflow">if</span> ( nbits &gt; 32 )
+00653 {
+00654 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00655 {
+00656 <span class="comment">// Reset and read MSD</span>
+00657 <a class="code" href="a04558.html#a11">uint32</a> msd = 0;
+00658 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( msd, nbits-32 );
+00659 <a class="code" href="a04223.html#a658">value</a> = (<a class="code" href="a04558.html#a13">uint64</a>)msd &lt;&lt; 32;
+00660 <span class="comment">// Reset and read LSD</span>
+00661 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( (<a class="code" href="a04558.html#a11">uint32</a>&amp;)value, 32 );
+00662 }
+00663 <span class="keywordflow">else</span>
+00664 {
+00665 <span class="comment">// Write MSD</span>
+00666 <a class="code" href="a04558.html#a11">uint32</a> msd = (<a class="code" href="a04558.html#a11">uint32</a>)(<a class="code" href="a04223.html#a658">value</a> &gt;&gt; 32);
+00667 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( msd, nbits-32 );
+00668 <span class="comment">// Write LSD</span>
+00669 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( (<a class="code" href="a04558.html#a11">uint32</a>&amp;)value, 32 );
+00670 }
+00671 }
+00672 <span class="keywordflow">else</span>
+00673 {
+00674 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00675 {
+00676 <span class="comment">// Reset MSB (=0 is faster than value&amp;=0xFFFFFFFF)</span>
+00677 <a class="code" href="a04223.html#a658">value</a> = 0;
+00678 }
+00679 <span class="comment">// Read or write LSB</span>
+00680 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( (<a class="code" href="a04558.html#a11">uint32</a>&amp;)value, nbits );
+00681 }
+00682 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamb2" doxytag="NLMISC::CBitMemStream::internalSerial" ></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::CBitMemStream::internalSerial </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="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#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbits</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>resetvalue</em> = true</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>
+Helper for serial(uint32,uint)
+<p>
+Definition at line <a class="el" href="a05482.html#l00172">172</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00511">NLMISC::CMemStream::lengthR()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05483.html#l00694">prepareNextByte()</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>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a05483.html#l00650">internalSerial()</a>, <a class="el" href="a05482.html#l00447">serial()</a>, <a class="el" href="a05482.html#l00100">serialBit()</a>, and <a class="el" href="a05482.html#l00073">serialBuffer()</a>.
+<p>
+<div class="fragment"><pre>00173 {
+00174 <span class="keywordflow">if</span> ( nbits == 0 )
+00175 <span class="keywordflow">return</span>;
+00176 <span class="keywordflow">if</span> ( nbits &gt; 32 )
+00177 <span class="keywordflow">throw</span> EMemStream (string(<span class="stringliteral">"trying to serial "</span>)+NLMISC::toString(nbits)+string(<span class="stringliteral">" bits"</span>));
+00178
+00179 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00180 {
+00181 <span class="comment">// Check that we don't read more than there is to read</span>
+00182 <span class="keywordflow">if</span> ( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() + nbits &gt; <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR</a>() * 8 )
+00183 {
+00184 <span class="comment">//displayStream( "Stream Overflow" );</span>
+00185 <span class="keywordflow">throw</span> EStreamOverflow();
+00186 }
+00187
+00188 <span class="keywordflow">if</span> ( resetvalue )
+00189 {
+00190 <a class="code" href="a04223.html#a658">value</a> = 0;
+00191 }
+00192
+00193 <span class="comment">// Clear high-order bits after _FreeBits</span>
+00194 <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a576">v</a> = *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> &amp; ((1 &lt;&lt; <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>) - 1);
+00195
+00196 <span class="keywordflow">if</span> ( nbits &gt; <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> )
+00197 {
+00198 <span class="comment">//nldebug( "Reading byte %u from %u free bits (%u remaining bits)", lengthS(), _FreeBits, nbits );</span>
+00199 <a class="code" href="a04223.html#a658">value</a> |= (<a class="code" href="a04223.html#a576">v</a> &lt;&lt; (nbits-<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>));
+00200 ++<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00201 <a class="code" href="a04558.html#a15">uint</a> readbits = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00202 <span class="comment">//displayByteBits( *_BufPos, 8, readbits-1, false );</span>
+00203 _FreeBits = 8;
+00204 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( value, nbits - readbits, <span class="keyword">false</span> ); <span class="comment">// read without resetting value</span>
+00205 }
+00206 <span class="keywordflow">else</span>
+00207 {
+00208 <span class="comment">//nlinfo( "Reading last byte %u from %u free bits (%u remaining bits)", lengthS(), _FreeBits, nbits );</span>
+00209 <span class="comment">//displayByteBits( *_BufPos, 8, _FreeBits-1, false );</span>
+00210 <a class="code" href="a04223.html#a658">value</a> |= (<a class="code" href="a04223.html#a576">v</a> &gt;&gt; (<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>-nbits));
+00211 <span class="comment">//displayByteBits( *_BufPos, 8, _FreeBits-1, false );</span>
+00212 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> -= nbits;
+00213 <span class="keywordflow">if</span> ( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> == 0 )
+00214 {
+00215 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> = 8;
+00216 ++<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00217 }
+00218 }
+00219 }
+00220 <span class="keywordflow">else</span>
+00221 {
+00222 <span class="comment">// Clear high-order bits after nbits</span>
+00223 <span class="comment">//displayDwordBits( value, 32, nbits-1, false );</span>
+00224
+00225 <span class="comment">//uint32 mask = (-1 &gt;&gt; (32-nbits)); // does not work</span>
+00226 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a>;
+00227 <span class="keywordflow">if</span> ( nbits != 32 ) <span class="comment">// arg of shl/sal/shr/sal ranges from 0 to 31</span>
+00228 {
+00229 <a class="code" href="a04558.html#a11">uint32</a> mask = (1 &lt;&lt; nbits) - 1;
+00230 <a class="code" href="a04223.html#a576">v</a> = <a class="code" href="a04223.html#a658">value</a> &amp; mask;
+00231 }
+00232 <span class="keywordflow">else</span>
+00233 {
+00234 <a class="code" href="a04223.html#a576">v</a> = <a class="code" href="a04223.html#a658">value</a>;
+00235 }
+00236
+00237 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00238 <span class="preprocessor"></span> <span class="comment">// Check that the current byte is prepared</span>
+00239 <a class="code" href="a04199.html#a6">nlassert</a>( ! ((_FreeBits == 8) &amp;&amp; (*_BufPos != 0)) );
+00240 <span class="preprocessor">#endif</span>
+00241 <span class="preprocessor"></span>
+00242 <span class="comment">// Set</span>
+00243 <span class="keywordflow">if</span> ( nbits &gt; <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> )
+00244 {
+00245 <span class="comment">// Longer than the room in the current byte</span>
+00246 <span class="comment">//nldebug( "Writing byte %u into %u free bits (%u remaining bits)", lengthS(), _FreeBits, nbits );</span>
+00247 <span class="comment">//displayDwordBits( value, 32, nbits-1, false );</span>
+00248 *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> |= (<a class="code" href="a04223.html#a576">v</a> &gt;&gt; (nbits - <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>));
+00249 <a class="code" href="a04558.html#a15">uint</a> filledbits = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00250 <span class="comment">//displayByteBits( *_BufPos, 8, filledbits-1, false );</span>
+00251 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb6">prepareNextByte</a>();
+00252 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( v, nbits - filledbits );
+00253 }
+00254 <span class="keywordflow">else</span>
+00255 {
+00256 <span class="comment">// Shorter or equal</span>
+00257 <span class="comment">//nldebug( "Writing last byte %u into %u free bits (%u remaining bits)", lengthS(), _FreeBits, nbits );</span>
+00258 <span class="comment">//displayByteBits( *_BufPos, 8, 7, false );</span>
+00259 *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> |= (<a class="code" href="a04223.html#a576">v</a> &lt;&lt; (<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>-nbits));
+00260 <span class="comment">//displayByteBits( *_BufPos, 8, _FreeBits-1, false );</span>
+00261 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> -= nbits;
+00262 <span class="keywordflow">if</span> ( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> == 0 )
+00263 {
+00264 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb6">prepareNextByte</a>();
+00265 }
+00266 }
+00267 }
+00268 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama16" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama12">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00418">418</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <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>, and <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector&lt; uint8, false &gt;::size()</a>.
+<p>
+<div class="fragment"><pre>00419 {
+00420 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00421 {
+00422 ++<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>; <span class="comment">// write-&gt;read: extend to keep the last byte inside the payload</span>
+00423 }
+00424 CMemStream::invert();
+00425 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00426 {
+00427 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00428 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( _BufPos == <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()+<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() );
+00429 <span class="preprocessor">#endif</span>
+00430 <span class="preprocessor"></span> --<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>; <span class="comment">// read-&gt;write: set the position on the last byte, not at the end as in CMemStream::invert()</span>
+00431 }
+00432 <span class="comment">// Keep the same _FreeBits</span>
+00433 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama0" doxytag="NLMISC::CBitMemStream::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">NLNET::CMessage::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">NLNET::CMessage::clear()</a>, <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a06026.html#l00091">NLNET::CMessage::CMessage()</a>, <a class="el" href="a05482.html#l00673">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">getSerialItem()</a>, <a class="el" href="a05483.html#l00730">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">internalSerial()</a>, <a class="el" href="a06027.html#l00198">NLNET::CMessage::invert()</a>, <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05483.html#l00418">invert()</a>, <a class="el" href="a06027.html#l00104">NLNET::CMessage::length()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05483.html#l00402">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">NLNET::CMessage::lockSubMessage()</a>, <a class="el" href="a06026.html#l00118">NLNET::CMessage::operator=()</a>, <a class="el" href="a05483.html#l00710">pointNextByte()</a>, <a class="el" href="a05979.html#l00190">NLMISC::CMemStream::poke()</a>, <a class="el" href="a05482.html#l00346">poke()</a>, <a class="el" href="a05482.html#l00375">pokeBits()</a>, <a class="el" href="a05482.html#l00415">readBits()</a>, <a class="el" href="a05486.html#l01800">NLMISC::CBitmap::readTGA()</a>, <a class="el" href="a06026.html#l00362">NLNET::CMessage::readTypeAtCurrentPos()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, <a class="el" href="a05482.html#l00275">reserveBits()</a>, <a class="el" href="a05483.html#l00382">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">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">serialBit()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05482.html#l00073">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">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">serialMemStream()</a>, <a class="el" href="a06026.html#l00472">NLNET::CMessage::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">NLNET::CMessage::setType()</a>, <a class="el" href="a06027.html#l00164">NLNET::CMessage::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="NLMISC::CBitMemStream::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="NLMISC_1_1CBitMemStreama19" doxytag="NLMISC::CBitMemStream::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> NLMISC::CBitMemStream::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 (the last byte may not be full, it may have free bits, see also <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit()</a>).
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama15">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00402">402</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00511">NLMISC::CMemStream::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="a05482.html#l00467">serial()</a>, <a class="el" href="a05482.html#l00591">serialCont()</a>, and <a class="el" href="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00403 {
+00404 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00405 {
+00406 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR</a>();
+00407 }
+00408 <span class="keywordflow">else</span>
+00409 {
+00410 <span class="keywordflow">if</span> ( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> == 8 )
+00411 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>();
+00412 <span class="keywordflow">else</span>
+00413 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>() + 1;
+00414 }
+00415 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamb0" doxytag="NLMISC::CBitMemStream::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> NLMISC::CMemStream::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, protected, inherited]</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) Do not use directly, use <a class="el" href="a02271.html#NLMISC_1_1CStringStreama15">length()</a> instead in reading mode (which is virtual)
+<p>
+Reimplemented in <a class="el" href="a02918.html#NLNET_1_1CMessagea25">NLNET::CMessage</a>.
+<p>
+Definition at line <a class="el" href="a05979.html#l00511">511</a> of file <a class="el" href="a05979.html">mem_stream.h</a>.
+<p>
+References <a class="el" href="a05979.html#l00230">NLMISC::CMemStream::size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00737">getSerialItem()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, and <a class="el" href="a05483.html#l00402">length()</a>.
+<p>
+<div class="fragment"><pre>00512 {
+00513 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreama48">size</a>();
+00514 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamb1" doxytag="NLMISC::CBitMemStream::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">NLNET::CMessage::length()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05483.html#l00402">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="NLMISC_1_1CBitMemStreama20" doxytag="NLMISC::CBitMemStream::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="a02269.html">CBitMemStream</a>&amp; NLMISC::CBitMemStream::operator= </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02269.html">CBitMemStream</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><code> [inline]</code></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="a05483.html#l00367">367</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, and <a class="el" href="a05483.html#l00751">_FreeBits</a>.
+<p>
+<div class="fragment"><pre>00368 {
+00369 CMemStream::operator=( other );
+00370 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> = other._FreeBits;
+00371 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a> = other._DbgInfo;
+00372 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00373 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamb5" doxytag="NLMISC::CBitMemStream::pointNextByte" ></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::CBitMemStream::pointNextByte </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>
+Point the beginning of the byte after _BufPos<p>
+Preconditions<ul>
+<li>The last written byte, at pos _BufPos, is fully written (but _FreeBits may not be updated yet)</li></ul>
+<p>
+Postconditions<ul>
+<li>The pos was incremented by 1, _FreeBits is 8</li></ul>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00710">710</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a05483.html#l00694">prepareNextByte()</a>, and <a class="el" href="a05482.html#l00296">serialPoke()</a>.
+<p>
+<div class="fragment"><pre>00711 {
+00712 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00713 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( !<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00714 <span class="preprocessor">#endif</span>
+00715 <span class="preprocessor"></span> <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> = 8;
+00716 ++<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00717 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama17" doxytag="NLMISC::CBitMemStream::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="NLMISC_1_1CBitMemStreama22" doxytag="NLMISC::CBitMemStream::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" nowrap valign="top"> void NLMISC::CBitMemStream::poke </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="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#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>bitpos</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>nbits</em></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="a05482.html#l00346">346</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00234">NLMISC::CBMSDbgInfo::addPoke()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</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="a05482.html#l00296">serialPoke()</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>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00347 {
+00348 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00349 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( (nbits &lt;= 32) &amp;&amp; (nbits != 0) );
+00350 <a class="code" href="a04199.html#a6">nlassert</a>( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00351 <a class="code" href="a04199.html#a6">nlassert</a>( bitpos+nbits &lt;= (<a class="code" href="a04558.html#a15">uint</a>)<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() );
+00352 <span class="preprocessor">#endif</span>
+00353 <span class="preprocessor"></span>
+00354 <span class="comment">// Save the current pointers of the stream, and make them point to the required position</span>
+00355 <a class="code" href="a04558.html#a15">uint</a> savedFreeBits = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00356 <a class="code" href="a04558.html#a15">uint</a> bytepos = bitpos &gt;&gt; 3;
+00357 _FreeBits = 8 - (bitpos - (bytepos &lt;&lt; 3));
+00358 <a class="code" href="a04558.html#a7">uint8</a> *savedBufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00359 _BufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + bytepos;
+00360
+00361 <span class="comment">// Serial</span>
+00362 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addPoke( bitpos, nbits, TBMSSerialInfo::U );
+00363 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb7">serialPoke</a>( value, nbits );
+00364
+00365 <span class="comment">// Restore the current pointers</span>
+00366 _FreeBits = savedFreeBits;
+00367 _BufPos = savedBufPos;
+00368 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama23" doxytag="NLMISC::CBitMemStream::pokeBits" ></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::CBitMemStream::pokeBits </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02272.html">NLMISC::CBitSet</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bitfield</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>bitpos</em></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>
+Rewrite the bitfield at the specified position bitpos of the current output bit stream. The size of the bitfield is *not* written into the stream (unlike <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a>). Precondition: bitpos+bitfield.<a class="el" href="a02271.html#NLMISC_1_1CStringStreama48">size()</a> &lt;= the current length in bit of the stream. See also <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama26">reserveBits()</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00375">375</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00234">NLMISC::CBMSDbgInfo::addPoke()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a05485.html#l00173">NLMISC::CBitSet::getVector()</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="a05482.html#l00296">serialPoke()</a>, <a class="el" href="a05485.html#l00070">NLMISC::CBitSet::size()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00376 {
+00377 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00378 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00379 <a class="code" href="a04199.html#a6">nlassert</a>( bitpos+bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSetz1920_10">size</a>() &lt;= (<a class="code" href="a04558.html#a15">uint</a>)<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() );
+00380 <span class="preprocessor">#endif</span>
+00381 <span class="preprocessor"></span>
+00382 <span class="comment">// Save the current pointers of the stream, and make them point to the required position</span>
+00383 <a class="code" href="a04558.html#a15">uint</a> savedFreeBits = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00384 <a class="code" href="a04558.html#a15">uint</a> bytepos = bitpos &gt;&gt; 3;
+00385 _FreeBits = 8 - (bitpos - (bytepos &lt;&lt; 3));
+00386 <a class="code" href="a04558.html#a7">uint8</a> *savedBufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>;
+00387 _BufPos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + bytepos;
+00388
+00389 <span class="comment">// Serial</span>
+00390 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addPoke( bitpos, bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSetz1920_10">size</a>(), TBMSSerialInfo::BF );
+00391 <span class="keyword">const</span> vector&lt;uint32&gt;&amp; uintVec = bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSeta0">getVector</a>();
+00392 <span class="keywordflow">if</span> ( ! uintVec.empty() )
+00393 {
+00394 <span class="keywordflow">for</span> ( <a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;uintVec.size()-1; ++i )
+00395 {
+00396 <span class="comment">//nldebug( "Bitfield: Poked %u at %d (bitpos %d)", uintVec[i], getPos(), getPosInBit() );</span>
+00397 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb7">serialPoke</a>( uintVec[i], 32 );
+00398 }
+00399 <span class="comment">//nldebug( "Bitfield: Poked %u at %d (bitpos %d)", uintVec.back(), getPos(), getPosInBit() );</span>
+00400 <a class="code" href="a04558.html#a15">uint</a> remainingBits = bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSetz1920_10">size</a>() % 32;
+00401 <span class="keywordflow">if</span> ( remainingBits != 0 )
+00402 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb7">serialPoke</a>( uintVec.back(), remainingBits );
+00403 }
+00404
+00405 <span class="comment">// Restore the current pointers</span>
+00406 _FreeBits = savedFreeBits;
+00407 _BufPos = savedBufPos;
+00408 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamb6" doxytag="NLMISC::CBitMemStream::prepareNextByte" ></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::CBitMemStream::prepareNextByte </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>
+Prepare next byte for writing.<p>
+Preconditions:<ul>
+<li>See the preconditions of <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb0">increaseBufferIfNecessary()</a> and <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb5">pointNextByte()</a></li></ul>
+<p>
+Postconditions:<ul>
+<li>See the postconditions of <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb0">increaseBufferIfNecessary()</a> and <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamb5">pointNextByte()</a></li><li>The new pointed byte is 0</li></ul>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00694">694</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00730">increaseBufferIfNecessary()</a>, and <a class="el" href="a05483.html#l00710">pointNextByte()</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00172">internalSerial()</a>.
+<p>
+<div class="fragment"><pre>00695 {
+00696 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb5">pointNextByte</a>();
+00697 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb0">increaseBufferIfNecessary</a>();
+00698 *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = 0;
+00699 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama24" doxytag="NLMISC::CBitMemStream::readBits" ></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::CBitMemStream::readBits </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02272.html">NLMISC::CBitSet</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bitfield</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>
+Read <a class="el" href="a04223.html#a587">bitfield.size()</a> bits from the input stream to fill the bitfield. It means you have to know the size and to resize the bitfield yourself.
+<p>
+Definition at line <a class="el" href="a05482.html#l00415">415</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00443">getPosInBit()</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="a05622.html#l00101">nldebug</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05485.html#l00176">NLMISC::CBitSet::setUint()</a>, <a class="el" href="a05485.html#l00070">NLMISC::CBitSet::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="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00737">getSerialItem()</a>.
+<p>
+<div class="fragment"><pre>00416 {
+00417 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00418 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() );
+00419 <span class="preprocessor">#endif</span>
+00420 <span class="preprocessor"></span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a571">len</a> = bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSetz1920_10">size</a>();
+00421 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a571">len</a> != 0 )
+00422 {
+00423 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00424 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( VerboseAllTraffic )
+00425 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"TRAFFIC/%p/%s: Reading %u bits bitfield at bitpos %d"</span>, <span class="keyword">this</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"I"</span>:<span class="stringliteral">"O"</span>, len, <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() );
+00426 <span class="preprocessor">#endif</span>
+00427 <span class="preprocessor"></span> <a class="code" href="a04558.html#a15">uint</a> i = 0;
+00428 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a>;
+00429 <span class="keywordflow">while</span> ( <a class="code" href="a04223.html#a571">len</a> &gt; 32 )
+00430 {
+00431 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( v, 32 );
+00432 <span class="comment">//nldebug( "Bitfield: Read %u at %d", v, _BufPos-_Buffer.getPtr()-4 );</span>
+00433 bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSeta2">setUint</a>( v, i );
+00434 <a class="code" href="a04223.html#a571">len</a> -= 32;
+00435 ++i;
+00436 }
+00437 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( v, len );
+00438 <span class="comment">//nldebug( "Bitfield: Read %u at %d", v, _BufPos-_Buffer.getPtr()-4 );</span>
+00439 bitfield.<a class="code" href="a02272.html#NLMISC_1_1CBitSeta2">setUint</a>( v, i );
+00440 }
+00441 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama18" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreamb0">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_1CBitMemStreama26" doxytag="NLMISC::CBitMemStream::reserveBits" ></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::CBitMemStream::reserveBits </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>nbits</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>
+In a output bit stream, serialize nbits bits (no matter their value). Works even if the number of bits to add is larger than 64. See also <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama22">poke()</a> and <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama23">pokeBits()</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00275">275</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00276 {
+00277 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00278 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( VerboseAllTraffic )
+00279 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"TRAFFIC/%p/%s: Reserving %u bits at bitpos %d"</span>, <span class="keyword">this</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"I"</span>:<span class="stringliteral">"O"</span>, nbits, <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>() );
+00280 <span class="preprocessor">#endif</span>
+00281 <span class="preprocessor"></span>
+00282 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a> = 0;
+00283 <span class="keywordflow">while</span> ( nbits &gt; 32 )
+00284 {
+00285 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( v, 32 );
+00286 nbits -= 32;
+00287 }
+00288 <span class="keywordflow">if</span> ( nbits != 0 )
+00289 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( v, nbits );
+00290 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama27" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the position at the beginning. In output mode, the method ensures the buffer contains at least one blank byte to write to.<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="a02269.html#NLMISC_1_1CBitMemStreama4">clear()</a> *if you don't serialize pointers*.<p>
+_Buffer.resize( 8 ); // at least 8 bytes
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama19">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00382">382</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a05483.html#l00275">NLMISC::CBMSDbgInfo::clear()</a>, <a class="el" href="a06116.html#l00180">NLMISC::CObjectVector&lt; uint8, false &gt;::empty()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00051">CBitMemStream()</a>, <a class="el" href="a05483.html#l00436">clear()</a>, and <a class="el" href="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00383 {
+00384 <span class="comment">// This is ensured in CMemStream::CMemStream() and CMemStream::clear()</span>
+00385 <span class="comment">//if ( (!isReading()) &amp;&amp; _Buffer.empty() )</span>
+00387 <span class="comment"></span> <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="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.empty()) );
+00388
+00389 CMemStream::resetBufPos();
+00390 <span class="keywordflow">if</span> ( !<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00391 *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = 0; <span class="comment">// partial prepareNextByte()</span>
+00392 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> = 8;
+00393 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.clear();
+00394 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreama20" doxytag="NLMISC::CBitMemStream::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="NLMISC_1_1CStringStreama21" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama19">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="NLMISC::CBitMemStream::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 (<a class="el" href="a03781.html">EStream</a>)<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">NLNET::CMessage::changeType()</a>, <a class="el" href="a06026.html#l00091">NLNET::CMessage::CMessage()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a06026.html#l00411">NLNET::CMessage::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">NLNET::CMessage::readType()</a>, <a class="el" href="a06026.html#l00362">NLNET::CMessage::readTypeAtCurrentPos()</a>, <a class="el" href="a06026.html#l00472">NLNET::CMessage::serialMessage()</a>, and <a class="el" href="a06027.html#l00164">NLNET::CMessage::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="a02269.html#NLMISC_1_1CBitMemStreama19">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="a02269.html#NLMISC_1_1CBitMemStreama19">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="a02269.html#NLMISC_1_1CBitMemStreama19">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_1CMessagea36" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(a); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(c); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(d); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(e); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(f);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea37" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(a); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(c); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(d); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(e);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea38" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(a); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(c); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(d);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea39" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(a); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(c);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagea40" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(a); <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_0" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02269.html">CBitMemStream</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]</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="a05483.html#l00627">627</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00627 { <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_15">serialMemStream</a>(b); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_1" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_0">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00508">508</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00443">getPosInBit()</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#l00101">nldebug</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05482.html#l00073">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>00509 {
+00510 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00511 <span class="preprocessor"></span> <a class="code" href="a04558.html#a10">sint32</a> bitpos = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>();
+00512 <span class="preprocessor">#endif</span>
+00513 <span class="preprocessor"></span>
+00514 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> )
+00515 {
+00516 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00517 <span class="comment">// Read/Write the length.</span>
+00518 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00519 {
+00520 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(len);
+00521 b.resize(len);
+00522 }
+00523 <span class="keywordflow">else</span>
+00524 {
+00525 <a class="code" href="a04223.html#a571">len</a>= b.size();
+00526 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(len);
+00527 }
+00528 <span class="comment">// Read/Write the string.</span>
+00529 <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++)
+00530 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">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]) ) );
+00531
+00532 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>;
+00533 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&amp;sep, 1 );
+00534 }
+00535 <span class="keywordflow">else</span>
+00536 {
+00537 IStream::serial( b );
+00538 }
+00539
+00540 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00541 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( VerboseAllTraffic )
+00542 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"TRAFFIC/%p/%s: Ucstring at bitpos %d"</span>, <span class="keyword">this</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"I"</span>:<span class="stringliteral">"O"</span>, bitpos );
+00543 <span class="preprocessor">#endif</span>
+00544 <span class="preprocessor"></span>
+00545 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_2" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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> [virtual]</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="a02271.html#NLNET_1_1CMessagez1972_1">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00467">467</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</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="a05483.html#l00402">length()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05482.html#l00073">serialBuffer()</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>00468 {
+00469 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00470 <span class="preprocessor"></span> <a class="code" href="a04558.html#a10">sint32</a> bitpos = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>();
+00471 <span class="preprocessor">#endif</span>
+00472 <span class="preprocessor"></span>
+00473 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00474
+00475 <span class="comment">// Serialize length</span>
+00476 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00477 {
+00478 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( len );
+00479 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a> &gt; <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama19">length</a>()-<a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>())
+00480 {
+00481 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"BMS: string maximum length reached, perhaps invalid string size (%d)"</span>, len);
+00482 <span class="keywordflow">throw</span> <a class="code" href="a03794.html">NLMISC::EInvalidDataStream</a>();
+00483 }
+00484 b.resize( len );
+00485 }
+00486 <span class="keywordflow">else</span>
+00487 {
+00488 <a class="code" href="a04223.html#a571">len</a> = b.size();
+00489 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( len );
+00490 }
+00491
+00492 <span class="comment">// Serialize buffer</span>
+00493 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a571">len</a> != 0 )
+00494 {
+00495 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)(&amp;*b.begin()), <a class="code" href="a04223.html#a571">len</a> );
+00496 }
+00497
+00498 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00499 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( VerboseAllTraffic )
+00500 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"TRAFFIC/%p/%s: String (size 32+%u*8 bits) at bitpos %d"</span>, <span class="keyword">this</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"I"</span>:<span class="stringliteral">"O"</span>, len, bitpos );
+00501 <span class="preprocessor">#endif</span>
+00502 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_3" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_2">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00621">621</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>.
+<p>
+<div class="fragment"><pre>00621 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <span class="keywordtype">char</span> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_4" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_3">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00619">619</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05482.html#l00100">serialBit()</a>.
+<p>
+<div class="fragment"><pre>00619 { <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama39">serialBit</a>( b ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_5" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_4">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00618">618</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00118">serialAdapt64</a>.
+<p>
+<div class="fragment"><pre>00618 { <a class="code" href="a04060.html#a4">serialAdapt64</a>( b ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_6" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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> [virtual]</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="a02271.html#NLNET_1_1CMessagez1972_5">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00447">447</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00218">NLMISC::CBMSDbgInfo::addSerial()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00448 {
+00449 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addSerial( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>(), <span class="keyword">sizeof</span>(b)*8, TBMSSerialInfo::F );
+00450 <a class="code" href="a04558.html#a11">uint32</a> uf=0;
+00451 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00452 {
+00453 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( uf, <span class="keyword">sizeof</span>(b)*8 );
+00454 b = *(<span class="keywordtype">float</span>*)&amp;uf;
+00455 }
+00456 <span class="keywordflow">else</span>
+00457 {
+00458 uf = *(<a class="code" href="a04558.html#a11">uint32</a>*)&amp;b;
+00459 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( uf, <span class="keyword">sizeof</span>(b)*8 );
+00460 }
+00461 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_7" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_6">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00616">616</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00118">serialAdapt64</a>, and <a class="el" href="a05981.html#l00101">sint64</a>.
+<p>
+<div class="fragment"><pre>00616 { <a class="code" href="a04060.html#a4">serialAdapt64</a>( b ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_8" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_7">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00615">615</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00118">serialAdapt64</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+<div class="fragment"><pre>00615 { <a class="code" href="a04060.html#a4">serialAdapt64</a>( b ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_9" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_8">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00614">614</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+<div class="fragment"><pre>00614 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <a class="code" href="a04558.html#a10">sint32</a> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_10" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_9">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00613">613</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00613 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <a class="code" href="a04558.html#a11">uint32</a> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_11" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_10">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00612">612</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>, and <a class="el" href="a05981.html#l00097">sint16</a>.
+<p>
+<div class="fragment"><pre>00612 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <a class="code" href="a04558.html#a8">sint16</a> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_12" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_11">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00611">611</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00611 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <a class="code" href="a04558.html#a9">uint16</a> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_13" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_12">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00610">610</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>, and <a class="el" href="a05981.html#l00095">sint8</a>.
+<p>
+<div class="fragment"><pre>00610 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <a class="code" href="a04558.html#a6">sint8</a> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamz1916_14" doxytag="NLMISC::CBitMemStream::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"> virtual void NLMISC::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagez1972_13">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00609">609</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00097">serialAdapt</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00609 { <a class="code" href="a04060.html#a3">serialAdapt</a>( b, <a class="code" href="a04558.html#a7">uint8</a> ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama36" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagea41">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00534">534</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00534 { obj.serial(*<span class="keyword">this</span>); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama37" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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="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#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbits</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize only the nbits lower bits of 64-bit value (nbits range: [1..64])
+<p>
+Definition at line <a class="el" href="a05483.html#l00492">492</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00218">NLMISC::CBMSDbgInfo::addSerial()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00493 {
+00494 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addSerial( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>(), nbits, TBMSSerialInfo::U64 );
+00495 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( value, nbits );
+00496 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama38" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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="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#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbits</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>resetvalue</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize only the nbits lower bits of value (nbits range: [1..32]) When using this method, always leave resetvalue to true.
+<p>
+Definition at line <a class="el" href="a05483.html#l00483">483</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00218">NLMISC::CBMSDbgInfo::addSerial()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00737">getSerialItem()</a>, <a class="el" href="a05482.html#l00415">readBits()</a>, <a class="el" href="a05482.html#l00275">reserveBits()</a>, <a class="el" href="a05482.html#l00467">serial()</a>, <a class="el" href="a05482.html#l00591">serialCont()</a>, and <a class="el" href="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00484 {
+00485 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addSerial( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>(), nbits, TBMSSerialInfo::U );
+00486 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( value, nbits, resetvalue );
+00487 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama39" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize one bit.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea42">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00100">100</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00218">NLMISC::CBMSDbgInfo::addSerial()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00737">getSerialItem()</a>, <a class="el" href="a05483.html#l00619">serial()</a>, and <a class="el" href="a05482.html#l00591">serialCont()</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addSerial( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>(), 1, TBMSSerialInfo::B );
+00103 <a class="code" href="a04558.html#a11">uint32</a> ubit=0;
+00104 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00105 {
+00106 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( ubit, 1 );
+00107 bit = ( ubit!=0 );
+00108 }
+00109 <span class="keywordflow">else</span>
+00110 {
+00111 ubit = bit;
+00112 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( ubit, 1 );
+00113 }
+00114 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2030_0" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(bf);
+00329 <span class="keywordflow">return</span> bf;
+00330 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama40" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize a buffer.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLMISC_1_1CStringStreama30">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00073">73</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00754">_DbgInfo</a>, <a class="el" href="a05483.html#l00218">NLMISC::CBMSDbgInfo::addSerial()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</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#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00737">getSerialItem()</a>, <a class="el" href="a05482.html#l00467">serial()</a>, and <a class="el" href="a05482.html#l00551">serialMemStream()</a>.
+<p>
+<div class="fragment"><pre>00074 {
+00075 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp2">_DbgInfo</a>.addSerial( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>(), len*8, TBMSSerialInfo::Buffer );
+00076 <a class="code" href="a04558.html#a15">uint</a> i;
+00077 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a>;
+00078 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00079 {
+00080 <span class="keywordflow">for</span> ( i=0; i!=<a class="code" href="a04223.html#a571">len</a>; ++i )
+00081 {
+00082 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( v, 8 );
+00083 buf[i] = (<a class="code" href="a04558.html#a7">uint8</a>)<a class="code" href="a04223.html#a576">v</a>;
+00084 }
+00085 }
+00086 <span class="keywordflow">else</span>
+00087 {
+00088 <span class="keywordflow">for</span> ( i=0; i!=<a class="code" href="a04223.html#a571">len</a>; ++i )
+00089 {
+00090 <a class="code" href="a04223.html#a576">v</a> = (<a class="code" href="a04558.html#a11">uint32</a>)buf[i];
+00091 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb2">internalSerial</a>( v, 8 );
+00092 }
+00093 }
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreama6" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a> (len);
+00880 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">serialBuffer</a> (buf, len);
+00881 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_0" doxytag="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="NLMISC_1_1CBitMemStreama42" doxytag="NLMISC::CBitMemStream::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"> void NLMISC::CBitMemStream::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> [virtual]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea45">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05482.html#l00591">591</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05587.html#l00141">NLMISC::contReset()</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</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="a05483.html#l00402">length()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05482.html#l00100">serialBit()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00592 {
+00593 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00594 <span class="preprocessor"></span> <a class="code" href="a04558.html#a10">sint32</a> bitpos = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>();
+00595 <span class="preprocessor">#endif</span>
+00596 <span class="preprocessor"></span>
+00597 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00598 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00599 {
+00600 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(len);
+00601 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a>/8 &gt; (<a class="code" href="a04558.html#a10">sint32</a>)(<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama19">length</a>()-<a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>()))
+00602 {
+00603 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"BMS: stl container maximum length reached, perhaps invalid container size (%d)"</span>, len);
+00604 <span class="keywordflow">throw</span> <a class="code" href="a03794.html">NLMISC::EInvalidDataStream</a>();
+00605 }
+00606 <span class="comment">// special version for vector: adjut good size.</span>
+00607 <a class="code" href="a05378.html#a381">contReset</a>(cont);
+00608 cont.reserve(len);
+00609
+00610 <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++)
+00611 {
+00612 <span class="keywordtype">bool</span> <a class="code" href="a04223.html#a576">v</a>;
+00613 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama39">serialBit</a>(v);
+00614 cont.insert(cont.end(), <a class="code" href="a04223.html#a576">v</a>);
+00615 }
+00616 }
+00617 <span class="keywordflow">else</span>
+00618 {
+00619 <a class="code" href="a04223.html#a571">len</a>= cont.size();
+00620 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(len);
+00621
+00622 std::vector&lt;bool&gt;::iterator it= cont.begin();
+00623 <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++)
+00624 {
+00625 <span class="keywordtype">bool</span> b = *it;
+00626 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama39">serialBit</a>( b );
+00627 }
+00628 }
+00629
+00630 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00631 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( VerboseAllTraffic )
+00632 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"TRAFFIC/%p/%s: Container (header: 32 bits) at bitpos %d"</span>, <span class="keyword">this</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"I"</span>:<span class="stringliteral">"O"</span>, bitpos );
+00633 <span class="preprocessor">#endif</span>
+00634 <span class="preprocessor"></span>
+00635 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama43" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;sint8&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea46">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00636">636</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>.
+<p>
+<div class="fragment"><pre>00636 { <a class="code" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a>(cont); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama44" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;uint8&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea47">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00634">634</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+References <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>.
+<p>
+<div class="fragment"><pre>00634 { <a class="code" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a>(cont); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama45" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea48">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00550">550</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00550 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama46" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea49">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00548">548</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00548 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama47" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea50">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00546">546</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00546 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama48" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea51">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00544">544</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00544 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama49" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea52">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00542">542</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00542 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama50" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02269.html#NLMISC_1_1CBitMemStreama51">serialCont()</a> for vector&lt;bool&gt;.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea53">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00540">540</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00540 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreama51" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::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]</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="a02271.html#NLNET_1_1CMessagea54">NLMISC::CMemStream</a>.
+<p>
+Definition at line <a class="el" href="a05483.html#l00538">538</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+<div class="fragment"><pre>00538 {CMemStream::serialCont(cont);}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_1" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(i);
+00267 em = (T)i;
+00268 }
+00269 <span class="keywordflow">else</span>
+00270 {
+00271 i = em;
+00272 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(i);
+00273 }
+00274 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CMessagez1974_0" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a> (len);
+00445 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( len );
+00454 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">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="NLMISC_1_1CBitMemStreamz1916_15" doxytag="NLMISC::CBitMemStream::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::CBitMemStream::serialMemStream </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02269.html">CBitMemStream</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]</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="a05482.html#l00551">551</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00238">NLMISC::CMemStream::buffer()</a>, <a class="el" href="a05483.html#l00460">bufferToFill()</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</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="a05483.html#l00402">length()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05483.html#l00382">resetBufPos()</a>, <a class="el" href="a05483.html#l00483">serial()</a>, <a class="el" href="a05482.html#l00073">serialBuffer()</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>
+Referenced by <a class="el" href="a05483.html#l00627">serial()</a>.
+<p>
+<div class="fragment"><pre>00552 {
+00553 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00554 <span class="preprocessor"></span> <a class="code" href="a04558.html#a10">sint32</a> bitpos = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama13">getPosInBit</a>();
+00555 <span class="preprocessor">#endif</span>
+00556 <span class="preprocessor"></span>
+00557 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a>=0;
+00558
+00559 <span class="comment">// Serialize length</span>
+00560 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00561 {
+00562 <span class="comment">// fill b with data from this</span>
+00563 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a> (len);
+00564 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a> &gt; <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama19">length</a>()-<a class="code" href="a02271.html#NLMISC_1_1CStringStreama10">getPos</a>())
+00565 {
+00566 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"BMS: bitmemstream maximum length reached, perhaps invalid bitmemstream size (%d)"</span>, len);
+00567 <span class="keywordflow">throw</span> <a class="code" href="a03794.html">NLMISC::EInvalidDataStream</a>();
+00568 }
+00569
+00570 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">serialBuffer</a> (b.bufferToFill (len), <a class="code" href="a04223.html#a571">len</a>);
+00571 b.resetBufPos ();
+00572 }
+00573 <span class="keywordflow">else</span>
+00574 {
+00575 <span class="comment">// fill this with data from b</span>
+00576 <a class="code" href="a04223.html#a571">len</a> = b.length();
+00577
+00578 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>( len );
+00579 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama40">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*) b.buffer (), <a class="code" href="a04223.html#a571">len</a> );
+00580 }
+00581
+00582 <span class="preprocessor">#ifdef LOG_ALL_TRAFFIC</span>
+00583 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( VerboseAllTraffic )
+00584 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"TRAFFIC/%p/%s: Sub-bitmemstream (size 32+%u*8 bits) at bitpos %d"</span>, <span class="keyword">this</span>, <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()?<span class="stringliteral">"I"</span>:<span class="stringliteral">"O"</span>, len, bitpos );
+00585 <span class="preprocessor">#endif</span>
+00586 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CBitMemStreamb7" doxytag="NLMISC::CBitMemStream::serialPoke" ></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::CBitMemStream::serialPoke </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="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#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbits</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>
+Helper for <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama22">poke()</a>, to write a value inside an output stream (works because reserveBits sets to 0) Warning: if _FreeBits == 8, increments _BufPos.
+<p>
+Definition at line <a class="el" href="a05482.html#l00296">296</a> of file <a class="el" href="a05482.html">bit_mem_stream.cpp</a>.
+<p>
+References <a class="el" href="a05483.html#l00751">_FreeBits</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector&lt; uint8, false &gt;::getPtr()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05483.html#l00710">pointNextByte()</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>, <a class="el" href="a05646.html#l00237">v</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a05482.html#l00346">poke()</a>, and <a class="el" href="a05482.html#l00375">pokeBits()</a>.
+<p>
+<div class="fragment"><pre>00297 {
+00298 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a>;
+00299 <span class="keywordflow">if</span> ( nbits != 32 ) <span class="comment">// arg of shl/sal/shr/sal ranges from 0 to 31</span>
+00300 {
+00301 <a class="code" href="a04558.html#a11">uint32</a> mask = (1 &lt;&lt; nbits) - 1;
+00302 <a class="code" href="a04223.html#a576">v</a> = <a class="code" href="a04223.html#a658">value</a> &amp; mask;
+00303 }
+00304 <span class="keywordflow">else</span>
+00305 {
+00306 <a class="code" href="a04223.html#a576">v</a> = <a class="code" href="a04223.html#a658">value</a>;
+00307 }
+00308
+00309 <span class="comment">// Set</span>
+00310 <span class="keywordflow">if</span> ( nbits &gt; <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> )
+00311 {
+00312 <span class="comment">// Longer than the room in the current byte</span>
+00313 <span class="comment">//nldebug( "Writing byte %u into %u free bits (%u remaining bits)", lengthS(), _FreeBits, nbits );</span>
+00314 <span class="comment">//displayDwordBits( value, 32, nbits-1, false );</span>
+00315 *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> |= (<a class="code" href="a04223.html#a576">v</a> &gt;&gt; (nbits - <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>));
+00316 <a class="code" href="a04558.html#a15">uint</a> filledbits = <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>;
+00317 <span class="comment">//displayByteBits( *_BufPos, 8, filledbits-1, false );</span>
+00318 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb5">pointNextByte</a>(); <span class="comment">// do not set next byte to 0!</span>
+00319 <a class="code" href="a04199.html#a6">nlassert</a>( _BufPos &lt; <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() );
+00320 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb7">serialPoke</a>( v, nbits - filledbits );
+00321 }
+00322 <span class="keywordflow">else</span>
+00323 {
+00324 <span class="comment">// Shorter or equal</span>
+00325 <span class="comment">//nldebug( "Writing last byte %u into %u free bits (%u remaining bits)", lengthS(), _FreeBits, nbits );</span>
+00326 <span class="comment">//displayByteBits( *_BufPos, 8, 7, false );</span>
+00327 *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> |= (<a class="code" href="a04223.html#a576">v</a> &lt;&lt; (<a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a>-nbits));
+00328 <span class="comment">//displayByteBits( *_BufPos, 8, _FreeBits-1, false );</span>
+00329 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> -= nbits;
+00330 <span class="keywordflow">if</span> ( <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamp4">_FreeBits</a> == 0 )
+00331 {
+00332 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreamb5">pointNextByte</a>(); <span class="comment">// do not set next byte to 0!</span>
+00333 <a class="code" href="a04199.html#a6">nlassert</a>( _BufPos &lt; <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() );
+00334 }
+00335 }
+00336 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IStreamz2035_6" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama19">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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b);
+00278 <span class="keywordflow">if</span>(b==0xFF)
+00279 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">serial</a>(b);
+00297 <a class="code" href="a02269.html#NLMISC_1_1CBitMemStreama38">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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC_1_1IStreamz2040_1" doxytag="NLMISC::CBitMemStream::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">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="NLMISC::CBitMemStream::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">NLNET::CMessage::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="NLMISC_1_1IStreame1" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC_1_1IStreamz2039_0" doxytag="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="a02269.html#NLMISC_1_1CBitMemStreama38">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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::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="NLMISC::CBitMemStream::_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"> <a class="el" href="a03000.html">CObjectVector</a>&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="NLMISC::CBitMemStream::_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_1CBitMemStreamp2" doxytag="NLMISC::CBitMemStream::_DbgInfo" ></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="a02276.html">CBMSDbgInfo</a> <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamp2">NLMISC::CBitMemStream::_DbgInfo</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Debug details about what was serialised.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00754">754</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05483.html#l00460">bufferToFill()</a>, <a class="el" href="a05482.html#l00673">displayStream()</a>, <a class="el" href="a05483.html#l00452">fill()</a>, <a class="el" href="a05483.html#l00367">operator=()</a>, <a class="el" href="a05482.html#l00346">poke()</a>, <a class="el" href="a05482.html#l00375">pokeBits()</a>, <a class="el" href="a05483.html#l00382">resetBufPos()</a>, <a class="el" href="a05482.html#l00447">serial()</a>, <a class="el" href="a05482.html#l00100">serialBit()</a>, and <a class="el" href="a05482.html#l00073">serialBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamp2" doxytag="NLMISC::CBitMemStream::_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="NLMISC_1_1CBitMemStreamp4" doxytag="NLMISC::CBitMemStream::_FreeBits" ></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> <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamp4">NLMISC::CBitMemStream::_FreeBits</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Number of bits unused at the current pos. If 8, means the current pos if full and we need to increment the pos!
+<p>
+
+<p>
+Definition at line <a class="el" href="a05483.html#l00751">751</a> of file <a class="el" href="a05483.html">bit_mem_stream.h</a>.
+<p>
+Referenced by <a class="el" href="a05483.html#l00460">bufferToFill()</a>, <a class="el" href="a05482.html#l00673">displayStream()</a>, <a class="el" href="a05483.html#l00452">fill()</a>, <a class="el" href="a05483.html#l00443">getPosInBit()</a>, <a class="el" href="a05482.html#l00737">getSerialItem()</a>, <a class="el" href="a05482.html#l00172">internalSerial()</a>, <a class="el" href="a05483.html#l00402">length()</a>, <a class="el" href="a05483.html#l00367">operator=()</a>, <a class="el" href="a05483.html#l00710">pointNextByte()</a>, <a class="el" href="a05482.html#l00346">poke()</a>, <a class="el" href="a05482.html#l00375">pokeBits()</a>, <a class="el" href="a05483.html#l00382">resetBufPos()</a>, and <a class="el" href="a05482.html#l00296">serialPoke()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1CStringStreamp3" doxytag="NLMISC::CBitMemStream::_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>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05483.html">bit_mem_stream.h</a><li><a class="el" href="a05482.html">bit_mem_stream.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:04:34 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>