diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02271.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02271.html | 5974 |
1 files changed, 5974 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02271.html b/docs/doxygen/nel/a02271.html new file mode 100644 index 00000000..d82ab196 --- /dev/null +++ b/docs/doxygen/nel/a02271.html @@ -0,0 +1,5974 @@ +<!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::CMemStream 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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLMISC::CMemStream Class Reference</h1><code>#include <<a class="el" href="a05979.html">mem_stream.h</a>></code> +<p> +<p>Inheritance diagram for NLMISC::CMemStream: +<p><center><img src="a02271.png" usemap="#NLMISC::CMemStream_map" border="0" alt=""></center> +<map name="NLMISC::CMemStream_map"> +<area href="a02270.html" alt="NLMISC::IStream" shape="rect" coords="164,0,318,24"> +<area href="a02269.html" alt="NLMISC::CBitMemStream" shape="rect" coords="0,112,154,136"> +<area href="a03452.html" alt="NLMISC::CStringStream" shape="rect" coords="164,112,318,136"> +<area href="a02918.html" alt="NLNET::CMessage" shape="rect" coords="328,112,482,136"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Memory stream.<p> +How output mode works: The buffer size is increased by factor 2. It means the stream can be smaller than the buffer size. The size of the stream is the current position in the stream (given by <a class="el" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS()</a> which is equal to <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a>), because data is always written at the end (except when using <a class="el" href="a02271.html#NLMISC_1_1CStringStreama17">poke()</a>). About <a class="el" href="a02271.html#NLMISC_1_1CStringStreama22">seek()</a> particularities: see comment of the <a class="el" href="a02271.html#NLMISC_1_1CStringStreama22">seek()</a> method.<p> +<a class="el" href="a02271.html#NLMISC_1_1CStringStreama0">buffer()</a> ----------------------------------- <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a> ---------------- <a class="el" href="a02271.html#NLMISC_1_1CStringStreama48">size()</a> data already serialized out | <a class="el" href="a02271.html#NLMISC_1_1CStringStreama15">length()</a> = <a class="el" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS()</a><p> +How input mode works: The stream is exactly the buffer (the size is given by <a class="el" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR()</a>). Data is read inside the stream, at the current position (given by <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a>). If you try to read data while <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a> is equal to <a class="el" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR()</a>, you'll get an <a class="el" href="a03824.html">EStreamOverflow</a> exception.<p> +<a class="el" href="a02271.html#NLMISC_1_1CStringStreama0">buffer()</a> ----------------------------------- <a class="el" href="a02271.html#NLMISC_1_1CStringStreama10">getPos()</a> ------------------------- <a class="el" href="a02271.html#NLMISC_1_1CStringStreama48">size()</a> data already serialized in data not read yet | <a class="el" href="a02271.html#NLMISC_1_1CStringStreama15">length()</a> = <a class="el" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR()</a><p> +<a class="el" href="a02269.html">CBitMemStream</a> <a class="el" href="a02918.html">NLNET::CMessage</a> <dl compact><dt><b>Author:</b></dt><dd>Olivier Cado, Vianney Lecroart <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2000, 2002 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00081">81</a> of file <a class="el" href="a05979.html">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 </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 </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> * </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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama1">bufferToFill</a> (<a class="el" href="a04558.html#a11">uint32</a> msgsize)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama2">clear</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears the message. <a href="#NLMISC_1_1CStringStreama2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CMemStreama3">CMemStream</a> (const <a class="el" href="a02271.html">CMemStream</a> &other)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#NLMISC_1_1CMemStreama3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CMemStreama4">CMemStream</a> (bool inputStream=false, bool stringmode=false, <a class="el" href="a04558.html#a11">uint32</a> defaultcapacity=0)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Initialization constructor. <a href="#NLMISC_1_1CMemStreama4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama5">fastRead</a> (T &<a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (T &val)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama7">fastWrite</a> (const T &<a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama8">fill</a> (const <a class="el" href="a04558.html#a7">uint8</a> *srcbuf, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama9">getPos</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </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>void </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"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama12">invert</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama0">isReading</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama15">length</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02271.html">CMemStream</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CMemStreama16">operator=</a> (const <a class="el" href="a02271.html">CMemStream</a> &other)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator. <a href="#NLMISC_1_1CMemStreama16"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </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><a class="el" href="a04558.html#a10">sint32</a> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama19">resetBufPos</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama20">resetPtrTable</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </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"> </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 </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<class T0, class T1, class T2, class T3, class T4, class T5> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea36">serial</a> (T0 &a, T1 &b, T2 &c, T3 &d, T4 &e, T5 &f)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T0, class T1, class T2, class T3, class T4> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea37">serial</a> (T0 &a, T1 &b, T2 &c, T3 &d, T4 &e)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T0, class T1, class T2, class T3> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea38">serial</a> (T0 &a, T1 &b, T2 &c, T3 &d)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T0, class T1, class T2> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea39">serial</a> (T0 &a, T1 &b, T2 &c)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T0, class T1> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea40">serial</a> (T0 &a, T1 &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (T &obj)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Template serialisation (should take the one from <a class="el" href="a02270.html">IStream</a>). <a href="#NLNET_1_1CMessagea41"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea42">serialBit</a> (bool &bit)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Method inherited from <a class="el" href="a02270.html">IStream</a>. <a href="#NLNET_1_1CMessagea42"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Method inherited from <a class="el" href="a02270.html">IStream</a>. <a href="#NLMISC_1_1CStringStreama30"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea45">serialCont</a> (std::vector< bool > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea45"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea46">serialCont</a> (std::vector< <a class="el" href="a04558.html#a6">sint8</a> > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<sint8>. <a href="#NLNET_1_1CMessagea46"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea47">serialCont</a> (std::vector< <a class="el" href="a04558.html#a7">uint8</a> > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<uint8>. <a href="#NLNET_1_1CMessagea47"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class K, class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea48">serialCont</a> (std::multimap< K, T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea48"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class K, class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea49">serialCont</a> (std::map< K, T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea49"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea50">serialCont</a> (std::multiset< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea50"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea51">serialCont</a> (std::set< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea51"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea52">serialCont</a> (std::deque< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea52"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea53">serialCont</a> (std::list< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. <a href="#NLNET_1_1CMessagea53"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (std::vector< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreama7">serialEnum</a> (T &em)</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &b)</td></tr> + +<tr><td class="mdescLeft"> </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 </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"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama48">size</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreama49">stringMode</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return string mode. <a href="#NLMISC_1_1CStringStreama49"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreame0">getVersionException</a> (bool &throwOnOlder, bool &throwOnNewer)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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><a class="el" href="a04558.html#a11">uint32</a> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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>template<class T> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a> (T &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>< <a class="el" href="a04558.html#a7">uint8</a>, false > </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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02271.html#NLMISC_1_1CStringStreamp2">_DefaultCapacity</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </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::CMemStream::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> + + </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> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw1" doxytag="current" ></a>current</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw2" doxytag="end" ></a>end</em> </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 & Destructor Documentation</h2> +<a class="anchor" name="NLMISC_1_1CMemStreama4" doxytag="NLMISC::CMemStream::CMemStream" ></a><p> +<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::CMemStream::CMemStream </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </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>bool </td> + <td class="mdname" nowrap> <em>stringmode</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> </td> + <td class="mdname" nowrap> <em>defaultcapacity</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Initialization constructor. +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00086">86</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a05979.html#l00521">_DefaultCapacity</a>, <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< uint8, false >::resize()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00086 : +00087 <a class="code" href="a02270.html">NLMISC::IStream</a>( inputStream ), <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a>( stringmode ) +00088 { +00089 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp2">_DefaultCapacity</a> = std::max( defaultcapacity, (<a class="code" href="a04558.html#a11">uint32</a>)16 ); <span class="comment">// prevent from no allocation</span> +00090 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize (_DefaultCapacity); +00091 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00092 } + +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CMemStreama3" doxytag="NLMISC::CMemStream::CMemStream" ></a><p> +<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::CMemStream::CMemStream </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02271.html">CMemStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>other</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Copy constructor. +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00095">95</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00102">operator=()</a>. +<p> +<div class="fragment"><pre>00095 : +00096 <a class="code" href="a02270.html#NLMISC_1_1IStreama2">IStream</a> (other) +00097 { +00098 <a class="code" href="a02271.html#NLMISC_1_1CMemStreama16">operator=</a>( other ); +00099 } + +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1CStringStreama0" doxytag="NLMISC::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< uint8, false >::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">NLMISC::CBitMemStream::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 &(*_Buffer.begin());</span> +00248 <span class="comment"> }*/</span> +00249 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama1" doxytag="NLMISC::CMemStream::bufferToFill" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a>* NLMISC::CMemStream::bufferToFill </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>msgsize</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Resize the stream with the specified size, set the current position at the beginning of the stream and return a pointer to the stream buffer.<p> +Precondition: the stream is an input stream.<p> +Suggested usage: construct an input stream, resize and get the buffer using bufferToFillAndRead(), fill it with raw data using any filling function (warning: don't fill more than 'msgsize' bytes!), then you are ready to read, using <a class="el" href="a02271.html#NLNET_1_1CMessagea41">serial()</a>, the data you've just filled. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama1">NLMISC::CBitMemStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00306">306</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::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< uint8, false >::resize()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06026.html#l00460">NLNET::CMessage::extractStreamFromPos()</a>, <a class="el" href="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, and <a class="el" href="a06026.html#l00472">NLNET::CMessage::serialMessage()</a>. +<p> +<div class="fragment"><pre>00307 { +00308 <span class="preprocessor">#ifdef NL_DEBUG</span> +00309 <span class="preprocessor"></span> <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ); +00310 <span class="preprocessor">#endif</span> +00311 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( msgsize == 0 ) +00312 <span class="keywordflow">return</span> NULL; +00313 +00314 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize( msgsize ); +00315 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00316 <span class="comment">/*if ( ! isReading() )</span> +00317 <span class="comment"> _BufPos += msgsize;*/</span> +00318 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00319 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama2" doxytag="NLMISC::CMemStream::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::CMemStream::clear </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Clears the message. +<p> + +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama4">NLMISC::CBitMemStream</a>, and <a class="el" href="a02918.html#NLNET_1_1CMessagea4">NLNET::CMessage</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00201">201</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a05979.html#l00521">_DefaultCapacity</a>, <a class="el" href="a06116.html#l00124">NLMISC::CObjectVector< uint8, false >::clear()</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00352">resetPtrTable()</a>, and <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< uint8, false >::resize()</a>. +<p> +Referenced by <a class="el" href="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>. +<p> +<div class="fragment"><pre>00202 { +00203 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama20">resetPtrTable</a>(); +00204 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.clear(); +00205 <span class="keywordflow">if</span> (!<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00206 { +00207 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize (_DefaultCapacity); +00208 } +00209 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00210 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama5" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fastRead </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </td> + <td class="mdname1" valign="top" nowrap> <em>value</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a05979.html#l00217">length()</a>, <a class="el" href="a05979.html#l00502">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>) > <a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fastSerial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </td> + <td class="mdname1" valign="top" nowrap> <em>val</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a05979.html#l00358">increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00217">length()</a>, and <a class="el" href="a05979.html#l00502">lengthS()</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00561">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->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) > <a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">length</a>() ) <span class="comment">// calls virtual length (cf. sub messages)</span> +00379 <span class="keywordflow">throw</span> EStreamOverflow(); +00380 <span class="comment">// Serialize in</span> +00381 val = *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>; +00382 } +00383 <span class="keywordflow">else</span> +00384 { +00385 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (<span class="keyword">sizeof</span>(T)); +00386 *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = val; +00387 } +00388 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <span class="keyword">sizeof</span> (T); +00389 <span class="preprocessor">#else // NL_LITTLE_ENDIAN</span> +00390 <span class="preprocessor"></span> IStream::serial( val ); +00391 <span class="preprocessor">#endif // NL_LITTLE_ENDIAN</span> +00392 <span class="preprocessor"></span> } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama7" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fastWrite </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const T & </td> + <td class="mdname1" valign="top" nowrap> <em>value</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a05979.html#l00358">increaseBufferIfNecessary()</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00396 { +00397 <span class="comment">//nldebug( "MEMSTREAM: Writing %u-byte value in %p at pos %u", sizeof(value), this, _BufPos - _Buffer.getPtr() );</span> +00398 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (<span class="keyword">sizeof</span>(T)); +00399 *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a04223.html#a658">value</a>; +00400 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <span class="keyword">sizeof</span> (T); +00401 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama8" doxytag="NLMISC::CMemStream::fill" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::fill </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a04558.html#a7">uint8</a> * </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> </td> + <td class="mdname" nowrap> <em>len</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Resize the message buffer and fill data at position 0. Input stream: the current position is set at the beginning; Output stream: the current position is set after the filled data. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama10">NLMISC::CBitMemStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00277">277</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< uint8, false >::resize()</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector< uint8, false >::size()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06026.html#l00151">NLNET::CMessage::assignFromSubMessage()</a>, and <a class="el" href="a06527.html#l00045">NL3D::CTextureMem::doGenerate()</a>. +<p> +<div class="fragment"><pre>00278 { +00279 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a> == 0) <span class="keywordflow">return</span>; +00280 +00281 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize( len ); +00282 CFastMem::memcpy( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(), srcbuf, <a class="code" href="a04223.html#a571">len</a> ); +00283 <span class="keywordflow">if</span> (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00284 { +00285 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00286 } +00287 <span class="keywordflow">else</span> +00288 { +00289 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size(); +00290 } +00291 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama9" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">EStream</a>)<code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </td><td>is the wanted offset from the origin. </td></tr> + <tr><td valign=top><em>origin</em> </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::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">NLMISC::CBitMemStream::serial()</a>, <a class="el" href="a05482.html#l00591">NLMISC::CBitMemStream::serialCont()</a>, <a class="el" href="a05482.html#l00551">NLMISC::CBitMemStream::serialMemStream()</a>, <a class="el" href="a06026.html#l00173">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_1IStreamz2036_2" doxytag="NLMISC::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">bool & </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 & </td> + <td class="mdname" nowrap> <em>throwOnNewer</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </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::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>len</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< uint8, false >::resize()</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector< uint8, false >::size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a05979.html#l00395">fastWrite()</a>, <a class="el" href="a05979.html#l00168">reserve()</a>, and <a class="el" href="a05978.html#l00073">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> > 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_1CStringStreama12" doxytag="NLMISC::CMemStream::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::CMemStream::invert </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Transforms the message from input to output or from output to input<p> +Precondition:<ul> +<li>If the stream is in input mode, it must not be empty (nothing filled), otherwise the position will be set to the end of the preallocated buffer (see DefaultCapacity). Postcondition:</li><li>Read->write, the position is set at the end of the stream, it is possible to add more data</li></ul> +<p> +- Write->Read, the position is set at the beginning of the stream +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama16">NLMISC::CBitMemStream</a>, and <a class="el" href="a02918.html#NLNET_1_1CMessagea21">NLNET::CMessage</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00331">331</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00511">lengthR()</a>, <a class="el" href="a05979.html#l00352">resetPtrTable()</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< uint8, false >::resize()</a>, <a class="el" href="a06461.html#l00413">NLMISC::IStream::setInOut()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06152.html#l00136">NL3D::CParticleSystemShape::buildFromPS()</a>, <a class="el" href="a05445.html#l00138">NL3D::CAnimationOptimizer::cloneTrack()</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="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>. +<p> +<div class="fragment"><pre>00332 { +00333 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00334 { +00335 <span class="comment">// In->Out: We want to write (serialize out) what we have read (serialized in)</span> +00336 <a class="code" href="a04558.html#a11">uint32</a> sizeOfReadStream = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR</a>(); +00337 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama20">resetPtrTable</a>(); +00338 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_1">setInOut</a>( <span class="keyword">false</span> ); +00339 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + sizeOfReadStream; +00340 } +00341 <span class="keywordflow">else</span> +00342 { +00343 <span class="comment">// Out->In: We want to read (serialize in) what we have written (serialized out)</span> +00344 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama20">resetPtrTable</a>(); +00345 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2040_1">setInOut</a>( <span class="keyword">true</span> ); +00346 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize (_BufPos - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()); +00347 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00348 } +00349 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreama0" doxytag="NLMISC::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">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">clear()</a>, <a class="el" href="a06026.html#l00091">NLNET::CMessage::CMessage()</a>, <a class="el" href="a05482.html#l00673">NLMISC::CBitMemStream::displayStream()</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a05979.html#l00277">fill()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a05482.html#l00737">NLMISC::CBitMemStream::getSerialItem()</a>, <a class="el" href="a05483.html#l00730">NLMISC::CBitMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06107.html#l00111">NLMISC::COXml::init()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, <a class="el" href="a05482.html#l00172">NLMISC::CBitMemStream::internalSerial()</a>, <a class="el" href="a06027.html#l00198">NLNET::CMessage::invert()</a>, <a class="el" href="a05979.html#l00331">invert()</a>, <a class="el" href="a05483.html#l00418">NLMISC::CBitMemStream::invert()</a>, <a class="el" href="a06027.html#l00104">NLNET::CMessage::length()</a>, <a class="el" href="a05979.html#l00217">length()</a>, <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::length()</a>, <a class="el" href="a05486.html#l00109">NLMISC::CBitmap::load()</a>, <a class="el" href="a05486.html#l02582">NLMISC::CBitmap::loadSize()</a>, <a class="el" href="a06027.html#l00143">NLNET::CMessage::lockSubMessage()</a>, <a class="el" href="a06026.html#l00118">NLNET::CMessage::operator=()</a>, <a class="el" href="a05483.html#l00710">NLMISC::CBitMemStream::pointNextByte()</a>, <a class="el" href="a05979.html#l00190">poke()</a>, <a class="el" href="a05482.html#l00346">NLMISC::CBitMemStream::poke()</a>, <a class="el" href="a05482.html#l00375">NLMISC::CBitMemStream::pokeBits()</a>, <a class="el" href="a05482.html#l00415">NLMISC::CBitMemStream::readBits()</a>, <a class="el" href="a05486.html#l01800">NLMISC::CBitmap::readTGA()</a>, <a class="el" href="a06026.html#l00362">NLNET::CMessage::readTypeAtCurrentPos()</a>, <a class="el" href="a05979.html#l00168">reserve()</a>, <a class="el" href="a05482.html#l00275">NLMISC::CBitMemStream::reserveBits()</a>, <a class="el" href="a05483.html#l00382">NLMISC::CBitMemStream::resetBufPos()</a>, <a class="el" href="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06477.html#l00329">NLPACS::CSurfaceQuadTree::serial()</a>, <a class="el" href="a06477.html#l00246">NLPACS::CQuadBranch::serial()</a>, <a class="el" href="a06476.html#l00076">NL3D::CSurfaceLightGrid::CCellCorner::serial()</a>, <a class="el" href="a06471.html#l00115">NLMISC::CStringStream::serial()</a>, <a class="el" href="a06463.html#l00087">NLMISC::IStream::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a06350.html#l00065">NL3D::CInstanceGroup::CInstance::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06336.html#l00114">NLPACS::CRetrieverBank::serial()</a>, <a class="el" href="a06213.html#l00438">NL3D::CPSAttrib< T >::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< sint8, false >::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">serial()</a>, <a class="el" href="a05972.html#l01500">NLMISC::CMatrix::serial()</a>, <a class="el" href="a05968.html#l00438">NL3D::CMaterial::CLightMap::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05541.html#l00473">NLPACS::CChainQuad::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05482.html#l00447">NLMISC::CBitMemStream::serial()</a>, <a class="el" href="a05437.html#l00045">NL3D::CMaterialBase::CAnimatedTexture::serial()</a>, <a class="el" href="a05384.html#l00337">NLMISC::CAABBoxExt::serial()</a>, <a class="el" href="a05968.html#l00456">NL3D::CMaterial::CLightMap::serial2()</a>, <a class="el" href="a06471.html#l00253">NLMISC::CStringStream::serialBit()</a>, <a class="el" href="a05978.html#l00117">serialBit()</a>, <a class="el" href="a05482.html#l00100">NLMISC::CBitMemStream::serialBit()</a>, <a class="el" href="a05978.html#l00073">serialBuffer()</a>, <a class="el" href="a05482.html#l00073">NLMISC::CBitMemStream::serialBuffer()</a>, <a class="el" href="a06462.html#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a06471.html#l00340">NLMISC::CStringStream::serialCont()</a>, <a class="el" href="a06461.html#l00318">NLMISC::IStream::serialCont()</a>, <a class="el" href="a05482.html#l00591">NLMISC::CBitMemStream::serialCont()</a>, <a class="el" href="a06462.html#l00261">NLMISC::IStream::serialEnum()</a>, <a class="el" href="a06710.html#l00883">NL3D::CVertexBuffer::serialHeader()</a>, <a class="el" href="a06471.html#l00375">NLMISC::CStringStream::serialHex()</a>, <a class="el" href="a05979.html#l00929">serialHex()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06005.html#l01918">NL3D::CMeshMRMGeom::serialLodVertexData()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, <a class="el" href="a05482.html#l00551">NLMISC::CBitMemStream::serialMemStream()</a>, <a class="el" href="a06026.html#l00472">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">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">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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">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_1CStringStreama15" doxytag="NLMISC::CMemStream::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::CMemStream::length </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama19">NLMISC::CBitMemStream</a>, and <a class="el" href="a02918.html#NLNET_1_1CMessagea24">NLNET::CMessage</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00217">217</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00511">lengthR()</a>, <a class="el" href="a05979.html#l00502">lengthS()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00404">fastRead()</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a05978.html#l00235">resize()</a>, <a class="el" href="a05978.html#l00073">serialBuffer()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, <a class="el" href="a06471.html#l00041">NLMISC::CStringStream::serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00307">serialSeparatedBufferIn()</a>. +<p> +<div class="fragment"><pre>00218 { +00219 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00220 { +00221 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb0">lengthR</a>(); +00222 } +00223 <span class="keywordflow">else</span> +00224 { +00225 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>(); +00226 } +00227 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamb0" doxytag="NLMISC::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, protected]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05482.html#l00737">NLMISC::CBitMemStream::getSerialItem()</a>, <a class="el" href="a05482.html#l00172">NLMISC::CBitMemStream::internalSerial()</a>, <a class="el" href="a05979.html#l00331">invert()</a>, <a class="el" href="a05979.html#l00217">length()</a>, and <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, protected]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00404">fastRead()</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06027.html#l00104">NLNET::CMessage::length()</a>, <a class="el" href="a05979.html#l00217">length()</a>, <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::length()</a>, <a class="el" href="a05979.html#l00102">operator=()</a>, <a class="el" href="a05978.html#l00073">serialBuffer()</a>, <a class="el" href="a06471.html#l00041">NLMISC::CStringStream::serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00307">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_1CMemStreama16" doxytag="NLMISC::CMemStream::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="a02271.html">CMemStream</a>& NLMISC::CMemStream::operator= </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02271.html">CMemStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>other</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Assignment operator. +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00102">102</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00516">_Buffer</a>, <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a05979.html#l00521">_DefaultCapacity</a>, <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, and <a class="el" href="a05979.html#l00502">lengthS()</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00095">CMemStream()</a>. +<p> +<div class="fragment"><pre>00103 { +00104 IStream::operator= (other); +00105 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a> = other._Buffer; +00106 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + other.lengthS(); +00107 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> = other._StringMode; +00108 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp2">_DefaultCapacity</a> = other._DefaultCapacity; +00109 <span class="keywordflow">return</span> *<span class="keyword">this</span>; +00110 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama17" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::poke </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T </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> </td> + <td class="mdname" nowrap> <em>pos</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::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) <= _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_1CStringStreama18" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>len</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a05979.html#l00358">increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00169 { +00170 <a class="code" href="a04558.html#a10">sint32</a> pos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00171 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00172 { +00173 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a>( len ); +00174 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>; +00175 } +00176 <span class="keywordflow">return</span> pos; +00177 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama19" doxytag="NLMISC::CMemStream::resetBufPos" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::resetBufPos </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +When you fill the buffer externaly (using bufferAsVector) you have to reset the BufPos calling this method<p> +If you are using the stream only in output mode, you can use this method as a faster version of <a class="el" href="a02271.html#NLMISC_1_1CStringStreama2">clear()</a> *if you don't serialize pointers*. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama27">NLMISC::CBitMemStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00270">270</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, and <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>. +<p> +Referenced by <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>. +<p> +<div class="fragment"><pre>00270 { <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama20" doxytag="NLMISC::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">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">invert()</a>. +<p> +<div class="fragment"><pre>00352 { IStream::resetPtrTable() ; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama21" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>size</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a05979.html#l00217">length()</a>, <a class="el" href="a06116.html#l00142">NLMISC::CObjectVector< uint8, false >::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="a02271.html#NLMISC_1_1CStringStreama15">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::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a> </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> </td> + <td class="mdname" nowrap> <em>origin</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> throw (<a class="el" href="a03781.html">EStream</a>)<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </td><td>is the wanted offset from the origin. </td></tr> + <tr><td valign=top><em>origin</em> </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> > (<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">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> < 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> > (<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">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> < 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> < -(<a class="code" href="a04558.html#a14">sint</a>)<a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">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> > 0) +00199 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00200 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>=<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr()+<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size()+<a class="code" href="a04223.html#a586">offset</a>; +00201 <span class="keywordflow">break</span>; +00202 } +00203 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00204 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_0" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03924.html">ucstring</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_0">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_1">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_0">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00863">863</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05979.html#l00420">serial()</a>, <a class="el" href="a05978.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>00864 { +00865 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00866 { +00867 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00868 <span class="comment">// Read/Write the length.</span> +00869 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00870 { +00871 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len); +00872 b.resize(len); +00873 } +00874 <span class="keywordflow">else</span> +00875 { +00876 <a class="code" href="a04223.html#a571">len</a>= b.size(); +00877 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len); +00878 } +00879 <span class="comment">// Read/Write the string.</span> +00880 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i<<a class="code" href="a04223.html#a571">len</a>;i++) +00881 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&b[i], <span class="keyword">sizeof</span>( <span class="keyword">sizeof</span>(b[i]) ) ); +00882 +00883 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>; +00884 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&sep, 1 ); +00885 } +00886 <span class="keywordflow">else</span> +00887 { +00888 IStream::serial( b ); +00889 } +00890 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_1" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_1">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_2">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_1">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00803">803</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00221">NLMISC::IStream::isXML()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05979.html#l00420">serial()</a>, <a class="el" href="a05978.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>00804 { +00805 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00806 { +00807 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00808 <span class="comment">// Read/Write the length.</span> +00809 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00810 { +00811 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len); +00812 <a class="code" href="a04199.html#a6">nlassert</a>( len<1000000 ); <span class="comment">// limiting string size</span> +00813 b.resize(len); +00814 } +00815 <span class="keywordflow">else</span> +00816 { +00817 <a class="code" href="a04223.html#a571">len</a>= b.size(); +00818 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len); +00819 } +00820 +00821 <span class="comment">// Read/Write the string.</span> +00822 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i<<a class="code" href="a04223.html#a571">len</a>;i++) +00823 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&(b[i]), <span class="keyword">sizeof</span>(b[i]) ); +00824 +00825 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>; +00826 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&sep, 1 ); +00827 } +00828 <span class="keywordflow">else</span> +00829 { +00830 <span class="keywordflow">if</span> (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00831 { +00832 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>) == 1 && !<a class="code" href="a02270.html#NLMISC_1_1IStreama3">isXML</a>()) +00833 { +00834 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00835 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a>(len); +00836 <span class="comment">// nlassert( len<1000000 ); // limiting string size</span> +00837 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a>>1000000) +00838 { +00839 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"Trying to serialize a string of %u character !"</span>, len); +00840 <span class="keywordflow">throw</span> <a class="code" href="a03824.html">NLMISC::EStreamOverflow</a>(); +00841 } +00842 b.resize(len); +00843 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a571">len</a> > 0) +00844 { +00845 <span class="comment">// can serial all in a single call to serialBuffer, since sizeof(char) == 1</span> +00846 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>((<a class="code" href="a04558.html#a7">uint8</a> *) &b[0], len); +00847 } +00848 } +00849 <span class="keywordflow">else</span> +00850 { +00851 IStream::serial( b ); +00852 } +00853 } +00854 <span class="keywordflow">else</span> +00855 { +00856 IStream::serial( b ); +00857 } +00858 } +00859 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_2" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">char & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_2">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_3">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_2">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00778">778</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05978.html#l00073">serialBuffer()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00779 { +00780 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00781 { +00782 <span class="keywordtype">char</span> buff [2]; +00783 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00784 { +00785 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)buff, 2 ); +00786 b = buff[0]; +00787 } +00788 <span class="keywordflow">else</span> +00789 { +00790 buff[0] = b; +00791 buff[1] = <a class="code" href="a05378.html#a28">SEPARATOR</a>; +00792 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)buff, 2 ); +00793 } +00794 } +00795 <span class="keywordflow">else</span> +00796 { +00797 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00798 } +00799 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_3" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_3">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_4">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_3">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00763">763</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, and <a class="el" href="a05978.html#l00117">serialBit()</a>. +<p> +<div class="fragment"><pre>00764 { +00765 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00766 { +00767 <a class="code" href="a02271.html#NLNET_1_1CMessagea42">serialBit</a>(b); +00768 } +00769 <span class="keywordflow">else</span> +00770 { +00771 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00772 } +00773 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_4" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">double & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_4">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_5">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_4">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00743">743</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00744 { +00745 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00746 { +00747 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00748 { +00749 <a class="code" href="a04377.html#a1">readnumber</a>( b, <span class="keywordtype">double</span>, 128, atof ); <span class="comment">//</span> +00750 } +00751 <span class="keywordflow">else</span> +00752 { +00753 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%f"</span>, 128 ); +00754 } +00755 } +00756 <span class="keywordflow">else</span> +00757 { +00758 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00759 } +00760 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_5" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">float & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_5">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_6">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_5">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00723">723</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00724 { +00725 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00726 { +00727 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00728 { +00729 <a class="code" href="a04377.html#a1">readnumber</a>( b, <span class="keywordtype">float</span>, 128, atof ); <span class="comment">// ?</span> +00730 } +00731 <span class="keywordflow">else</span> +00732 { +00733 <a class="code" href="a04684.html#a0">writenumber</a>( (<span class="keywordtype">double</span>)b, <span class="stringliteral">"%f"</span>, 128 ); +00734 } +00735 } +00736 <span class="keywordflow">else</span> +00737 { +00738 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00739 } +00740 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_6" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a12">sint64</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_6">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_7">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_6">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00703">703</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00101">sint64</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00704 { +00705 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00706 { +00707 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00708 { +00709 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a12">sint64</a>, 20, atoiInt64 ); <span class="comment">// -9223372036854775808</span> +00710 } +00711 <span class="keywordflow">else</span> +00712 { +00713 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"d"</span>, 20 ); +00714 } +00715 } +00716 <span class="keywordflow">else</span> +00717 { +00718 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00719 } +00720 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_7" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_7">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_8">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_7">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00683">683</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00684 { +00685 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00686 { +00687 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00688 { +00689 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a13">uint64</a>, 20, atoiInt64 ); <span class="comment">// 18446744073709551615</span> +00690 } +00691 <span class="keywordflow">else</span> +00692 { +00693 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"u"</span>, 20 ); +00694 } +00695 } +00696 <span class="keywordflow">else</span> +00697 { +00698 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00699 } +00700 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_8" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_8">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_9">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_8">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00663">663</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00664 { +00665 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00666 { +00667 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00668 { +00669 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a10">sint32</a>, 11, atoi ); <span class="comment">// -2147483648</span> +00670 } +00671 <span class="keywordflow">else</span> +00672 { +00673 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%d"</span>, 11 ); +00674 } +00675 } +00676 <span class="keywordflow">else</span> +00677 { +00678 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00679 } +00680 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_9" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_9">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_10">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_9">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00642">642</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05800.html#l00481">NLMISC::atoui()</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00643 { +00644 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00645 { +00646 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00647 { +00648 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a11">uint32</a>, 10, atoui ); <span class="comment">// 4294967295</span> +00649 } +00650 <span class="keywordflow">else</span> +00651 { +00652 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%u"</span>, 10 ); +00653 } +00654 } +00655 <span class="keywordflow">else</span> +00656 { +00657 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00658 } +00659 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_10" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a8">sint16</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_10">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_11">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_10">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00622">622</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00097">sint16</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00623 { +00624 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00625 { +00626 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00627 { +00628 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a8">sint16</a>, 6, atoi ); <span class="comment">// -32768</span> +00629 } +00630 <span class="keywordflow">else</span> +00631 { +00632 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%hd"</span>, 6 ); +00633 } +00634 } +00635 <span class="keywordflow">else</span> +00636 { +00637 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00638 } +00639 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_11" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_11">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_12">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_11">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00601">601</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00602 { +00603 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00604 { +00605 <span class="comment">// No byte swapping in text mode</span> +00606 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00607 { +00608 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a9">uint16</a>, 5, atoi ); <span class="comment">// 65535</span> +00609 } +00610 <span class="keywordflow">else</span> +00611 { +00612 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%hu"</span>, 5 ); +00613 } +00614 } +00615 <span class="keywordflow">else</span> +00616 { +00617 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00618 } +00619 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_12" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a6">sint8</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_12">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_13">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_12">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00581">581</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00097">sint16</a>, <a class="el" href="a05981.html#l00095">sint8</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00582 { +00583 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00584 { +00585 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00586 { +00587 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a6">sint8</a>, 4, atoi ); <span class="comment">// -128</span> +00588 } +00589 <span class="keywordflow">else</span> +00590 { +00591 <a class="code" href="a04684.html#a0">writenumber</a>( (<a class="code" href="a04558.html#a8">sint16</a>)b, <span class="stringliteral">"%hd"</span>, 4 ); +00592 } +00593 } +00594 <span class="keywordflow">else</span> +00595 { +00596 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00597 } +00598 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1972_13" doxytag="NLMISC::CMemStream::serial" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2028_13">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreamz1916_14">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_13">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00561">561</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05800.html#l00048">readnumber</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a06107.html#l00046">writenumber</a>. +<p> +<div class="fragment"><pre>00562 { +00563 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> ) +00564 { +00565 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00566 { +00567 <a class="code" href="a04377.html#a1">readnumber</a>( b, <a class="code" href="a04558.html#a7">uint8</a>, 3, atoi ); <span class="comment">// 255</span> +00568 } +00569 <span class="keywordflow">else</span> +00570 { +00571 <a class="code" href="a04684.html#a0">writenumber</a>( (<a class="code" href="a04558.html#a9">uint16</a>)b,<span class="stringliteral">"%hu"</span>, 3 ); +00572 } +00573 } +00574 <span class="keywordflow">else</span> +00575 { +00576 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama6">fastSerial</a> (b); +00577 } +00578 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea36" doxytag="NLMISC::CMemStream::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<class T0, class T1, class T2, class T3, class T4, class T5> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T0 & </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 & </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 & </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 & </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 & </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 & </td> + <td class="mdname" nowrap> <em>f</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">serial()</a>. +<p> +<div class="fragment"><pre>00460 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(d); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(e); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(f);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea37" doxytag="NLMISC::CMemStream::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<class T0, class T1, class T2, class T3, class T4> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T0 & </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 & </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 & </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 & </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 & </td> + <td class="mdname" nowrap> <em>e</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">serial()</a>. +<p> +<div class="fragment"><pre>00457 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(d); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(e);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea38" doxytag="NLMISC::CMemStream::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<class T0, class T1, class T2, class T3> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T0 & </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 & </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 & </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 & </td> + <td class="mdname" nowrap> <em>d</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">serial()</a>. +<p> +<div class="fragment"><pre>00454 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(d);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea39" doxytag="NLMISC::CMemStream::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<class T0, class T1, class T2> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T0 & </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 & </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 & </td> + <td class="mdname" nowrap> <em>c</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">serial()</a>. +<p> +<div class="fragment"><pre>00451 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(c);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea40" doxytag="NLMISC::CMemStream::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<class T0, class T1> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T0 & </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 & </td> + <td class="mdname" nowrap> <em>b</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">serial()</a>. +<p> +<div class="fragment"><pre>00448 { <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(a); <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea41" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </td> + <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Template serialisation (should take the one from <a class="el" href="a02270.html">IStream</a>). +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreama5">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama36">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama28">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00420">420</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +Referenced by <a class="el" href="a06138.html#l00149">NLNET::CPacsClient::addPrimitive()</a>, <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, <a class="el" href="a05526.html#l00328">NLNET::CCallbackNetBase::baseUpdate()</a>, <a class="el" href="a05391.html#l00169">NLNET::cbAESConnection()</a>, <a class="el" href="a06650.html#l00296">NLNET::cbClientGetUniversalTime()</a>, <a class="el" href="a05391.html#l00144">NLNET::cbExecCommand()</a>, <a class="el" href="a06650.html#l00139">NLNET::cbGetUniversalTime()</a>, <a class="el" href="a05526.html#l00088">NLNET::cbnbMessageAskAssociations()</a>, <a class="el" href="a05526.html#l00055">NLNET::cbnbMessageRecvAssociations()</a>, <a class="el" href="a06138.html#l00495">NLNET::cbPacsAnswer()</a>, <a class="el" href="a06089.html#l00109">NLNET::cbQueryPort()</a>, <a class="el" href="a06364.html#l00251">NLNET::cbReceiveShardId()</a>, <a class="el" href="a06089.html#l00085">NLNET::cbRegister()</a>, <a class="el" href="a06089.html#l00119">NLNET::cbRegisterBroadcast()</a>, <a class="el" href="a06650.html#l00262">NLNET::cbServerAskUniversalTime()</a>, <a class="el" href="a05391.html#l00112">NLNET::cbServGetView()</a>, <a class="el" href="a05958.html#l00048">NLNET::cbShardValidate()</a>, <a class="el" href="a05962.html#l00181">NLNET::cbShardValidation()</a>, <a class="el" href="a06580.html#l00279">NLNET::cbTCReceiveOtherSideClass()</a>, <a class="el" href="a06089.html#l00178">NLNET::cbUnregisterBroadcast()</a>, <a class="el" href="a05962.html#l00100">NLNET::cbWSChooseShard()</a>, <a class="el" href="a05962.html#l00142">NLNET::cbWSDisconnectClient()</a>, <a class="el" href="a06026.html#l00297">NLNET::CMessage::changeType()</a>, <a class="el" href="a05391.html#l00310">NLNET::cleanRequest()</a>, <a class="el" href="a05962.html#l00413">NLNET::CLoginServer::clientDisconnected()</a>, <a class="el" href="a05524.html#l00286">NLNET::CCallbackClient::connect()</a>, <a class="el" href="a05958.html#l00063">NLNET::CLoginClient::connectToShard()</a>, <a class="el" href="a06645.html#l01892">NLNET::createMessage()</a>, <a class="el" href="a06094.html#l00123">NLNET::CNetDisplayer::doDisplay()</a>, <a class="el" href="a06138.html#l00180">NLNET::CPacsClient::evalCollision()</a>, <a class="el" href="a05952.html#l00196">NLLOGIC::CLogicState::exitState()</a>, <a class="el" href="a06580.html#l00414">NLNET::getNameOfMessageOrTransportClass()</a>, <a class="el" href="a06138.html#l00433">NLNET::CPacsClient::getPositionSpeed()</a>, <a class="el" href="a06138.html#l00400">NLNET::CPacsClient::globalMove()</a>, <a class="el" href="a06138.html#l00132">NLNET::CPacsClient::rayTest()</a>, <a class="el" href="a06026.html#l00319">NLNET::CMessage::readType()</a>, <a class="el" href="a06026.html#l00362">NLNET::CMessage::readTypeAtCurrentPos()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>, <a class="el" href="a06138.html#l00418">NLNET::CPacsClient::relativeMove()</a>, <a class="el" href="a06138.html#l00164">NLNET::CPacsClient::removePrimitive()</a>, <a class="el" href="a06028.html#l00326">NLNET::CMessageRecorder::replayConnectionAttempt()</a>, <a class="el" href="a06089.html#l00373">NLNET::CNamingClient::resendRegisteration()</a>, <a class="el" href="a05391.html#l00612">NLNET::sendAdminEmail()</a>, <a class="el" href="a05528.html#l00091">NLNET::CCallbackServer::sendAllMyAssociations()</a>, <a class="el" href="a06138.html#l00097">NLNET::CPacsClient::sendMessage()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a05979.html#l00447">serial()</a>, <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>, <a class="el" href="a05978.html#l00117">serialBit()</a>, <a class="el" href="a06026.html#l00472">NLNET::CMessage::serialMessage()</a>, <a class="el" href="a06138.html#l00338">NLNET::CPacsClient::setAbsorption()</a>, <a class="el" href="a06138.html#l00278">NLNET::CPacsClient::setCollisionMask()</a>, <a class="el" href="a06138.html#l00215">NLNET::CPacsClient::setCurrentPrimitive()</a>, <a class="el" href="a06138.html#l00369">NLNET::CPacsClient::setHeight()</a>, <a class="el" href="a06138.html#l00308">NLNET::CPacsClient::setObstacle()</a>, <a class="el" href="a06138.html#l00293">NLNET::CPacsClient::setOcclusionMask()</a>, <a class="el" href="a06138.html#l00323">NLNET::CPacsClient::setOrientation()</a>, <a class="el" href="a06138.html#l00230">NLNET::CPacsClient::setPrimitiveType()</a>, <a class="el" href="a06138.html#l00384">NLNET::CPacsClient::setRadius()</a>, <a class="el" href="a06138.html#l00246">NLNET::CPacsClient::setReactionType()</a>, <a class="el" href="a06138.html#l00354">NLNET::CPacsClient::setSize()</a>, <a class="el" href="a06138.html#l00262">NLNET::CPacsClient::setTriggerType()</a>, <a class="el" href="a06026.html#l00173">NLNET::CMessage::setType()</a>, <a class="el" href="a06138.html#l00197">NLNET::CPacsClient::testMove()</a>, <a class="el" href="a05952.html#l00239">NLLOGIC::CLogicState::trySendEntryMessages()</a>, <a class="el" href="a05952.html#l00265">NLLOGIC::CLogicState::trySendEventMessages()</a>, <a class="el" href="a06645.html#l00284">NLNET::uncbServiceIdentification()</a>, <a class="el" href="a06089.html#l00385">NLNET::CNamingClient::unregisterService()</a>, <a class="el" href="a06645.html#l00857">NLNET::CUnifiedNetwork::update()</a>, and <a class="el" href="a05391.html#l00648">NLNET::updateAdmin()</a>. +<p> +<div class="fragment"><pre>00420 { obj.serial(*<span class="keyword">this</span>); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea42" doxytag="NLMISC::CMemStream::serialBit" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialBit </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool & </td> + <td class="mdname1" valign="top" nowrap> <em>bit</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Method inherited from <a class="el" href="a02270.html">IStream</a>. +<p> + +<p> +Implements <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_0">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama39">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama29">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05978.html#l00117">117</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00420">serial()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00763">serial()</a>. +<p> +<div class="fragment"><pre>00118 { +00119 <span class="comment">/* if ( _StringMode )</span> +00120 <span class="comment"> {</span> +00121 <span class="comment">*/</span> <a class="code" href="a04558.html#a7">uint8</a> u; +00122 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00123 { +00124 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( u ); +00125 bit = (u!=0); +00126 } +00127 <span class="keywordflow">else</span> +00128 { +00129 u = (<a class="code" href="a04558.html#a7">uint8</a>)bit; +00130 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( u ); +00131 } +00132 <span class="comment">/* }</span> +00133 <span class="comment"> else</span> +00134 <span class="comment"> {</span> +00135 <span class="comment"> uint len = sizeof(uint8);</span> +00136 <span class="comment"> uint8 thebuf;</span> +00137 <span class="comment"></span> +00138 <span class="comment"> if ( isReading() )</span> +00139 <span class="comment"> {</span> +00140 <span class="comment"> // Check that we don't read more than there is to read</span> +00141 <span class="comment"> if ( lengthS()+len > length() ) // calls virtual length (cf. sub messages)</span> +00142 <span class="comment"> {</span> +00143 <span class="comment"> throw EStreamOverflow();</span> +00144 <span class="comment"> }</span> +00145 <span class="comment"> // Serialize in</span> +00146 <span class="comment"> memcpy( &thebuf, &(*_BufPos), len );</span> +00147 <span class="comment"> _BufPos += len;</span> +00148 <span class="comment"> bit = (thebuf!=0);</span> +00149 <span class="comment"> }</span> +00150 <span class="comment"> else</span> +00151 <span class="comment"> {</span> +00152 <span class="comment"> thebuf = (uint8)bit;</span> +00153 <span class="comment"> // Serialize out</span> +00154 <span class="comment"> _Buffer.resize( _Buffer.size() + len );</span> +00155 <span class="comment"> _BufPos = _Buffer.end() - len;</span> +00156 <span class="comment"> memcpy( &(*_BufPos), &thebuf, len );</span> +00157 <span class="comment"> _BufPos = _Buffer.end();</span> +00158 <span class="comment"> }</span> +00159 <span class="comment"> }*/</span> +00160 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2030_0" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a> </td> + <td class="mdname1" valign="top" nowrap> <em>bf</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Serialisation of bitfield <=16 bits. +<p> + +<p> +Definition at line <a class="el" href="a06463.html#l00332">332</a> of file <a class="el" href="a06463.html">stream_inline.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>. +<p> +<div class="fragment"><pre>00333 { +00334 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(bf); +00335 <span class="keywordflow">return</span> bf; +00336 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2030_1" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>bf</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Serialisation of bitfield <=32 bits. +<p> + +<p> +Definition at line <a class="el" href="a06463.html#l00338">338</a> of file <a class="el" href="a06463.html">stream_inline.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00339 { +00340 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(bf); +00341 <span class="keywordflow">return</span> bf; +00342 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2030_2" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> </td> + <td class="mdname1" valign="top" nowrap> <em>bf</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Serialisation of bitfield <=8 bits. +<p> + +<p> +Definition at line <a class="el" href="a06463.html#l00326">326</a> of file <a class="el" href="a06463.html">stream_inline.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a05969.html#l00542">NL3D::CMaterial::CTexEnv::serial()</a>. +<p> +<div class="fragment"><pre>00327 { +00328 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(bf); +00329 <span class="keywordflow">return</span> bf; +00330 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama30" doxytag="NLMISC::CMemStream::serialBuffer" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialBuffer </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> * </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> </td> + <td class="mdname" nowrap> <em>len</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Method inherited from <a class="el" href="a02270.html">IStream</a>. +<p> + +<p> +Implements <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama40">NLMISC::CBitMemStream</a>. +<p> +Definition at line <a class="el" href="a05978.html#l00073">73</a> of file <a class="el" href="a05978.html">mem_stream.cpp</a>. +<p> +References <a class="el" href="a05979.html#l00517">_BufPos</a>, <a class="el" href="a05979.html#l00358">increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">length()</a>, <a class="el" href="a05979.html#l00502">lengthS()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06471.html#l00271">NLMISC::CStringStream::serial()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a05979.html#l00778">serial()</a>, and <a class="el" href="a06026.html#l00472">NLNET::CMessage::serialMessage()</a>. +<p> +<div class="fragment"><pre>00074 { +00075 <span class="comment">// commented for optimum performance</span> +00076 <a class="code" href="a04199.html#a6">nlassert</a> (len > 0); +00077 <a class="code" href="a04199.html#a6">nlassert</a> (buf != NULL); +00078 +00079 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00080 { +00081 <span class="comment">// Check that we don't read more than there is to read</span> +00082 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>()+<a class="code" href="a04223.html#a571">len</a> > <a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">length</a>() ) <span class="comment">// calls virtual length (cf. sub messages)</span> +00083 { +00084 <span class="keywordflow">throw</span> EStreamOverflow(); +00085 } +00086 <span class="comment">// Serialize in</span> +00087 CFastMem::memcpy( buf, _BufPos, len ); +00088 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>; +00089 } +00090 <span class="keywordflow">else</span> +00091 { +00092 <span class="comment">// Serialize out</span> +00093 +00094 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (len); +00095 <span class="comment">/* uint32 oldBufferSize = _Buffer.size();</span> +00096 <span class="comment"> if (_BufPos - _Buffer.getPtr() + len > oldBufferSize)</span> +00097 <span class="comment"> {</span> +00098 <span class="comment"> // need to increase the buffer size</span> +00099 <span class="comment"> uint32 pos = _BufPos - _Buffer.getPtr();</span> +00100 <span class="comment"> _Buffer.resize(oldBufferSize*2 + len);</span> +00101 <span class="comment"> _BufPos = _Buffer.getPtr() + pos;</span> +00102 <span class="comment"> }</span> +00103 <span class="comment">*/</span> +00104 CFastMem::memcpy( _BufPos, buf, len ); +00105 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>; +00106 +00107 <span class="comment">/* _Buffer.resize( size );</span> +00108 <span class="comment"> _BufPos = _Buffer.end() - len;</span> +00109 <span class="comment"> CFastMem::memcpy( &(*_BufPos), buf, len );</span> +00110 <span class="comment"> _BufPos = _Buffer.end();*/</span> +00111 } +00112 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreama6" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> * </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> </td> + <td class="mdname" nowrap> <em>len</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </td> + <td> + +<p> +This method first serializes the size of the buffer and after the buffer itself, it enables the possibility to serial with a <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> on the other side. +<p> +Definition at line <a class="el" href="a06462.html#l00877">877</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00878 { +00879 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (len); +00880 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a> (buf, len); +00881 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2035_0" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialCheck </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const T & </td> + <td class="mdname1" valign="top" nowrap> <em>value</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </td><td>the value used to the check. </td></tr> + </table> +</dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a03794.html">EInvalidDataStream</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06462.html#l00520">520</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05646.html#l01132">value</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>. +<p> +Referenced by <a class="el" href="a06138.html#l00495">NLNET::cbPacsAnswer()</a>, <a class="el" href="a06138.html#l00085">NLNET::CPacsClient::initMessage()</a>, <a class="el" href="a05926.html#l00145">loadForm()</a>, <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06399.html#l00069">NL3D::CSkeletonWeight::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a05937.html#l00505">NL3D::CLodCharacterShape::serial()</a>, <a class="el" href="a05937.html#l00273">NL3D::CLodCharacterShapeBuild::serial()</a>, <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>, and <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>. +<p> +<div class="fragment"><pre>00521 { +00522 <span class="comment">// Open a node</span> +00523 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"CHECK"</span>); +00524 +00525 <span class="keywordflow">if</span> (<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00526 { +00527 T read; +00528 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (read); +00529 <span class="keywordflow">if</span> (read!=<a class="code" href="a04223.html#a658">value</a>) +00530 <span class="keywordflow">throw</span> EInvalidDataStream(*<span class="keyword">this</span>); +00531 } +00532 <span class="keywordflow">else</span> +00533 { +00534 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (const_cast<T&>(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::CMemStream::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<class T, class Allocator> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< T, Allocator > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> for vector<bool>. +<p> + +<p> +Definition at line <a class="el" href="a06462.html#l00324">324</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>. +<p> +Referenced by <a class="el" href="a06005.html#l00055">NL3D::H_AUTO_DECL()</a>, <a class="el" href="a06127.html#l00304">NLAISCRIPT::CLdbHeapMemberiOpCode::load()</a>, <a class="el" href="a06127.html#l00245">NLAISCRIPT::CLdbStackMemberiOpCode::load()</a>, <a class="el" href="a06127.html#l00188">NLAISCRIPT::CLdbMemberiOpCode::load()</a>, <a class="el" href="a06125.html#l00437">NLAISCRIPT::CCallMethodi::load()</a>, <a class="el" href="a06125.html#l00315">NLAISCRIPT::CCallStackMethodi::load()</a>, <a class="el" href="a06125.html#l00242">NLAISCRIPT::CCallHeapMethodi::load()</a>, <a class="el" href="a06123.html#l00439">NLAISCRIPT::CLibStackMemberMethod::load()</a>, <a class="el" href="a06123.html#l00370">NLAISCRIPT::CLibCallMethodi::load()</a>, <a class="el" href="a06123.html#l00184">NLAISCRIPT::CLibMemberMethodi::load()</a>, <a class="el" href="a06121.html#l01165">NLAISCRIPT::CAffMemberiOpCode::load()</a>, <a class="el" href="a06121.html#l01099">NLAISCRIPT::CAffHeapMemberiOpCode::load()</a>, <a class="el" href="a06112.html#l00217">NLAISCRIPT::CLoadHeapObject::load()</a>, <a class="el" href="a06112.html#l00166">NLAISCRIPT::CLoadStackObject::load()</a>, <a class="el" href="a06112.html#l00117">NLAISCRIPT::CLoadSelfObject::load()</a>, <a class="el" href="a05668.html#l00405">NLMISC::CEntityIdTranslator::load()</a>, <a class="el" href="a05471.html#l00618">NLSOUND::CBackgroundSoundManager::load()</a>, <a class="el" href="a05926.html#l00145">loadForm()</a>, <a class="el" href="a06127.html#l00296">NLAISCRIPT::CLdbHeapMemberiOpCode::save()</a>, <a class="el" href="a06127.html#l00239">NLAISCRIPT::CLdbStackMemberiOpCode::save()</a>, <a class="el" href="a06127.html#l00182">NLAISCRIPT::CLdbMemberiOpCode::save()</a>, <a class="el" href="a06125.html#l00427">NLAISCRIPT::CCallMethodi::save()</a>, <a class="el" href="a06125.html#l00305">NLAISCRIPT::CCallStackMethodi::save()</a>, <a class="el" href="a06125.html#l00230">NLAISCRIPT::CCallHeapMethodi::save()</a>, <a class="el" href="a06123.html#l00429">NLAISCRIPT::CLibStackMemberMethod::save()</a>, <a class="el" href="a06123.html#l00358">NLAISCRIPT::CLibCallMethodi::save()</a>, <a class="el" href="a06123.html#l00174">NLAISCRIPT::CLibMemberMethodi::save()</a>, <a class="el" href="a06121.html#l01159">NLAISCRIPT::CAffMemberiOpCode::save()</a>, <a class="el" href="a06121.html#l01091">NLAISCRIPT::CAffHeapMemberiOpCode::save()</a>, <a class="el" href="a06112.html#l00210">NLAISCRIPT::CLoadHeapObject::save()</a>, <a class="el" href="a06112.html#l00161">NLAISCRIPT::CLoadStackObject::save()</a>, <a class="el" href="a06112.html#l00112">NLAISCRIPT::CLoadSelfObject::save()</a>, <a class="el" href="a05668.html#l00442">NLMISC::CEntityIdTranslator::save()</a>, <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06762.html#l00105">NLLIGO::CZoneBankElement::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06550.html#l00099">NL3D::CTileVegetableDesc::serial()</a>, <a class="el" href="a06399.html#l00069">NL3D::CSkeletonWeight::serial()</a>, <a class="el" href="a06350.html#l00379">NL3D::CInstanceGroup::serial()</a>, <a class="el" href="a06350.html#l00065">NL3D::CInstanceGroup::CInstance::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06336.html#l00114">NLPACS::CRetrieverBank::serial()</a>, <a class="el" href="a06333.html#l00097">NLPACS::CRetrievableSurface::TLoop::serial()</a>, <a class="el" href="a06333.html#l00051">NLPACS::CRetrievableSurface::serial()</a>, <a class="el" href="a06197.html#l00219">NL3D::CPrimitiveBlock::serial()</a>, <a class="el" href="a06193.html#l00216">NL3D::CPortal::serial()</a>, <a class="el" href="a06186.html#l00164">NL3D::CPointLightNamedArray::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06105.html#l00337">NLMISC::CNoiseColorGradient::serial()</a>, <a class="el" href="a06012.html#l00314">NL3D::CMeshMRMSkinnedGeom::CRdrPass::serial()</a>, <a class="el" href="a06011.html#l01926">NL3D::CMeshMRMSkinnedGeom::CPackedVertexBuffer::serial()</a>, <a class="el" href="a06011.html#l00991">NL3D::CMeshMRMSkinnedGeom::serial()</a>, <a class="el" href="a05992.html#l00103">NL3D::CMeshBase::CLightMapInfoList::serial()</a>, <a class="el" href="a05992.html#l00071">NL3D::CMeshBase::CLightInfoMapListV7::serial()</a>, <a class="el" href="a05990.html#l00518">NL3D::CMeshGeom::CMatrixBlock::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05941.html#l00043">NL3D::CLodCharacterTexture::serial()</a>, <a class="el" href="a05939.html#l00121">NL3D::CLodCharacterShapeBank::serial()</a>, <a class="el" href="a05937.html#l00505">NL3D::CLodCharacterShape::serial()</a>, <a class="el" href="a05937.html#l00495">NL3D::CLodCharacterShape::CBoneInfluence::serial()</a>, <a class="el" href="a05937.html#l00481">NL3D::CLodCharacterShape::CAnim::serial()</a>, <a class="el" href="a05937.html#l00273">NL3D::CLodCharacterShapeBuild::serial()</a>, <a class="el" href="a05930.html#l00129">NLPACS::CLocalRetriever::CTopology::serial()</a>, <a class="el" href="a05930.html#l00106">NLPACS::CLocalRetriever::CTip::serial()</a>, <a class="el" href="a05929.html#l00895">NLPACS::CLocalRetriever::serial()</a>, <a class="el" href="a05806.html#l00098">NL3D::CIGSurfaceLight::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05790.html#l00313">NL3D::CHLSColorTexture::serial()</a>, <a class="el" href="a05790.html#l00057">NL3D::CHLSColorTexture::CMask::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05694.html#l00170">NLPACS::CFaceGrid::serial()</a>, <a class="el" href="a05692.html#l00098">NLPACS::CExteriorMesh::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05579.html#l00149">NLPACS::CCollisionMeshBuild::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05539.html#l00274">NLPACS::CChain::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05539.html#l00064">NLPACS::COrderedChain3f::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05468.html#l00115">CAutomataDesc::CState::serial()</a>, <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>, <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>, <a class="el" href="a05437.html#l00080">NL3D::CMaterialBase::serial()</a>, and <a class="el" href="a05584.html#l00374">NLMISC::ICommand::serialCommands()</a>. +<p> +<div class="fragment"><pre>00324 {<a class="code" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a>(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea45" doxytag="NLMISC::CMemStream::serialCont" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< bool > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_0">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama42">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama32">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00442">442</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00442 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea46" doxytag="NLMISC::CMemStream::serialCont" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a04558.html#a6">sint8</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<sint8>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_1">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama43">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama33">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00440">440</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00440 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea47" doxytag="NLMISC::CMemStream::serialCont" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a04558.html#a7">uint8</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<uint8>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_2">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama44">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama34">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00438">438</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00438 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea48" doxytag="NLMISC::CMemStream::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<class K, class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::multimap< K, T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_3">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama45">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama35">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00435">435</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00435 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea49" doxytag="NLMISC::CMemStream::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<class K, class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::map< K, T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_4">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama46">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama36">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00433">433</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00433 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea50" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::multiset< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_5">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama47">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama37">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00431">431</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00431 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea51" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::set< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_6">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama48">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama38">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00429">429</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00429 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea52" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::deque< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_7">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama49">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama39">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00427">427</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00427 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea53" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::list< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Specialisation of <a class="el" href="a02271.html#NLNET_1_1CMessagea54">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_8">NLMISC::IStream</a>. +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama50">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama40">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00425">425</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +<div class="fragment"><pre>00425 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagea54" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CMemStream::serialCont </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02269.html#NLMISC_1_1CBitMemStreama51">NLMISC::CBitMemStream</a>, and <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">NLMISC::CStringStream</a>. +<p> +Definition at line <a class="el" href="a05979.html#l00423">423</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +Referenced by <a class="el" href="a05391.html#l00100">NLNET::cbInfo()</a>, <a class="el" href="a06138.html#l00495">NLNET::cbPacsAnswer()</a>, <a class="el" href="a06089.html#l00119">NLNET::cbRegisterBroadcast()</a>, <a class="el" href="a05391.html#l00310">NLNET::cleanRequest()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>, and <a class="el" href="a06089.html#l00373">NLNET::CNamingClient::resendRegisteration()</a>. +<p> +<div class="fragment"><pre>00423 {IStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2035_1" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::multiset< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::set< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::deque< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::list< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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::CMemStream::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<class T, class Allocator> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPolyPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< T, Allocator > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::multiset< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::set< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::deque< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::list< T > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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<class T, class Allocator> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialContPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< T, Allocator > & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialEnum </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </td> + <td class="mdname1" valign="top" nowrap> <em>em</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Template enum serialisation. Serialized as a sint32. +<p> + +<p> +Definition at line <a class="el" href="a06462.html#l00261">261</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>. +<p> +Referenced by <a class="el" href="a06580.html#l00279">NLNET::cbTCReceiveOtherSideClass()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06686.html#l00375">NL3D::CVegetable::serial()</a>, <a class="el" href="a06337.html#l00736">NLPACS::CRetrieverInstance::serial()</a>, <a class="el" href="a06179.html#l00230">NL3D::CPointLight::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05929.html#l00895">NLPACS::CLocalRetriever::serial()</a>, <a class="el" href="a05585.html#l00164">NLMISC::CSerialCommand::serial()</a>, and <a class="el" href="a05447.html#l00292">NL3D::CAnimationPlaylist::serial()</a>. +<p> +<div class="fragment"><pre>00262 { +00263 <a class="code" href="a04558.html#a10">sint32</a> i; +00264 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00265 { +00266 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(i); +00267 em = (T)i; +00268 } +00269 <span class="keywordflow">else</span> +00270 { +00271 i = em; +00272 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(i); +00273 } +00274 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1974_0" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_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::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02271.html">CMemStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>b</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">buffer()</a>, <a class="el" href="a05979.html#l00306">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">length()</a>, <a class="el" href="a05979.html#l00270">resetBufPos()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00437 { +00438 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00439 +00440 <span class="comment">// Serialize length</span> +00441 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00442 { +00443 <span class="comment">// fill b with data from this</span> +00444 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (len); +00445 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a> (b.bufferToFill (len), <a class="code" href="a04223.html#a571">len</a>); +00446 b.resetBufPos (); +00447 } +00448 <span class="keywordflow">else</span> +00449 { +00450 <span class="comment">// fill this with data from b</span> +00451 <a class="code" href="a04223.html#a571">len</a> = b.length(); +00452 +00453 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( len ); +00454 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*) b.buffer (), <a class="code" href="a04223.html#a571">len</a> ); +00455 } +00456 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2035_6" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialPolyPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T *& </td> + <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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<T*>(p);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2035_7" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialPtr </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T *& </td> + <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </td><td>a pointer on a base type or an object. </td></tr> + </table> +</dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_0">resetPtrTable()</a></dd></dl> + +<p> +Definition at line <a class="el" href="a06462.html#l00390">390</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00890">NLMISC::IStream::_IdMap</a>, <a class="el" href="a06462.html#l00889">NLMISC::IStream::_NextSerialPtrId</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00891">NLMISC::IStream::ItIdMap</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00102">uint64</a>, <a class="el" href="a06462.html#l00892">NLMISC::IStream::ValueIdMap</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, <a class="el" href="a06462.html#l00725">NLMISC::IStream::xmlPushBegin()</a>, <a class="el" href="a06462.html#l00742">NLMISC::IStream::xmlPushEnd()</a>, and <a class="el" href="a06462.html#l00777">NLMISC::IStream::xmlSetAttrib()</a>. +<p> +Referenced by <a class="el" href="a06152.html#l00136">NL3D::CParticleSystemShape::buildFromPS()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, and <a class="el" href="a06462.html#l01056">NLMISC::IStream::serialSTLContLenPtr()</a>. +<p> +<div class="fragment"><pre>00391 { +00392 <a class="code" href="a04558.html#a13">uint64</a> node; +00393 +00394 <span class="comment">// Open the node header</span> +00395 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin</a> (<span class="stringliteral">"PTR"</span>); +00396 +00397 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"id"</span>); +00398 +00399 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00400 { +00401 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node); +00402 +00403 <span class="comment">// Close the header</span> +00404 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> (); +00405 +00406 <span class="keywordflow">if</span>(node==0) +00407 ptr=NULL; +00408 <span class="keywordflow">else</span> +00409 { +00410 ItIdMap it; +00411 it= _IdMap.find(node); +00412 +00413 <span class="comment">// Test if object already created/read.</span> +00414 <span class="keywordflow">if</span>( it==_IdMap.end() ) +00415 { +00416 <span class="comment">// Construct object. </span> +00417 ptr= <span class="keyword">new</span> T; +00418 <span class="keywordflow">if</span>(ptr==NULL) +00419 <span class="keywordflow">throw</span> EStream(); +00420 +00421 <span class="comment">// Insert the node.</span> +00422 _IdMap.insert( <a class="code" href="a02270.html#NLMISC_1_1IStreamy1">ValueIdMap</a>(node, ptr) ); +00423 +00424 <span class="comment">// Read the object!</span> +00425 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(*ptr); +00426 } +00427 <span class="keywordflow">else</span> +00428 ptr= static_cast<T*>(it->second); +00429 } +00430 } +00431 <span class="keywordflow">else</span> +00432 { +00433 <span class="keywordflow">if</span>(ptr==NULL) +00434 { +00435 node= 0; +00436 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node); +00437 +00438 <span class="comment">// Close the header</span> +00439 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> (); +00440 } +00441 <span class="keywordflow">else</span> +00442 { +00443 ItIdMap it; +00444 it = _IdMap.find((<a class="code" href="a04558.html#a13">uint64</a>)(<a class="code" href="a04558.html#a15">uint</a>)ptr); +00445 +00446 <span class="comment">// Test if object has been already written</span> +00447 <span class="keywordflow">if</span>( it==_IdMap.end() ) +00448 { +00449 <span class="comment">// Not yet written</span> +00450 +00451 <span class="comment">// Get the next available ID</span> +00452 node = _NextSerialPtrId++; +00453 +00454 <span class="comment">// Serial the id</span> +00455 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node); +00456 +00457 <span class="comment">// Insert the pointer in the map with the id</span> +00458 _IdMap.insert( <a class="code" href="a02270.html#NLMISC_1_1IStreamy1">ValueIdMap</a>((<a class="code" href="a04558.html#a13">uint64</a>)(<a class="code" href="a04558.html#a15">uint</a>)ptr, (<span class="keywordtype">void</span>*)(uint)node) ); +00459 +00460 <span class="comment">// Close the header</span> +00461 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> (); +00462 +00463 <span class="comment">// Write the object</span> +00464 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(*ptr); +00465 } +00466 <span class="keywordflow">else</span> +00467 { +00468 <span class="comment">// Write only the object id</span> +00469 node = (<a class="code" href="a04558.html#a13">uint64</a>)(<a class="code" href="a04558.html#a15">uint</a>)(it->second); +00470 +00471 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(node); +00472 +00473 <span class="comment">// Close the header</span> +00474 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> (); +00475 } +00476 } +00477 } +00478 +00479 <span class="comment">// Close the node</span> +00480 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +00481 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLNET_1_1CMessagez1974_1" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> * </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> </td> + <td class="mdname" nowrap> <em>len</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::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">length()</a>, <a class="el" href="a05979.html#l00502">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< uint8, false >::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 && <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> > <a class="code" href="a02271.html#NLMISC_1_1CStringStreama15">length</a>() ) && (<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<<a class="code" href="a04223.html#a571">len</a>) && (*_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::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> * </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> </td> + <td class="mdname" nowrap> <em>len</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_BufPos</a>, <a class="el" href="a05979.html#l00519">_StringMode</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::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< uint8, false >::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< uint8, false >::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 && (!<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>) > 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( &(*_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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::serialVector </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </td> + <td class="mdname1" valign="top" nowrap> <em>cont</em> </td> + <td class="md" valign="top"> ) </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> + + </td> + <td> + +<p> +special version for serializing a vector. Support up to sint32 length containers. +<p> +Definition at line <a class="el" href="a06462.html#l00992">992</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a05587.html#l00141">NLMISC::contReset()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>, <a class="el" href="a06462.html#l00725">NLMISC::IStream::xmlPushBegin()</a>, <a class="el" href="a06462.html#l00742">NLMISC::IStream::xmlPushEnd()</a>, and <a class="el" href="a06462.html#l00777">NLMISC::IStream::xmlSetAttrib()</a>. +<p> +Referenced by <a class="el" href="a06472.html#l00124">NLMISC::CStringStream::serialCont()</a>, <a class="el" href="a06462.html#l00324">NLMISC::IStream::serialCont()</a>, and <a class="el" href="a05483.html#l00634">NLMISC::CBitMemStream::serialCont()</a>. +<p> +<div class="fragment"><pre>00993 { +00994 <span class="keyword">typedef</span> <span class="keyword">typename</span> T::value_type __value_type; +00995 <span class="keyword">typedef</span> <span class="keyword">typename</span> T::iterator __iterator; +00996 +00997 <span class="comment">// Open a node header</span> +00998 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_3">xmlPushBegin</a> (<span class="stringliteral">"VECTOR"</span>); +00999 +01000 <span class="comment">// Attrib size</span> +01001 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_5">xmlSetAttrib</a> (<span class="stringliteral">"size"</span>); +01002 +01003 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +01004 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +01005 { +01006 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len); +01007 +01008 <span class="comment">// Open a node header</span> +01009 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> (); +01010 +01011 <span class="comment">// special version for vector: adjut good size.</span> +01012 <a class="code" href="a05378.html#a381">contReset</a>(cont); +01013 cont.resize (len); +01014 +01015 <span class="comment">// Read the vector</span> +01016 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i<<a class="code" href="a04223.html#a571">len</a>;i++) +01017 { +01018 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"ELM"</span>); +01019 +01020 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(cont[i]); +01021 +01022 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +01023 } +01024 } +01025 <span class="keywordflow">else</span> +01026 { +01027 <a class="code" href="a04223.html#a571">len</a>= cont.size(); +01028 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(len); +01029 +01030 <span class="comment">// Close the node header</span> +01031 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_4">xmlPushEnd</a> (); +01032 +01033 <span class="comment">// Write the vector</span> +01034 __iterator it= cont.begin(); +01035 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a14">sint</a> i=0;i<<a class="code" href="a04223.html#a571">len</a>;i++, it++) +01036 { +01037 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"ELM"</span>); +01038 +01039 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(const_cast<__value_type&>(*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::CMemStream::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>currentVersion</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> </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< T >::serial()</a>, <a class="el" href="a06197.html#l00219">NL3D::CPrimitiveBlock::serial()</a>, <a class="el" href="a06193.html#l00216">NL3D::CPortal::serial()</a>, <a class="el" href="a06187.html#l00100">NL3D::CPointLightNamedArray::CPointLightGroup::serial()</a>, <a class="el" href="a06186.html#l00164">NL3D::CPointLightNamedArray::serial()</a>, <a class="el" href="a06184.html#l00073">NL3D::CPointLightNamed::serial()</a>, <a class="el" href="a06179.html#l00230">NL3D::CPointLight::serial()</a>, <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>, <a class="el" href="a06105.html#l00337">NLMISC::CNoiseColorGradient::serial()</a>, <a class="el" href="a06105.html#l00294">NLMISC::CNoiseValue::serial()</a>, <a class="el" href="a06012.html#l00314">NL3D::CMeshMRMSkinnedGeom::CRdrPass::serial()</a>, <a class="el" href="a06012.html#l00262">NL3D::CMeshMRMSkinnedGeom::CShadowVertex::serial()</a>, <a class="el" href="a06011.html#l01937">NL3D::CMeshMRMSkinnedGeom::CPackedVertexBuffer::CPackedVertex::serial()</a>, <a class="el" href="a06011.html#l01926">NL3D::CMeshMRMSkinnedGeom::CPackedVertexBuffer::serial()</a>, <a class="el" href="a06011.html#l01482">NL3D::CMeshMRMSkinned::serial()</a>, <a class="el" href="a06011.html#l00991">NL3D::CMeshMRMSkinnedGeom::serial()</a>, <a class="el" href="a06006.html#l00463">NL3D::CMeshMRMGeom::CLodInfo::serial()</a>, <a class="el" href="a06006.html#l00350">NL3D::CMeshMRMGeom::CRdrPass::serial()</a>, <a class="el" href="a06006.html#l00296">NL3D::CMeshMRMGeom::CShadowVertex::serial()</a>, <a class="el" href="a05992.html#l00103">NL3D::CMeshBase::CLightMapInfoList::serial()</a>, <a class="el" href="a05992.html#l00092">NL3D::CMeshBase::CLightMapInfoList::CMatStage::serial()</a>, <a class="el" href="a05990.html#l00518">NL3D::CMeshGeom::CMatrixBlock::serial()</a>, <a class="el" href="a05990.html#l00497">NL3D::CMeshGeom::CRdrPass::serial()</a>, <a class="el" href="a05972.html#l01500">NLMISC::CMatrix::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05941.html#l00043">NL3D::CLodCharacterTexture::serial()</a>, <a class="el" href="a05939.html#l00121">NL3D::CLodCharacterShapeBank::serial()</a>, <a class="el" href="a05937.html#l00505">NL3D::CLodCharacterShape::serial()</a>, <a class="el" href="a05937.html#l00495">NL3D::CLodCharacterShape::CBoneInfluence::serial()</a>, <a class="el" href="a05937.html#l00481">NL3D::CLodCharacterShape::CAnim::serial()</a>, <a class="el" href="a05937.html#l00273">NL3D::CLodCharacterShapeBuild::serial()</a>, <a class="el" href="a05929.html#l00895">NLPACS::CLocalRetriever::serial()</a>, <a class="el" href="a05807.html#l00056">NL3D::CIGSurfaceLight::CRetrieverLightGrid::serial()</a>, <a class="el" href="a05806.html#l00098">NL3D::CIGSurfaceLight::serial()</a>, <a class="el" href="a05792.html#l00154">NL3D::CHLSTextureBank::CTextureInstance::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05790.html#l00313">NL3D::CHLSColorTexture::serial()</a>, <a class="el" href="a05790.html#l00057">NL3D::CHLSColorTexture::CMask::serial()</a>, <a class="el" href="a05790.html#l00049">NL3D::CHLSColorDelta::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05694.html#l00170">NLPACS::CFaceGrid::serial()</a>, <a class="el" href="a05692.html#l00098">NLPACS::CExteriorMesh::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05541.html#l00473">NLPACS::CChainQuad::serial()</a>, <a class="el" href="a05539.html#l00274">NLPACS::CChain::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05539.html#l00064">NLPACS::COrderedChain3f::serial()</a>, <a class="el" href="a05491.html#l00056">NL3D::CBoneBase::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05449.html#l00134">NL3D::CAnimationSet::serial()</a>, <a class="el" href="a05447.html#l00292">NL3D::CAnimationPlaylist::serial()</a>, <a class="el" href="a05443.html#l00080">NL3D::CAnimation::serial()</a>, <a class="el" href="a05438.html#l00103">NL3D::CMaterialBase::CTexAnimTracks::serial()</a>, <a class="el" href="a05437.html#l00080">NL3D::CMaterialBase::serial()</a>, <a class="el" href="a05384.html#l00206">NLMISC::CAABBox::serial()</a>, <a class="el" href="a05968.html#l00456">NL3D::CMaterial::CLightMap::serial2()</a>, <a class="el" href="a06560.html#l00090">NL3D::CTrackSampledCommon::serialCommon()</a>, <a class="el" href="a06710.html#l00883">NL3D::CVertexBuffer::serialHeader()</a>, <a class="el" href="a06005.html#l01918">NL3D::CMeshMRMGeom::serialLodVertexData()</a>, and <a class="el" href="a06710.html#l01008">NL3D::CVertexBuffer::serialSubset()</a>. +<p> +<div class="fragment"><pre>00267 { +00268 <a class="code" href="a04558.html#a7">uint8</a> b=0; +00269 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a>=0; +00270 <a class="code" href="a04558.html#a15">uint</a> streamVersion; +00271 +00272 <span class="comment">// Open the node</span> +00273 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (<span class="stringliteral">"VERSION"</span>); +00274 +00275 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00276 { +00277 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); +00278 <span class="keywordflow">if</span>(b==0xFF) +00279 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(v); +00280 <span class="keywordflow">else</span> +00281 <a class="code" href="a04223.html#a576">v</a>=b; +00282 streamVersion=<a class="code" href="a04223.html#a576">v</a>; +00283 +00284 <span class="comment">// Exception test.</span> +00285 <span class="keywordflow">if</span>(_ThrowOnOlder && streamVersion < currentVersion) +00286 <span class="keywordflow">throw</span> EOlderStream(*<span class="keyword">this</span>); +00287 <span class="keywordflow">if</span>(_ThrowOnNewer && streamVersion > 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>>=0xFF) +00294 { +00295 b=0xFF; +00296 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); +00297 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(v); +00298 } +00299 <span class="keywordflow">else</span> +00300 { +00301 b= (<a class="code" href="a04558.html#a7">uint8</a>)<a class="code" href="a04223.html#a576">v</a>; +00302 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(b); +00303 } +00304 } +00305 +00306 <span class="comment">// Close the node</span> +00307 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +00308 +00309 <span class="keywordflow">return</span> streamVersion; +00310 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2040_1" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>inputStream</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Change, in live, the state of the inputStream. This could be usefull in certain case. The deriver which would want to do such a thing must call this method, and implement his own behavior. In certain case, it should call <a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_0">resetPtrTable()</a> if he want to reset the stream ptr info (maybe always)... +<p> +Definition at line <a class="el" href="a06461.html#l00413">413</a> of file <a class="el" href="a06461.html">stream.cpp</a>. +<p> +References <a class="el" href="a06462.html#l00884">NLMISC::IStream::_InputStream</a>. +<p> +Referenced by <a class="el" href="a05482.html#l00737">NLMISC::CBitMemStream::getSerialItem()</a>, and <a class="el" href="a05979.html#l00331">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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>stringmode</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">bool </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 </td> + <td class="mdname" nowrap> <em>throwOnNewer</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>on</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [protected, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< uint8, false >::size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00511">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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">_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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>comment</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>comment</em> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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::CMemStream::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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </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 & </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 & </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 & </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 * </td> + <td class="mdname" nowrap> <em>nodeName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06462.html#l00683">683</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>. +<p> +<div class="fragment"><pre>00684 { +00685 <span class="comment">// Open the node</span> +00686 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName); +00687 +00688 <span class="comment">// Serial the values</span> +00689 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0, value1, value2, value3); +00690 +00691 <span class="comment">// Close the node</span> +00692 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +00693 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2037_1" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </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 & </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 & </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 * </td> + <td class="mdname" nowrap> <em>nodeName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06462.html#l00671">671</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>. +<p> +<div class="fragment"><pre>00672 { +00673 <span class="comment">// Open the node</span> +00674 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName); +00675 +00676 <span class="comment">// Serial the values</span> +00677 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0, value1, value2); +00678 +00679 <span class="comment">// Close the node</span> +00680 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +00681 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2037_2" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </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 & </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 * </td> + <td class="mdname" nowrap> <em>nodeName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06462.html#l00659">659</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>. +<p> +<div class="fragment"><pre>00660 { +00661 <span class="comment">// Open the node</span> +00662 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName); +00663 +00664 <span class="comment">// Serial the values</span> +00665 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0, value1); +00666 +00667 <span class="comment">// Close the node</span> +00668 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +00669 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2037_3" doxytag="NLMISC::CMemStream::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<class T> </td> + </tr> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::IStream::xmlSerial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">T & </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 * </td> + <td class="mdname" nowrap> <em>nodeName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </td> + <td> + +<p> +<a class="el" href="a02270.html#NLMISC_1_1IStreamz2037_3">xmlSerial()</a> serial a values into a node. +<p> +Definition at line <a class="el" href="a06462.html#l00647">647</a> of file <a class="el" href="a06462.html">stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00759">NLMISC::IStream::xmlPop()</a>, and <a class="el" href="a06462.html#l00701">NLMISC::IStream::xmlPush()</a>. +<p> +Referenced by <a class="el" href="a06772.html#l00159">NLLIGO::CZoneRegion::serial()</a>, <a class="el" href="a06772.html#l00101">NLLIGO::CZoneRegion::SZoneUnit2::serial()</a>, <a class="el" href="a06772.html#l00057">NLLIGO::CZoneRegion::SZoneUnit::serial()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06758.html#l00421">NL3D::CPatchInfo::CBindInfo::serial()</a>, <a class="el" href="a06758.html#l00410">NL3D::CZone::CPatchConnect::serial()</a>, <a class="el" href="a06758.html#l00402">NL3D::CBorderVertex::serial()</a>, <a class="el" href="a06540.html#l00082">NL3D::CTileElement::serial()</a>, <a class="el" href="a06539.html#l00080">NL3D::CTileColorOldPatchVersion6::serial()</a>, <a class="el" href="a06539.html#l00056">NL3D::CTileColor::serial()</a>, and <a class="el" href="a06155.html#l01576">NL3D::CPatch::serial()</a>. +<p> +<div class="fragment"><pre>00648 { +00649 <span class="comment">// Open the node</span> +00650 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2038_0">xmlPush</a> (nodeName); +00651 +00652 <span class="comment">// Serial the value</span> +00653 <a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value0); +00654 +00655 <span class="comment">// Close the node</span> +00656 <a class="code" href="a02270.html#NLMISC_1_1IStreamz2039_2">xmlPop</a> (); +00657 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2039_5" doxytag="NLMISC::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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< sint8, false >::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::CMemStream::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">( </td> + <td class="md" nowrap valign="top">const char * </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </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> + + </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::CMemStream::_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><<a class="el" href="a04558.html#a7">uint8</a>, false> <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp0">NLMISC::CMemStream::_Buffer</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">operator=()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamp1" doxytag="NLMISC::CMemStream::_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]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">bufferToFill()</a>, <a class="el" href="a05979.html#l00201">clear()</a>, <a class="el" href="a05979.html#l00086">CMemStream()</a>, <a class="el" href="a05979.html#l00404">fastRead()</a>, <a class="el" href="a05979.html#l00371">fastSerial()</a>, <a class="el" href="a05979.html#l00395">fastWrite()</a>, <a class="el" href="a05979.html#l00277">fill()</a>, <a class="el" href="a05979.html#l00153">getPos()</a>, <a class="el" href="a05979.html#l00358">increaseBufferIfNecessary()</a>, <a class="el" href="a05979.html#l00331">invert()</a>, <a class="el" href="a05979.html#l00502">lengthS()</a>, <a class="el" href="a05979.html#l00102">operator=()</a>, <a class="el" href="a05979.html#l00190">poke()</a>, <a class="el" href="a05979.html#l00168">reserve()</a>, <a class="el" href="a05979.html#l00270">resetBufPos()</a>, <a class="el" href="a05978.html#l00235">resize()</a>, <a class="el" href="a05978.html#l00073">serialBuffer()</a>, <a class="el" href="a05978.html#l00307">serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00338">serialSeparatedBufferOut()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamp2" doxytag="NLMISC::CMemStream::_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]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">clear()</a>, <a class="el" href="a05979.html#l00086">CMemStream()</a>, and <a class="el" href="a05979.html#l00102">operator=()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamp3" doxytag="NLMISC::CMemStream::_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]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">CMemStream()</a>, <a class="el" href="a05979.html#l00102">operator=()</a>, <a class="el" href="a05979.html#l00561">serial()</a>, <a class="el" href="a05979.html#l00929">serialHex()</a>, <a class="el" href="a05978.html#l00307">serialSeparatedBufferIn()</a>, <a class="el" href="a05978.html#l00338">serialSeparatedBufferOut()</a>, <a class="el" href="a05979.html#l00113">setStringMode()</a>, and <a class="el" href="a05979.html#l00116">stringMode()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05979.html">mem_stream.h</a><li><a class="el" href="a05978.html">mem_stream.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:23:07 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> |