diff options
Diffstat (limited to 'docs/doxygen/nel/a03452.html')
-rw-r--r-- | docs/doxygen/nel/a03452.html | 7097 |
1 files changed, 7097 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03452.html b/docs/doxygen/nel/a03452.html new file mode 100644 index 00000000..51436eee --- /dev/null +++ b/docs/doxygen/nel/a03452.html @@ -0,0 +1,7097 @@ +<!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::CStringStream 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::CStringStream Class Reference</h1><code>#include <<a class="el" href="a06472.html">string_stream.h</a>></code> +<p> +<p>Inheritance diagram for NLMISC::CStringStream: +<p><center><img src="a03452.png" usemap="#NLMISC::CStringStream_map" border="0" alt=""></center> +<map name="NLMISC::CStringStream_map"> +<area href="a02271.html" alt="NLMISC::CMemStream" shape="rect" coords="0,56,146,80"> +<area href="a02270.html" alt="NLMISC::IStream" shape="rect" coords="0,0,146,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Memory stream that is serialized from/to plain text (human-readable). not any comparaison with the stl class std::stringstream <dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a06472.html#l00043">43</a> of file <a class="el" href="a06472.html">string_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="a03452.html#NLMISC_1_1CStringStreama3">CStringStream</a> (const <a class="el" href="a03452.html">CStringStream</a> &other)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#NLMISC_1_1CStringStreama3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreama4">CStringStream</a> (bool inputStream=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_1CStringStreama4"></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="a03452.html">CStringStream</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreama16">operator=</a> (const <a class="el" href="a03452.html">CStringStream</a> &other)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator. <a href="#NLMISC_1_1CStringStreama16"></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="a03452.html#NLMISC_1_1CStringStreama23">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="a03452.html#NLMISC_1_1CStringStreama24">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="a03452.html#NLMISC_1_1CStringStreama25">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="a03452.html#NLMISC_1_1CStringStreama26">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="a03452.html#NLMISC_1_1CStringStreama27">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="a03452.html#NLMISC_1_1CStringStreama28">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="#NLMISC_1_1CStringStreama28"></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="a03452.html#NLMISC_1_1CStringStreama29">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="#NLMISC_1_1CStringStreama29"></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="a03452.html#NLMISC_1_1CStringStreama32">serialCont</a> (std::vector< bool > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama32"></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="a03452.html#NLMISC_1_1CStringStreama33">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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<sint8>. <a href="#NLMISC_1_1CStringStreama33"></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="a03452.html#NLMISC_1_1CStringStreama34">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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<uint8>. <a href="#NLMISC_1_1CStringStreama34"></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="a03452.html#NLMISC_1_1CStringStreama35">serialCont</a> (std::multimap< K, T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama35"></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="a03452.html#NLMISC_1_1CStringStreama36">serialCont</a> (std::map< K, T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama36"></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="a03452.html#NLMISC_1_1CStringStreama37">serialCont</a> (std::multiset< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama37"></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="a03452.html#NLMISC_1_1CStringStreama38">serialCont</a> (std::set< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama38"></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="a03452.html#NLMISC_1_1CStringStreama39">serialCont</a> (std::deque< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama39"></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="a03452.html#NLMISC_1_1CStringStreama40">serialCont</a> (std::list< T > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1CStringStreama40"></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="a03452.html#NLMISC_1_1CStringStreama41">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="a03452.html#NLMISC_1_1CStringStreama43">serialHex</a> (<a class="el" href="a04558.html#a11">uint32</a> &b)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation in hexadecimal. <a href="#NLMISC_1_1CStringStreama43"></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><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreama45">serialSeparatedBufferIn</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Input: read len bytes at most from the stream until the next separator, and return the number of bytes read. The separator is then skipped. <a href="#NLMISC_1_1CStringStreama45"></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="a03452.html#NLMISC_1_1CStringStreama46">serialSeparatedBufferOut</a> (<a class="el" href="a04558.html#a7">uint8</a> *buf, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a571">len</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Output: writes len bytes from buf into the stream. <a href="#NLMISC_1_1CStringStreama46"></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"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<>, map<>, multimap<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialContPtr() serialContPolyPtr() </dd></dl> +<br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1IStreamz2033_9"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<>, map<>, multimap<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialContPtr() serialContPolyPtr() </dd></dl> +<br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1IStreamz2033_9"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<>, map<>, multimap<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialContPtr() serialContPolyPtr() </dd></dl> +<br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1IStreamz2033_9"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">Base type serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those method are a specialisation of template method "void serial(T&)". <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_0">serial</a> (<a class="el" href="a03924.html">ucstring</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_1">serial</a> (std::string &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_2">serial</a> (char &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_3">serial</a> (bool &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_4">serial</a> (double &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_5">serial</a> (float &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_6">serial</a> (<a class="el" href="a04558.html#a12">sint64</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_7">serial</a> (<a class="el" href="a04558.html#a13">uint64</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_8">serial</a> (<a class="el" href="a04558.html#a10">sint32</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_9">serial</a> (<a class="el" href="a04558.html#a11">uint32</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_10">serial</a> (<a class="el" href="a04558.html#a8">sint16</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_11">serial</a> (<a class="el" href="a04558.html#a9">uint16</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_12">serial</a> (<a class="el" href="a04558.html#a6">sint8</a> &b)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a03452.html#NLMISC_1_1CStringStreamz2043_13">serial</a> (<a class="el" href="a04558.html#a7">uint8</a> &b)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<>, map<>, multimap<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialContPtr() serialContPolyPtr() </dd></dl> +<br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specialisation of <a class="el" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont()</a> for vector<bool>. <a href="#NLMISC_1_1IStreamz2033_9"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">BitField serialisation.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Unlike other serial method, The reading bitfield is returned!! If !this->isReading(), bf is returned.<p> +MUST use it simply like this: a= serialBitFieldX(a); // where X== 8, 16 or 32.<p> +NB: Performance warning: the data is stored as an uint8, uint16 or uint32, according to the method you use. <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2030_0">serialBitField16</a> (<a class="el" href="a04558.html#a9">uint16</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=16 bits. <a href="#NLMISC_1_1IStreamz2030_0"></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="a02270.html#NLMISC_1_1IStreamz2030_1">serialBitField32</a> (<a class="el" href="a04558.html#a11">uint32</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=32 bits. <a href="#NLMISC_1_1IStreamz2030_1"></a><br><br></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="a02270.html#NLMISC_1_1IStreamz2030_2">serialBitField8</a> (<a class="el" href="a04558.html#a7">uint8</a> bf)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialisation of bitfield <=8 bits. <a href="#NLMISC_1_1IStreamz2030_2"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a IStreamable object.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPtr() </dd></dl> +<br><br></div></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_1IStreamz2035_0">serialCheck</a> (const 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="a02270.html#NLMISC_1_1IStreamz2035_1">serialContPolyPtr</a> (std::multiset< 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_1IStreamz2035_2">serialContPolyPtr</a> (std::set< 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_1IStreamz2035_3">serialContPolyPtr</a> (std::deque< 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_1IStreamz2035_4">serialContPolyPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_5">serialContPolyPtr</a> (std::vector< T, Allocator > &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_1IStreamz2035_6">serialPolyPtr</a> (T *&ptr)</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_1IStreamz2035_7">serialPtr</a> (T *&ptr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (<a class="el" href="a04558.html#a15">uint</a> currentVersion)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">standard STL containers serialisation. Elements must be pointers on a base type (uint...) or on a</div></td></tr> +<tr><td colspan="2"><div class="groupText">object providing "void serial(IStream&)" method. Known Supported containers: vector<>, list<>, deque<>, set<>, multiset<> Support up to sint32 length containers. <dl compact><dt><b>See also:</b></dt><dd>serialCont() serialContPolyPtr() </dd></dl> +<br><br></div></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_1IStreamz2034_0">serialContPtr</a> (std::multiset< 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_1IStreamz2034_1">serialContPtr</a> (std::set< 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_1IStreamz2034_2">serialContPtr</a> (std::deque< 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_1IStreamz2034_3">serialContPtr</a> (std::list< T > &cont)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>template<class T, class Allocator> void </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2034_4">serialContPtr</a> (std::vector< T, Allocator > &cont)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPushBegin() open recurcively a new node and open its header. You must call xmlPushEnd() to close the header and xmlPop() to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node header, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2039_0">xmlBreakLine</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_1IStreamz2039_1">xmlComment</a> (const char *comment)</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_1IStreamz2039_2">xmlPop</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_1IStreamz2039_3">xmlPushBegin</a> (const char *name)</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_1IStreamz2039_4">xmlPushEnd</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_1IStreamz2039_5">xmlSetAttrib</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">is the name of the node to open</div></td></tr> +<tr><td colspan="2"><div class="groupText">xmlPush() open recurcively a new node. You must call xmlPop to close this node.<p> +<dl compact><dt><b>Returns:</b></dt><dd>true if you can open the node, false if the stream is between a xmlPushBegin() and a xmlPushEnd() call. </dd></dl> +<br><br></div></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_1IStreamz2038_0">xmlPush</a> (const char *name)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">XML user interface</div></td></tr> +<tr><td colspan="2"><div class="groupText">Those functions are used to add information in your stream to structure it like a XML document. Exemple of a serial sequence : <pre class="fragment"><div> <span class="comment">// Start the opening of a new node named Identity</span> + stream.xmlPush (<span class="stringliteral">"Identity"</span>) + + <span class="comment">// Serial some infos</span> + stream.serial (name); + stream.serial (pseudo); + + <span class="comment">// Open a new node header named Address</span> + stream.xmlPushBegin (<span class="stringliteral">"Address"</span>); + + <span class="comment">// Set a property name</span> + stream.xmlSetAttrib (<span class="stringliteral">"Street"</span>) + + <span class="comment">// Serial the property</span> + stream.serial (<span class="stringliteral">"Street"</span>); + + <span class="comment">// Close the new node header</span> + stream.xmlPushEnd (); + + <span class="comment">// Serial in this node</span> + stream.serial (cityName); + + <span class="comment">// Close the address node</span> + stream.xmlPop (); + + <span class="comment">// Add a comment</span> + stream.xmlComment (<span class="stringliteral">"Hello"</span>); + + <span class="comment">// Close the identity node</span> + stream.xmlPop (); +</div></pre><p> +The result will be an xml document structured like this:<p> +<pre class="fragment"><div> <Identity> + Corvazier Hulud + <Address Street=<span class="stringliteral">"rue du Faubourg Saint Antoine"</span>> + Paris + <\Address> + <!-- Hello --> + <\Identity> +</div></pre><p> +Node header serials are the serialisations done between xmlPushBegin() and xmlPushEnd() call. There is some restrictions on them: Node header serials are only available for basic types (numbers and strings). xmlSetAttrib() must be called before node header serial.<p> +Note that XML documents only have ONE root node, so all serialisation must be done between a xmlPush() and a xmlPop() call.<p> +When a xml input stream will try to open a node, it will scan all currrent child nodes to find the good one. So input xml stream can skip unknown node. <br><br></div></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_1IStreamz2037_0">xmlSerial</a> (T &value0, T &value1, T &value2, T &value3, const char *nodeName)</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_1IStreamz2037_1">xmlSerial</a> (T &value0, T &value1, T &value2, const char *nodeName)</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_1IStreamz2037_2">xmlSerial</a> (T &value0, T &value1, const char *nodeName)</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_1IStreamz2037_3">xmlSerial</a> (T &value0, const char *nodeName)</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"><div class="groupHeader">XML implementation interface</div></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_1IStreamz2040_1">setInOut</a> (bool inputStream)</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_1IStreamz2040_2">setXMLMode</a> (bool on)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_3">xmlBreakLineInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_3"></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="a02270.html#NLMISC_1_1IStreamz2040_4">xmlCommentInternal</a> (const char *comment)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlComment implementation <a href="#NLMISC_1_1IStreamz2040_4"></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="a02270.html#NLMISC_1_1IStreamz2040_5">xmlPopInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPop implementation <a href="#NLMISC_1_1IStreamz2040_5"></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="a02270.html#NLMISC_1_1IStreamz2040_6">xmlPushBeginInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushBegin implementation <a href="#NLMISC_1_1IStreamz2040_6"></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="a02270.html#NLMISC_1_1IStreamz2040_7">xmlPushEndInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushEnd implementation <a href="#NLMISC_1_1IStreamz2040_7"></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="a02270.html#NLMISC_1_1IStreamz2040_8">xmlSetAttribInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_8"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">XML implementation interface</div></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_1IStreamz2040_1">setInOut</a> (bool inputStream)</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_1IStreamz2040_2">setXMLMode</a> (bool on)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_3">xmlBreakLineInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_3"></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="a02270.html#NLMISC_1_1IStreamz2040_4">xmlCommentInternal</a> (const char *comment)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlComment implementation <a href="#NLMISC_1_1IStreamz2040_4"></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="a02270.html#NLMISC_1_1IStreamz2040_5">xmlPopInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPop implementation <a href="#NLMISC_1_1IStreamz2040_5"></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="a02270.html#NLMISC_1_1IStreamz2040_6">xmlPushBeginInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushBegin implementation <a href="#NLMISC_1_1IStreamz2040_6"></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="a02270.html#NLMISC_1_1IStreamz2040_7">xmlPushEndInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushEnd implementation <a href="#NLMISC_1_1IStreamz2040_7"></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="a02270.html#NLMISC_1_1IStreamz2040_8">xmlSetAttribInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_8"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">XML implementation interface</div></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_1IStreamz2040_1">setInOut</a> (bool inputStream)</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_1IStreamz2040_2">setXMLMode</a> (bool on)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_3">xmlBreakLineInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_3"></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="a02270.html#NLMISC_1_1IStreamz2040_4">xmlCommentInternal</a> (const char *comment)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlComment implementation <a href="#NLMISC_1_1IStreamz2040_4"></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="a02270.html#NLMISC_1_1IStreamz2040_5">xmlPopInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPop implementation <a href="#NLMISC_1_1IStreamz2040_5"></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="a02270.html#NLMISC_1_1IStreamz2040_6">xmlPushBeginInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushBegin implementation <a href="#NLMISC_1_1IStreamz2040_6"></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="a02270.html#NLMISC_1_1IStreamz2040_7">xmlPushEndInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushEnd implementation <a href="#NLMISC_1_1IStreamz2040_7"></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="a02270.html#NLMISC_1_1IStreamz2040_8">xmlSetAttribInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_8"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">XML implementation interface</div></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_1IStreamz2040_1">setInOut</a> (bool inputStream)</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_1IStreamz2040_2">setXMLMode</a> (bool on)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02270.html#NLMISC_1_1IStreamz2040_3">xmlBreakLineInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_3"></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="a02270.html#NLMISC_1_1IStreamz2040_4">xmlCommentInternal</a> (const char *comment)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlComment implementation <a href="#NLMISC_1_1IStreamz2040_4"></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="a02270.html#NLMISC_1_1IStreamz2040_5">xmlPopInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPop implementation <a href="#NLMISC_1_1IStreamz2040_5"></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="a02270.html#NLMISC_1_1IStreamz2040_6">xmlPushBeginInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushBegin implementation <a href="#NLMISC_1_1IStreamz2040_6"></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="a02270.html#NLMISC_1_1IStreamz2040_7">xmlPushEndInternal</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlPushEnd implementation <a href="#NLMISC_1_1IStreamz2040_7"></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="a02270.html#NLMISC_1_1IStreamz2040_8">xmlSetAttribInternal</a> (const char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">xmlBreakLine implementation <a href="#NLMISC_1_1IStreamz2040_8"></a><br><br></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::CStringStream::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_1CStringStreama4" doxytag="NLMISC::CStringStream::CStringStream" ></a><p> +<table class="mdTable" 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::CStringStream::CStringStream </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><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="a06472.html#l00048">48</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00048 : <a class="code" href="a02271.html#NLMISC_1_1CMemStreama4">CMemStream</a>( inputStream, defaultcapacity ) {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama3" doxytag="NLMISC::CStringStream::CStringStream" ></a><p> +<table class="mdTable" 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::CStringStream::CStringStream </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03452.html">CStringStream</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="a06472.html#l00051">51</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00051 : <a class="code" href="a02271.html#NLMISC_1_1CMemStreama4">CMemStream</a>( other ) {} +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLMISC_1_1CStringStreama0" doxytag="NLMISC::CStringStream::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, inherited]</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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00521">NLMISC::CMemStream::_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">NLMISC::CMemStream::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::CStringStream::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, 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="a05979.html#l00404">404</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00405 { +00406 <span class="comment">//nldebug( "MEMSTREAM: Reading %u-byte value in %p at pos %u", sizeof(value), this, _BufPos - _Buffer.getPtr() );</span> +00407 <span class="comment">// Check that we don't read more than there is to read</span> +00408 <span class="keywordflow">if</span> ( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamb1">lengthS</a>()+<span class="keyword">sizeof</span>(<a class="code" href="a04223.html#a658">value</a>) > <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::CStringStream::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, 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="a05979.html#l00371">371</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, and <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00561">NLMISC::CMemStream::serial()</a>. +<p> +<div class="fragment"><pre>00372 { +00373 <span class="preprocessor">#ifdef NL_LITTLE_ENDIAN</span> +00374 <span class="preprocessor"></span> <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00375 { +00376 <span class="comment">// Check that we don't read more than there is to read</span> +00377 <span class="comment">// TODO OPTIM we can remove the check if we want to be faster (50ms->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::CStringStream::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, 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="a05979.html#l00395">395</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +References <a class="el" href="a05979.html#l00517">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00396 { +00397 <span class="comment">//nldebug( "MEMSTREAM: Writing %u-byte value in %p at pos %u", sizeof(value), this, _BufPos - _Buffer.getPtr() );</span> +00398 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a> (<span class="keyword">sizeof</span>(T)); +00399 *(T*)<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a04223.html#a658">value</a>; +00400 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <span class="keyword">sizeof</span> (T); +00401 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama8" doxytag="NLMISC::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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::CStringStream::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::CStringStream::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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05979.html#l00395">NLMISC::CMemStream::fastWrite()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, and <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>. +<p> +<div class="fragment"><pre>00359 { +00360 <a class="code" href="a04558.html#a11">uint32</a> oldBufferSize = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size(); +00361 <span class="keywordflow">if</span> (<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr() + <a class="code" href="a04223.html#a571">len</a> > 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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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">NLMISC::CMemStream::lengthR()</a>, <a class="el" href="a05979.html#l00352">NLMISC::CMemStream::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::CStringStream::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">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a06152.html#l00136">NL3D::CParticleSystemShape::buildFromPS()</a>, <a class="el" href="a06026.html#l00398">NLNET::CMessage::clear()</a>, <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a06026.html#l00091">NLNET::CMessage::CMessage()</a>, <a class="el" href="a05482.html#l00673">NLMISC::CBitMemStream::displayStream()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05979.html#l00277">NLMISC::CMemStream::fill()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a05482.html#l00737">NLMISC::CBitMemStream::getSerialItem()</a>, <a class="el" href="a05483.html#l00730">NLMISC::CBitMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06107.html#l00111">NLMISC::COXml::init()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, <a class="el" href="a05482.html#l00172">NLMISC::CBitMemStream::internalSerial()</a>, <a class="el" href="a06027.html#l00198">NLNET::CMessage::invert()</a>, <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05483.html#l00418">NLMISC::CBitMemStream::invert()</a>, <a class="el" href="a06027.html#l00104">NLNET::CMessage::length()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::length()</a>, <a class="el" href="a05486.html#l00109">NLMISC::CBitmap::load()</a>, <a class="el" href="a05486.html#l02582">NLMISC::CBitmap::loadSize()</a>, <a class="el" href="a06027.html#l00143">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">NLMISC::CMemStream::poke()</a>, <a class="el" href="a05482.html#l00346">NLMISC::CBitMemStream::poke()</a>, <a class="el" href="a05482.html#l00375">NLMISC::CBitMemStream::pokeBits()</a>, <a class="el" href="a05482.html#l00415">NLMISC::CBitMemStream::readBits()</a>, <a class="el" href="a05486.html#l01800">NLMISC::CBitmap::readTGA()</a>, <a class="el" href="a06026.html#l00362">NLNET::CMessage::readTypeAtCurrentPos()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, <a class="el" href="a05482.html#l00275">NLMISC::CBitMemStream::reserveBits()</a>, <a class="el" href="a05483.html#l00382">NLMISC::CBitMemStream::resetBufPos()</a>, <a class="el" href="a05761.html#l02623">NLPACS::CGlobalRetriever::CLrLoader::run()</a>, <a class="el" href="a06758.html#l00432">NL3D::CZone::serial()</a>, <a class="el" href="a06702.html#l00186">NL3D::CVegetableShape::serial()</a>, <a class="el" href="a06477.html#l00329">NLPACS::CSurfaceQuadTree::serial()</a>, <a class="el" href="a06477.html#l00246">NLPACS::CQuadBranch::serial()</a>, <a class="el" href="a06476.html#l00076">NL3D::CSurfaceLightGrid::CCellCorner::serial()</a>, <a class="el" href="a06471.html#l00115">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">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05972.html#l01500">NLMISC::CMatrix::serial()</a>, <a class="el" href="a05968.html#l00438">NL3D::CMaterial::CLightMap::serial()</a>, <a class="el" href="a05968.html#l00139">NL3D::CMaterial::serial()</a>, <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>, <a class="el" href="a05792.html#l00117">NL3D::CHLSTextureBank::serial()</a>, <a class="el" href="a05761.html#l00136">NLPACS::CGlobalRetriever::serial()</a>, <a class="el" href="a05666.html#l00571">NLPACS::CEdgeQuad::serial()</a>, <a class="el" href="a05563.html#l00250">NL3D::CCluster::serial()</a>, <a class="el" href="a05541.html#l00473">NLPACS::CChainQuad::serial()</a>, <a class="el" href="a05539.html#l00158">NLPACS::COrderedChain::serial()</a>, <a class="el" href="a05484.html#l00294">NLMISC::CBitSet::serial()</a>, <a class="el" href="a05482.html#l00447">NLMISC::CBitMemStream::serial()</a>, <a class="el" href="a05437.html#l00045">NL3D::CMaterialBase::CAnimatedTexture::serial()</a>, <a class="el" href="a05384.html#l00337">NLMISC::CAABBoxExt::serial()</a>, <a class="el" href="a05968.html#l00456">NL3D::CMaterial::CLightMap::serial2()</a>, <a class="el" href="a06471.html#l00253">serialBit()</a>, <a class="el" href="a05978.html#l00117">NLMISC::CMemStream::serialBit()</a>, <a class="el" href="a05482.html#l00100">NLMISC::CBitMemStream::serialBit()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05482.html#l00073">NLMISC::CBitMemStream::serialBuffer()</a>, <a class="el" href="a06462.html#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a06471.html#l00340">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">serialHex()</a>, <a class="el" href="a05979.html#l00929">NLMISC::CMemStream::serialHex()</a>, <a class="el" href="a06461.html#l00115">NLMISC::IStream::serialIStreamable()</a>, <a class="el" href="a06005.html#l01918">NL3D::CMeshMRMGeom::serialLodVertexData()</a>, <a class="el" href="a06462.html#l01360">NLMISC::IStream::serialMap()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, <a class="el" href="a05482.html#l00551">NLMISC::CBitMemStream::serialMemStream()</a>, <a class="el" href="a06026.html#l00472">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">serialSeparatedBufferIn()</a>, <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>, <a class="el" href="a06471.html#l00071">serialSeparatedBufferOut()</a>, <a class="el" href="a06107.html#l00160">NLMISC::COXml::serialSeparatedBufferOut()</a>, <a class="el" href="a05978.html#l00338">NLMISC::CMemStream::serialSeparatedBufferOut()</a>, <a class="el" href="a06462.html#l00955">NLMISC::IStream::serialSTLCont()</a>, <a class="el" href="a06462.html#l00905">NLMISC::IStream::serialSTLContLen()</a>, <a class="el" href="a06462.html#l01162">NLMISC::IStream::serialSTLContLenPolyPtr()</a>, <a class="el" href="a06462.html#l01056">NLMISC::IStream::serialSTLContLenPtr()</a>, <a class="el" href="a06462.html#l01192">NLMISC::IStream::serialSTLContPolyPtr()</a>, <a class="el" href="a06462.html#l01086">NLMISC::IStream::serialSTLContPtr()</a>, <a class="el" href="a06710.html#l01008">NL3D::CVertexBuffer::serialSubset()</a>, <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>, <a class="el" href="a06462.html#l01215">NLMISC::IStream::serialVectorPolyPtr()</a>, <a class="el" href="a06462.html#l01121">NLMISC::IStream::serialVectorPtr()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, <a class="el" href="a06026.html#l00173">NLNET::CMessage::setType()</a>, <a class="el" href="a06027.html#l00164">NLNET::CMessage::unlockSubMessage()</a>, <a class="el" href="a05486.html#l02139">NLMISC::CBitmap::writeTGA()</a>, <a class="el" href="a06107.html#l00556">NLMISC::COXml::xmlBreakLineInternal()</a>, <a class="el" href="a06107.html#l00587">NLMISC::COXml::xmlCommentInternal()</a>, <a class="el" href="a06107.html#l00488">NLMISC::COXml::xmlPopInternal()</a>, <a class="el" href="a06107.html#l00394">NLMISC::COXml::xmlPushBeginInternal()</a>, <a class="el" href="a06107.html#l00457">NLMISC::COXml::xmlPushEndInternal()</a>, and <a class="el" href="a06107.html#l00522">NLMISC::COXml::xmlSetAttribInternal()</a>. +<p> +<div class="fragment"><pre>00065 { +00066 <span class="keywordflow">return</span> _InputStream; +00067 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreama3" doxytag="NLMISC::CStringStream::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">NLMISC::CMemStream::serial()</a>. +<p> +<div class="fragment"><pre>00221 { <span class="keywordflow">return</span> _XML; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama15" doxytag="NLMISC::CStringStream::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, inherited]</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">NLMISC::CMemStream::lengthR()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00404">NLMISC::CMemStream::fastRead()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05978.html#l00235">NLMISC::CMemStream::resize()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a06461.html#l00436">NLMISC::IStream::serialMemStream()</a>, <a class="el" href="a06471.html#l00041">serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::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::CStringStream::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, inherited]</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">NLMISC::CMemStream::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">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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">NLMISC::CMemStream::fastRead()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a06027.html#l00104">NLNET::CMessage::length()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05483.html#l00402">NLMISC::CBitMemStream::length()</a>, <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a06471.html#l00041">serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>. +<p> +<div class="fragment"><pre>00503 { +00504 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); <span class="comment">// not calling getPos() because virtual and not const!</span> +00505 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama16" doxytag="NLMISC::CStringStream::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="a03452.html">CStringStream</a>& NLMISC::CStringStream::operator= </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03452.html">CStringStream</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="a06472.html#l00054">54</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00054 { CMemStream::operator=( other ); <span class="keywordflow">return</span> *<span class="keyword">this</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama17" doxytag="NLMISC::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00169 { +00170 <a class="code" href="a04558.html#a10">sint32</a> pos = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> - <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.getPtr(); +00171 <span class="keywordflow">if</span> ( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00172 { +00173 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama11">increaseBufferIfNecessary</a>( len ); +00174 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a04223.html#a571">len</a>; +00175 } +00176 <span class="keywordflow">return</span> pos; +00177 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama19" doxytag="NLMISC::CStringStream::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, inherited]</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">NLMISC::CMemStream::_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::CStringStream::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, inherited]</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">NLMISC::CMemStream::clear()</a>, <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, and <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>. +<p> +<div class="fragment"><pre>00352 { IStream::resetPtrTable() ; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama21" doxytag="NLMISC::CStringStream::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><code> [inherited]</code></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">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a06116.html#l00195">NLMISC::CObjectVector< uint8, false >::getPtr()</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::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::CStringStream::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, inherited]</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="NLMISC_1_1CStringStreamz2043_0" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_0">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00316">316</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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="a06472.html#l00067">serial()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00317 { +00318 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00319 <span class="comment">// Read/Write the length.</span> +00320 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00321 { +00322 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(len); +00323 b.resize(len); +00324 } +00325 <span class="keywordflow">else</span> +00326 { +00327 <a class="code" href="a04223.html#a571">len</a>= b.size(); +00328 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(len); +00329 } +00330 <span class="comment">// Read/Write the string.</span> +00331 <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++) +00332 <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]) ) ); +00333 +00334 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>; +00335 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&sep, 1 ); +00336 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_1" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_1">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00290">290</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a06472.html#l00067">serial()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00291 { +00292 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00293 <span class="comment">// Read/Write the length.</span> +00294 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00295 { +00296 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(len); +00297 <a class="code" href="a04199.html#a6">nlassert</a>( len<1000000 ); <span class="comment">// limiting string size</span> +00298 b.resize(len); +00299 } +00300 <span class="keywordflow">else</span> +00301 { +00302 <a class="code" href="a04223.html#a571">len</a>= b.size(); +00303 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(len); +00304 } +00305 +00306 <span class="comment">// Read/Write the string.</span> +00307 <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++) +00308 <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]) ); +00309 +00310 <span class="keywordtype">char</span> sep = <a class="code" href="a05378.html#a28">SEPARATOR</a>; +00311 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)&sep, 1 ); +00312 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_2" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_2">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00271">271</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00272 { +00273 <span class="keywordtype">char</span> buff [2]; +00274 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00275 { +00276 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)buff, 2 ); +00277 b = buff[0]; +00278 } +00279 <span class="keywordflow">else</span> +00280 { +00281 buff[0] = b; +00282 buff[1] = <a class="code" href="a05378.html#a28">SEPARATOR</a>; +00283 <a class="code" href="a02271.html#NLMISC_1_1CStringStreama30">serialBuffer</a>( (<a class="code" href="a04558.html#a7">uint8</a>*)buff, 2 ); +00284 } +00285 +00286 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_3" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_3">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00246">246</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <a class="el" href="a06471.html#l00253">serialBit()</a>. +<p> +<div class="fragment"><pre>00247 { +00248 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama29">serialBit</a>(b); +00249 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_4" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_4">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00233">233</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00234 { +00235 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00236 { +00237 <a class="code" href="a04377.html#a1">readnumber</a>( b, <span class="keywordtype">double</span>, 128, atof ); <span class="comment">//</span> +00238 } +00239 <span class="keywordflow">else</span> +00240 { +00241 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%f"</span>, 128 ); +00242 } +00243 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_5" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_5">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00220">220</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00221 { +00222 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00223 { +00224 <a class="code" href="a04377.html#a1">readnumber</a>( b, <span class="keywordtype">float</span>, 128, atof ); <span class="comment">// ?</span> +00225 } +00226 <span class="keywordflow">else</span> +00227 { +00228 <a class="code" href="a04684.html#a0">writenumber</a>( (<span class="keywordtype">double</span>)b, <span class="stringliteral">"%f"</span>, 128 ); +00229 } +00230 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_6" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_6">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00207">207</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00208 { +00209 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00210 { +00211 <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> +00212 } +00213 <span class="keywordflow">else</span> +00214 { +00215 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"d"</span>, 20 ); +00216 } +00217 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_7" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_7">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00194">194</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00195 { +00196 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00197 { +00198 <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> +00199 } +00200 <span class="keywordflow">else</span> +00201 { +00202 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%"</span>NL_I64<span class="stringliteral">"u"</span>, 20 ); +00203 } +00204 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_8" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_8">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00181">181</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00182 { +00183 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00184 { +00185 <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> +00186 } +00187 <span class="keywordflow">else</span> +00188 { +00189 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%d"</span>, 11 ); +00190 } +00191 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_9" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_9">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00168">168</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <a class="el" href="a05800.html#l00481">NLMISC::atoui()</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>00169 { +00170 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00171 { +00172 <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> +00173 } +00174 <span class="keywordflow">else</span> +00175 { +00176 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%u"</span>, 10 ); +00177 } +00178 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_10" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_10">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00155">155</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00156 { +00157 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00158 { +00159 <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> +00160 } +00161 <span class="keywordflow">else</span> +00162 { +00163 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%hd"</span>, 6 ); +00164 } +00165 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_11" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_11">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00141">141</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00142 { +00143 <span class="comment">// No byte swapping in text mode</span> +00144 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00145 { +00146 <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> +00147 } +00148 <span class="keywordflow">else</span> +00149 { +00150 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%hu"</span>, 5 ); +00151 } +00152 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_12" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_12">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00128">128</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00129 { +00130 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00131 { +00132 <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> +00133 } +00134 <span class="keywordflow">else</span> +00135 { +00136 <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 ); +00137 } +00138 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamz2043_13" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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="a02271.html#NLNET_1_1CMessagez1972_13">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00115">115</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>00116 { +00117 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00118 { +00119 <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> +00120 } +00121 <span class="keywordflow">else</span> +00122 { +00123 <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 ); +00124 } +00125 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama23" doxytag="NLMISC::CStringStream::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::CStringStream::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="a02271.html#NLNET_1_1CMessagea36">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00097">97</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06472.html#l00067">serial()</a>. +<p> +<div class="fragment"><pre>00098 { <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(a); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(c); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(d); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(e); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(f);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama24" doxytag="NLMISC::CStringStream::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::CStringStream::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="a02271.html#NLNET_1_1CMessagea37">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00094">94</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06472.html#l00067">serial()</a>. +<p> +<div class="fragment"><pre>00095 { <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(a); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(c); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(d); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(e);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama25" doxytag="NLMISC::CStringStream::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::CStringStream::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="a02271.html#NLNET_1_1CMessagea38">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00091">91</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06472.html#l00067">serial()</a>. +<p> +<div class="fragment"><pre>00092 { <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(a); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(c); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(d);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama26" doxytag="NLMISC::CStringStream::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::CStringStream::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="a02271.html#NLNET_1_1CMessagea39">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00088">88</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06472.html#l00067">serial()</a>. +<p> +<div class="fragment"><pre>00089 { <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(a); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(c);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama27" doxytag="NLMISC::CStringStream::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::CStringStream::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="a02271.html#NLNET_1_1CMessagea40">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00085">85</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06472.html#l00067">serial()</a>. +<p> +<div class="fragment"><pre>00086 { <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(a); <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama28" doxytag="NLMISC::CStringStream::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::CStringStream::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="a02271.html#NLNET_1_1CMessagea41">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00067">67</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +Referenced by <a class="el" href="a06471.html#l00290">serial()</a>, <a class="el" href="a06471.html#l00253">serialBit()</a>, and <a class="el" href="a06471.html#l00340">serialCont()</a>. +<p> +<div class="fragment"><pre>00067 { obj.serial(*<span class="keyword">this</span>); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama29" doxytag="NLMISC::CStringStream::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::CStringStream::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> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea42">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00253">253</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06472.html#l00067">serial()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06471.html#l00246">serial()</a>. +<p> +<div class="fragment"><pre>00254 { +00255 <a class="code" href="a04558.html#a7">uint8</a> u; +00256 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00257 { +00258 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>( u ); +00259 bit = (u!=0); +00260 } +00261 <span class="keywordflow">else</span> +00262 { +00263 u = (<a class="code" href="a04558.html#a7">uint8</a>)bit; +00264 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>( u ); +00265 } +00266 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2030_0" doxytag="NLMISC::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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, inherited]</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">NLMISC::CMemStream::_BufPos</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a06471.html#l00271">serial()</a>, <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, <a class="el" href="a05979.html#l00778">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a06026.html#l00472">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="NLMISC_1_1CStringStreama32" doxytag="NLMISC::CStringStream::serialCont" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> void NLMISC::CStringStream::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> [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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea45">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00340">340</a> of file <a class="el" href="a06471.html">string_stream.cpp</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="a06472.html#l00067">serial()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05646.html#l00237">v</a>. +<p> +<div class="fragment"><pre>00341 { +00342 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00343 <span class="keywordflow">if</span>(<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00344 { +00345 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(len); +00346 <span class="comment">// special version for vector: adjut good size.</span> +00347 <a class="code" href="a05378.html#a381">contReset</a>(cont); +00348 cont.reserve(len); +00349 +00350 <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++) +00351 { +00352 <span class="keywordtype">bool</span> <a class="code" href="a04223.html#a576">v</a>; +00353 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(v); +00354 cont.insert(cont.end(), <a class="code" href="a04223.html#a576">v</a>); +00355 } +00356 } +00357 <span class="keywordflow">else</span> +00358 { +00359 <a class="code" href="a04223.html#a571">len</a>= cont.size(); +00360 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(len); +00361 +00362 std::vector<bool>::iterator it= cont.begin(); +00363 <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++) +00364 { +00365 <span class="keywordtype">bool</span> b = *it; +00366 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>( b ); +00367 } +00368 } +00369 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama33" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<sint8>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea46">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00126">126</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>. +<p> +<div class="fragment"><pre>00126 { <a class="code" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a>(cont); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama34" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<uint8>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea47">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00124">124</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +References <a class="el" href="a06462.html#l00992">NLMISC::IStream::serialVector()</a>. +<p> +<div class="fragment"><pre>00124 { <a class="code" href="a02270.html#NLMISC_1_1IStreamb0">serialVector</a>(cont); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama35" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea48">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00082">82</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00082 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama36" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea49">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00080">80</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00080 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama37" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea50">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00078">78</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00078 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama38" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea51">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00076">76</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00076 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama39" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea52">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00074">74</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00074 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama40" doxytag="NLMISC::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama41">serialCont()</a> for vector<bool>. +<p> + +<p> +Reimplemented from <a class="el" href="a02271.html#NLNET_1_1CMessagea53">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00072">72</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00072 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama41" doxytag="NLMISC::CStringStream::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::CStringStream::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 from <a class="el" href="a02271.html#NLNET_1_1CMessagea54">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06472.html#l00070">70</a> of file <a class="el" href="a06472.html">string_stream.h</a>. +<p> +<div class="fragment"><pre>00070 {CMemStream::serialCont(cont);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2035_1" doxytag="NLMISC::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(i); +00267 em = (T)i; +00268 } +00269 <span class="keywordflow">else</span> +00270 { +00271 i = em; +00272 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(i); +00273 } +00274 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama43" doxytag="NLMISC::CStringStream::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::CStringStream::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> [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 from <a class="el" href="a02271.html#NLNET_1_1CMessagez1974_0">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00375">375</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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> +<div class="fragment"><pre>00376 { +00377 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00378 { +00379 <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> +00380 } +00381 <span class="keywordflow">else</span> +00382 { +00383 <a class="code" href="a04684.html#a0">writenumber</a>( b, <span class="stringliteral">"%x"</span>, 10 ); +00384 } +00385 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreama8" doxytag="NLMISC::CStringStream::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">NLMISC::CMemStream::buffer()</a>, <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00270">NLMISC::CMemStream::resetBufPos()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a02270.html#NLMISC_1_1IStreamz2041_1">NLMISC::IStream::serialBuffer()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00437 { +00438 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a571">len</a>=0; +00439 +00440 <span class="comment">// Serialize length</span> +00441 <span class="keywordflow">if</span> ( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ) +00442 { +00443 <span class="comment">// fill b with data from this</span> +00444 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="NLMISC_1_1CStringStreama45" doxytag="NLMISC::CStringStream::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::CStringStream::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 from <a class="el" href="a02271.html#NLNET_1_1CMessagez1974_1">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00041">41</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05979.html#l00217">NLMISC::CMemStream::length()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05979.html#l00553">NLMISC::SEP_SIZE</a>, <a class="el" href="a05979.html#l00552">NLMISC::SEPARATOR</a>, <a class="el" href="a06116.html#l00184">NLMISC::CObjectVector< 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>00042 { +00043 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ); +00044 +00045 <span class="comment">// Check that we don't read more than there is to read</span> +00046 <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>.end() ) || <span class="comment">// we are at the end</span> +00047 ( <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> +00048 { +00049 <span class="keywordflow">throw</span> EStreamOverflow(); +00050 } +00051 <span class="comment">// Serialize in</span> +00052 <a class="code" href="a04558.html#a11">uint32</a> i = 0; +00053 <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> ) +00054 { +00055 *(buf+i) = *<a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>; +00056 i++; +00057 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a>++; +00058 } +00059 <span class="comment">// Exceeds len</span> +00060 <span class="keywordflow">if</span> ( (*_BufPos) != <a class="code" href="a05378.html#a28">SEPARATOR</a> ) +00061 { +00062 <span class="keywordflow">throw</span> EStreamOverflow(); +00063 } +00064 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> += <a class="code" href="a05378.html#a37">SEP_SIZE</a>; +00065 <span class="keywordflow">return</span> i; +00066 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama46" doxytag="NLMISC::CStringStream::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::CStringStream::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 from <a class="el" href="a02271.html#NLNET_1_1CMessagez1974_2">NLMISC::CMemStream</a>. +<p> +Definition at line <a class="el" href="a06471.html#l00071">71</a> of file <a class="el" href="a06471.html">string_stream.cpp</a>. +<p> +References <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>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +<div class="fragment"><pre>00072 { +00073 <a class="code" href="a04199.html#a6">nlassert</a>( ! <a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() ); +00074 +00075 <span class="comment">// Serialize out</span> +00076 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.resize( <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size() + <a class="code" href="a04223.html#a571">len</a> + <a class="code" href="a05378.html#a37">SEP_SIZE</a> ); +00077 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.end() - <a class="code" href="a04223.html#a571">len</a> - <a class="code" href="a05378.html#a37">SEP_SIZE</a>; +00078 memcpy( &(*_BufPos), buf, len ); +00079 <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>; +00080 <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp1">_BufPos</a> = <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.end(); +00081 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamb0" doxytag="NLMISC::CStringStream::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">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b); +00278 <span class="keywordflow">if</span>(b==0xFF) +00279 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">serial</a>(b); +00297 <a class="code" href="a03452.html#NLMISC_1_1CStringStreama28">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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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">NLMISC::CMemStream::invert()</a>. +<p> +<div class="fragment"><pre>00414 { +00415 _InputStream= inputStream; +00416 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama47" doxytag="NLMISC::CStringStream::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, inherited]</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">NLMISC::CMemStream::_StringMode</a>. +<p> +Referenced by <a class="el" href="a06026.html#l00072">NLNET::CMessage::init()</a>. +<p> +<div class="fragment"><pre>00113 { <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a> = stringmode; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreame1" doxytag="NLMISC::CStringStream::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::CStringStream::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::CStringStream::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, inherited]</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">NLMISC::CMemStream::lengthR()</a>. +<p> +<div class="fragment"><pre>00231 { +00232 <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp0">_Buffer</a>.size(); +00233 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreama49" doxytag="NLMISC::CStringStream::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, inherited]</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">NLMISC::CMemStream::_StringMode</a>. +<p> +Referenced by <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>, and <a class="el" href="a05810.html#l00409">NLNET::CInetAddress::serial()</a>. +<p> +<div class="fragment"><pre>00116 { <span class="keywordflow">return</span> <a class="code" href="a02271.html#NLMISC_1_1CStringStreamp3">_StringMode</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1IStreamz2039_0" doxytag="NLMISC::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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="a03452.html#NLMISC_1_1CStringStreama28">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::CStringStream::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::CStringStream::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::CStringStream::_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, inherited]</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">NLMISC::CMemStream::operator=()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamp1" doxytag="NLMISC::CStringStream::_BufPos" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a>* <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp1">NLMISC::CMemStream::_BufPos</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00517">517</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00306">NLMISC::CMemStream::bufferToFill()</a>, <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a05979.html#l00086">NLMISC::CMemStream::CMemStream()</a>, <a class="el" href="a05979.html#l00404">NLMISC::CMemStream::fastRead()</a>, <a class="el" href="a05979.html#l00371">NLMISC::CMemStream::fastSerial()</a>, <a class="el" href="a05979.html#l00395">NLMISC::CMemStream::fastWrite()</a>, <a class="el" href="a05979.html#l00277">NLMISC::CMemStream::fill()</a>, <a class="el" href="a05979.html#l00153">NLMISC::CMemStream::getPos()</a>, <a class="el" href="a05979.html#l00358">NLMISC::CMemStream::increaseBufferIfNecessary()</a>, <a class="el" href="a05979.html#l00331">NLMISC::CMemStream::invert()</a>, <a class="el" href="a05979.html#l00502">NLMISC::CMemStream::lengthS()</a>, <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>, <a class="el" href="a05979.html#l00190">NLMISC::CMemStream::poke()</a>, <a class="el" href="a05979.html#l00168">NLMISC::CMemStream::reserve()</a>, <a class="el" href="a05979.html#l00270">NLMISC::CMemStream::resetBufPos()</a>, <a class="el" href="a05978.html#l00235">NLMISC::CMemStream::resize()</a>, <a class="el" href="a05978.html#l00073">NLMISC::CMemStream::serialBuffer()</a>, <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>, and <a class="el" href="a05978.html#l00338">NLMISC::CMemStream::serialSeparatedBufferOut()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamp2" doxytag="NLMISC::CStringStream::_DefaultCapacity" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp2">NLMISC::CMemStream::_DefaultCapacity</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00521">521</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00201">NLMISC::CMemStream::clear()</a>, <a class="el" href="a05979.html#l00086">NLMISC::CMemStream::CMemStream()</a>, and <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLMISC_1_1CStringStreamp3" doxytag="NLMISC::CStringStream::_StringMode" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> bool <a class="el" href="a02271.html#NLMISC_1_1CStringStreamp3">NLMISC::CMemStream::_StringMode</a><code> [protected, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05979.html#l00519">519</a> of file <a class="el" href="a05979.html">mem_stream.h</a>. +<p> +Referenced by <a class="el" href="a05979.html#l00086">NLMISC::CMemStream::CMemStream()</a>, <a class="el" href="a05979.html#l00102">NLMISC::CMemStream::operator=()</a>, <a class="el" href="a05979.html#l00561">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05979.html#l00929">NLMISC::CMemStream::serialHex()</a>, <a class="el" href="a05978.html#l00307">NLMISC::CMemStream::serialSeparatedBufferIn()</a>, <a class="el" href="a05978.html#l00338">NLMISC::CMemStream::serialSeparatedBufferOut()</a>, <a class="el" href="a05979.html#l00113">NLMISC::CMemStream::setStringMode()</a>, and <a class="el" href="a05979.html#l00116">NLMISC::CMemStream::stringMode()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06472.html">string_stream.h</a><li><a class="el" href="a06471.html">string_stream.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:36:57 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> |