aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/message_8cpp-source.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/message_8cpp-source.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/message_8cpp-source.html')
-rw-r--r--docs/doxygen/nel/message_8cpp-source.html388
1 files changed, 388 insertions, 0 deletions
diff --git a/docs/doxygen/nel/message_8cpp-source.html b/docs/doxygen/nel/message_8cpp-source.html
new file mode 100644
index 00000000..da09756c
--- /dev/null
+++ b/docs/doxygen/nel/message_8cpp-source.html
@@ -0,0 +1,388 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : docs</TITLE>
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-gpl.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="License">License</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/docs/"><img src="http://www.nevrax.org/inc/img/t_docs.gif" ALT="Docs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+&nbsp;
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Documentation</B></TD>
+ <TD ALIGN=RIGHT>&nbsp;</td>
+</tr></table>
+<!-- Generated by Doxygen 1.2.14 -->
+<center>
+<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindexRef" doxygen="_cgi:http://www.nevrax.org/cgi-bin/nel-search.cgi" href="http://www.nevrax.org/cgi-bin/nel-search.cgi">Search</a> &nbsp; </center>
+<hr><h1>message.cpp</h1><a href="message_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
+00007 <font class="comment">/* Copyright, 2000 Nevrax Ltd.</font>
+00008 <font class="comment"> *</font>
+00009 <font class="comment"> * This file is part of NEVRAX NEL.</font>
+00010 <font class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</font>
+00011 <font class="comment"> * it under the terms of the GNU General Public License as published by</font>
+00012 <font class="comment"> * the Free Software Foundation; either version 2, or (at your option)</font>
+00013 <font class="comment"> * any later version.</font>
+00014 <font class="comment"></font>
+00015 <font class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</font>
+00016 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font>
+00017 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font>
+00018 <font class="comment"> * General Public License for more details.</font>
+00019 <font class="comment"></font>
+00020 <font class="comment"> * You should have received a copy of the GNU General Public License</font>
+00021 <font class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</font>
+00022 <font class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</font>
+00023 <font class="comment"> * MA 02111-1307, USA.</font>
+00024 <font class="comment"> */</font>
+00025
+00026 <font class="preprocessor">#include "<a class="code" href="stdnet_8h.html">stdnet.h</a>"</font>
+00027
+00028 <font class="preprocessor">#include "<a class="code" href="message_8h.html">nel/net/message.h</a>"</font>
+00029
+00030 <font class="comment">/*#ifdef MESSAGES_PLAIN_TEXT</font>
+00031 <font class="comment">#pragma message( "CMessage: compiling messages as plain text" )</font>
+00032 <font class="comment">#else</font>
+00033 <font class="comment">#pragma message( "CMessage: compiling messages as binary" )</font>
+00034 <font class="comment">#endif*/</font>
+00035
+00036 <font class="keyword">namespace </font>NLNET
+00037 {
+00038
+<a name="l00039"></a><a class="code" href="classNLNET_1_1CMessage.html#r0">00039</a> <font class="keywordtype">bool</font> CMessage::_DefaultStringMode = <font class="keyword">false</font>;
+00040
+00041
+<a name="l00042"></a><a class="code" href="message_8cpp.html#a0">00042</a> <font class="preprocessor">#define FormatLong 1</font>
+<a name="l00043"></a><a class="code" href="message_8cpp.html#a1">00043</a> <font class="preprocessor"></font><font class="preprocessor">#define FormatShort 0</font>
+00044 <font class="preprocessor"></font>
+00045
+<a name="l00046"></a><a class="code" href="classNLNET_1_1CMessage.html#a0">00046</a> CMessage::CMessage (<a class="code" href="classNLMISC_1_1CStringIdArray.html">NLMISC::CStringIdArray</a> &amp;sida, <font class="keyword">const</font> std::string &amp;name, <font class="keywordtype">bool</font> inputStream, TStreamFormat streamformat, uint32 defaultCapacity) :
+00047 NLMISC::CMemStream (inputStream, false, defaultCapacity),
+00048 _TypeSet (false), _SIDA (&amp;sida), _HeaderSize(0xFFFFFFFF)
+00049 {
+00050 <a class="code" href="classNLNET_1_1CMessage.html#b0">init</a>( name, streamformat );
+00051 }
+00052
+<a name="l00053"></a><a class="code" href="classNLNET_1_1CMessage.html#a1">00053</a> CMessage::CMessage (<font class="keyword">const</font> std::string &amp;name, <font class="keywordtype">bool</font> inputStream, TStreamFormat streamformat, uint32 defaultCapacity) :
+00054 NLMISC::CMemStream (inputStream, false, defaultCapacity),
+00055 _TypeSet (false), _SIDA (NULL), _HeaderSize(0xFFFFFFFF)
+00056 {
+00057 <a class="code" href="classNLNET_1_1CMessage.html#b0">init</a>( name, streamformat );
+00058 }
+00059
+00060
+00061 <font class="comment">/*</font>
+00062 <font class="comment"> * Utility method</font>
+00063 <font class="comment"> */</font>
+<a name="l00064"></a><a class="code" href="classNLNET_1_1CMessage.html#b0">00064</a> <font class="keywordtype">void</font> CMessage::init( <font class="keyword">const</font> std::string &amp;name, TStreamFormat streamformat )
+00065 {
+00066 <font class="keywordflow">if</font> ( streamformat == <a class="code" href="classNLNET_1_1CMessage.html#s3s0">UseDefault</a> )
+00067 {
+00068 <a class="code" href="classNLMISC_1_1CMemStream.html#a3">setStringMode</a>( <a class="code" href="classNLNET_1_1CMessage.html#r0">_DefaultStringMode</a> );
+00069 }
+00070 <font class="keywordflow">else</font>
+00071 {
+00072 <a class="code" href="classNLMISC_1_1CMemStream.html#a3">setStringMode</a>( streamformat == <a class="code" href="classNLNET_1_1CMessage.html#s3s2">String</a> );
+00073 }
+00074
+00075 <font class="keywordflow">if</font> (!name.empty())
+00076 <a class="code" href="classNLNET_1_1CMessage.html#a5">setType</a> (name);
+00077 }
+00078
+00079
+<a name="l00080"></a><a class="code" href="classNLNET_1_1CMessage.html#a2">00080</a> CMessage::CMessage (<a class="code" href="classNLMISC_1_1CMemStream.html">NLMISC::CMemStream</a> &amp;memstr) :
+00081 _HeaderSize(0xFFFFFFFF)
+00082 {
+00083 <a class="code" href="classNLMISC_1_1CMemStream.html#a13">fill</a> (memstr.buffer (), memstr.length ());
+00084 uint8 LongFormat=2;
+00085 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (LongFormat);
+00086
+00087 <font class="keywordflow">if</font> (LongFormat)
+00088 {
+00089 std::string name;
+00090 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (name);
+00091 <a class="code" href="classNLNET_1_1CMessage.html#a5">setType</a> (name);
+00092 }
+00093 <font class="keywordflow">else</font>
+00094 {
+00095 <a class="code" href="classNLMISC_1_1CStringIdArray.html#s0">NLMISC::CStringIdArray::TStringId</a> <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>;
+00096 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00097 <a class="code" href="classNLNET_1_1CMessage.html#a5">setType</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00098 }
+00099 }
+00100
+00101
+<a name="l00103"></a><a class="code" href="classNLNET_1_1CMessage.html#a3">00103</a> CMessage::CMessage (<font class="keyword">const</font> CMessage &amp;other)
+00104 {
+00105 <a class="code" href="classNLNET_1_1CMessage.html#a4">operator= </a>(other);
+00106 }
+00107
+<a name="l00109"></a><a class="code" href="classNLNET_1_1CMessage.html#a4">00109</a> CMessage &amp;CMessage::operator= (<font class="keyword">const</font> CMessage &amp;other)
+00110 {
+00111 CMemStream::operator= (other);
+00112 <a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a> = other._TypeSet;
+00113 <a class="code" href="classNLNET_1_1CMessage.html#o1">_SIDA</a> = other._SIDA;
+00114 <a class="code" href="classNLNET_1_1CMessage.html#m0">TypeHasAnId</a> = other.TypeHasAnId;
+00115 <a class="code" href="classNLNET_1_1CMessage.html#m1">TypeHasAName</a> = other.TypeHasAName;
+00116 <a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a> = other._Name;
+00117 <a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a> = other._Id;
+00118 <a class="code" href="classNLNET_1_1CMessage.html#o4">_HeaderSize</a> = other._HeaderSize;
+00119 <font class="keywordflow">return</font> *<font class="keyword">this</font>;
+00120
+00121 }
+00122
+<a name="l00124"></a><a class="code" href="classNLNET_1_1CMessage.html#a5">00124</a> <font class="keywordtype">void</font> CMessage::setType (<a class="code" href="classNLMISC_1_1CStringIdArray.html#s0">NLMISC::CStringIdArray::TStringId</a> <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>)
+00125 {
+00126 <font class="comment">// PATCH: the id system is not available</font>
+00127 <a class="code" href="debug_8h.html#a12">nlstop</a>;
+00128
+00129 <font class="comment">// check if we already do a setType ()</font>
+00130 <a class="code" href="debug_8h.html#a6">nlassert</a> (!<a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a>);
+00131 <font class="comment">// don't accept negative value</font>
+00132 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a> &gt;= 0 &amp;&amp; <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a> &lt; pow(2, <font class="keyword">sizeof</font> (<a class="code" href="classNLMISC_1_1CStringIdArray.html#s0">NLMISC::CStringIdArray::TStringId</a>)*8));
+00133
+00134 <a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a> = <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>;
+00135 <a class="code" href="classNLNET_1_1CMessage.html#m0">TypeHasAnId</a> = <font class="keyword">true</font>;
+00136 <a class="code" href="classNLNET_1_1CMessage.html#m1">TypeHasAName</a> = <font class="keyword">false</font>;
+00137
+00138 <font class="keywordflow">if</font> (!<a class="code" href="classNLMISC_1_1IStream.html#a4">isReading</a> ())
+00139 {
+00140 <font class="comment">// check if they don't already serial some stuffs</font>
+00141 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLMISC_1_1CMemStream.html#a10">length</a> () == 0);
+00142
+00143 uint8 <a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a> = <a class="code" href="message_8cpp.html#a0">FormatLong</a> | (<a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> &lt;&lt; 1);
+00144 <a class="code" href="debug_8h.html#a1">nlinfo</a>( <font class="stringliteral">"OUT format = %hu"</font>, (uint16)<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a> );
+00145
+00146 <font class="comment">// Force binary mode for header</font>
+00147 <font class="keywordtype">bool</font> msgmode = <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a>;
+00148 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = <font class="keyword">false</font>;
+00149
+00150 <font class="comment">// debug features, we number all packet to be sure that they are all sent and received</font>
+00151 <font class="comment">// \todo remove this debug feature when ok</font>
+00152 <font class="comment">// this value will be fill after in the callback function</font>
+00153 uint32 zeroValue = 123;
+00154 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (zeroValue);
+00155
+00156 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a>);
+00157
+00158 <font class="comment">// End of binary header</font>
+00159 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = msgmode;
+00160
+00161 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00162 <a class="code" href="classNLNET_1_1CMessage.html#o4">_HeaderSize</a> = <a class="code" href="classNLMISC_1_1CMemStream.html#a8">getPos</a> ();
+00163 }
+00164 <font class="keywordflow">else</font>
+00165 {
+00166 <font class="comment">// we set the id, now, we try to set the name if available in the sida</font>
+00167 <font class="keywordflow">if</font> (<a class="code" href="classNLNET_1_1CMessage.html#o1">_SIDA</a> != NULL)
+00168 {
+00169 <a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a> = <a class="code" href="classNLNET_1_1CMessage.html#o1">_SIDA</a>-&gt;<a class="code" href="classNLMISC_1_1CStringIdArray.html#a4">getString</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00170 <a class="code" href="classNLNET_1_1CMessage.html#m1">TypeHasAName</a> = <font class="keyword">true</font>;
+00171 }
+00172 }
+00173
+00174 <a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a> = <font class="keyword">true</font>;
+00175 }
+00176
+<a name="l00178"></a><a class="code" href="classNLNET_1_1CMessage.html#a6">00178</a> <font class="keywordtype">void</font> CMessage::setType (<font class="keyword">const</font> std::string &amp;name)
+00179 {
+00180 <font class="comment">// check if we already do a setType ()</font>
+00181 <a class="code" href="debug_8h.html#a6">nlassert</a> (!<a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a>);
+00182 <font class="comment">// don't accept empty string</font>
+00183 <a class="code" href="debug_8h.html#a6">nlassert</a> (!name.empty ());
+00184
+00185 <a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a> = name;
+00186 <a class="code" href="classNLNET_1_1CMessage.html#m0">TypeHasAnId</a> = <font class="keyword">false</font>;
+00187 <a class="code" href="classNLNET_1_1CMessage.html#m1">TypeHasAName</a> = <font class="keyword">true</font>;
+00188
+00189 <font class="keywordflow">if</font> (!<a class="code" href="classNLMISC_1_1IStream.html#a4">isReading</a> ())
+00190 {
+00191 <font class="comment">// check if they don't already serial some stuffs</font>
+00192 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLMISC_1_1CMemStream.html#a10">length</a> () == 0);
+00193
+00194 <font class="comment">// if we can send the id instead of the string, "just do it" (c)nike!</font>
+00195 <font class="comment">//NLMISC::CStringIdArray::TStringId id = _SIDA-&gt;getId (name);</font>
+00196
+00197 <font class="comment">// PATCH: always send in full text</font>
+00198 <a class="code" href="classNLMISC_1_1CStringIdArray.html#s0">NLMISC::CStringIdArray::TStringId</a> <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a> = -1;
+00199
+00200 <font class="comment">// Force binary mode for header</font>
+00201 <font class="keywordtype">bool</font> msgmode = <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a>;
+00202 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = <font class="keyword">false</font>;
+00203
+00204 <font class="comment">// debug features, we number all packet to be sure that they are all sent and received</font>
+00205 <font class="comment">// \todo remove this debug feature when ok</font>
+00206 <font class="comment">// this value will be fill after in the callback function</font>
+00207 uint32 zeroValue = 123;
+00208 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (zeroValue);
+00209
+00210 <font class="keywordflow">if</font> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a> == -1)
+00211 {
+00212 uint8 <a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a> = <a class="code" href="message_8cpp.html#a0">FormatLong</a> | (msgmode &lt;&lt; 1);
+00213 <font class="comment">//nldebug( "OUT format = %hu", (uint16)format );</font>
+00214 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a>);
+00215
+00216 <font class="comment">// End of binary header</font>
+00217 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = msgmode;
+00218
+00219 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> ((std::string&amp;)name);
+00220 }
+00221 <font class="keywordflow">else</font>
+00222 {
+00223 uint8 <a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a> = <a class="code" href="message_8cpp.html#a1">FormatShort</a> | (msgmode &lt;&lt; 1);
+00224 <font class="comment">//nldebug( "OUT format = %hu", (uint16)format );</font>
+00225 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a>);
+00226
+00227 <font class="comment">// End of binary header</font>
+00228 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = msgmode;
+00229
+00230 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00231
+00232 <a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a> = <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>;
+00233 <a class="code" href="classNLNET_1_1CMessage.html#m0">TypeHasAnId</a> = <font class="keyword">true</font>;
+00234 }
+00235 <a class="code" href="classNLNET_1_1CMessage.html#o4">_HeaderSize</a> = <a class="code" href="classNLMISC_1_1CMemStream.html#a8">getPos</a> ();
+00236 }
+00237
+00238 <a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a> = <font class="keyword">true</font>;
+00239 }
+00240
+<a name="l00242"></a><a class="code" href="classNLNET_1_1CMessage.html#a7">00242</a> uint32 CMessage::getHeaderSize ()
+00243 {
+00244 <a class="code" href="debug_8h.html#a6">nlassert</a> (!<a class="code" href="classNLMISC_1_1IStream.html#a4">isReading</a> ());
+00245 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLNET_1_1CMessage.html#o4">_HeaderSize</a> != 0xFFFFFFFF);
+00246 <font class="keywordflow">return</font> <a class="code" href="classNLNET_1_1CMessage.html#o4">_HeaderSize</a>;
+00247 }
+00248
+00249 <font class="comment">// The message was filled with an CMemStream, Now, we'll get the message type on this buffer</font>
+<a name="l00250"></a><a class="code" href="classNLNET_1_1CMessage.html#a8">00250</a> <font class="keywordtype">void</font> CMessage::readType ()
+00251 {
+00252 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLMISC_1_1IStream.html#a4">isReading</a> ());
+00253
+00254 <font class="comment">// debug features, we number all packet to be sure that they are all sent and received</font>
+00255 <font class="comment">// \todo remove this debug feature when ok</font>
+00256
+00257 <font class="comment">// we remove the message from the message</font>
+00258 <font class="keyword">const</font> uint HeaderSize = 4;
+00259 <a class="code" href="classNLMISC_1_1CMemStream.html#a7">seek</a> (HeaderSize, <a class="code" href="classNLMISC_1_1IStream.html#s3s0">begin</a>);
+00260 <font class="comment">// uint32 zeroValue;</font>
+00261 <font class="comment">// serial (zeroValue);</font>
+00262
+00263 <font class="comment">// Force binary mode for header</font>
+00264 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = <font class="keyword">false</font>;
+00265
+00266 uint8 <a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a>;
+00267 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a>);
+00268 <font class="comment">//nldebug( "IN format = %hu", (uint16)format );</font>
+00269 <font class="keywordtype">bool</font> LongFormat = (<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a> &amp; 1);
+00270
+00271 <font class="comment">// Set mode for the following of the buffer</font>
+00272 <a class="code" href="classNLMISC_1_1CMemStream.html#n2">_StringMode</a> = (<a class="code" href="driver__opengl__extension__def_8h.html#a398">format</a> &gt;&gt; 1) &amp; 1;
+00273 <font class="keywordflow">if</font> (LongFormat)
+00274 {
+00275 std::string name;
+00276 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (name);
+00277 <a class="code" href="classNLNET_1_1CMessage.html#a5">setType</a> (name);
+00278 }
+00279 <font class="keywordflow">else</font>
+00280 {
+00281 <a class="code" href="classNLMISC_1_1CStringIdArray.html#s0">NLMISC::CStringIdArray::TStringId</a> <a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>;
+00282 <a class="code" href="classNLMISC_1_1CMemStream.html#a22">serial</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00283 <a class="code" href="classNLNET_1_1CMessage.html#a5">setType</a> (<a class="code" href="driver__opengl__extension__def_8h.html#a356">id</a>);
+00284 }
+00285 }
+00286
+00287 <font class="comment">// Returns true if the message type was already set</font>
+<a name="l00288"></a><a class="code" href="classNLNET_1_1CMessage.html#a9">00288</a> <font class="keywordtype">bool</font> CMessage::typeIsSet ()<font class="keyword"> const</font>
+00289 <font class="keyword"></font>{
+00290 <font class="keywordflow">return</font> <a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a>;
+00291 }
+00292
+00293 <font class="comment">// Clear the message. With this function, you can reuse a message to create another message</font>
+<a name="l00294"></a><a class="code" href="classNLNET_1_1CMessage.html#a11">00294</a> <font class="keywordtype">void</font> CMessage::clear ()
+00295 {
+00296 CMemStream::clear ();
+00297 <a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a> = <font class="keyword">false</font>;
+00298 }
+00299
+<a name="l00301"></a><a class="code" href="classNLNET_1_1CMessage.html#a12">00301</a> std::string <a class="code" href="zone__lighter_8cpp.html#a11">CMessage::getName</a> ()<font class="keyword"> const</font>
+00302 <font class="keyword"></font>{
+00303 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a> &amp;&amp; <a class="code" href="classNLNET_1_1CMessage.html#m1">TypeHasAName</a>);
+00304 <font class="keywordflow">return</font> <a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a>;
+00305 }
+00306
+<a name="l00308"></a><a class="code" href="classNLNET_1_1CMessage.html#a13">00308</a> <a class="code" href="classNLMISC_1_1CStringIdArray.html#s0">NLMISC::CStringIdArray::TStringId</a> CMessage::getId ()<font class="keyword"> const</font>
+00309 <font class="keyword"></font>{
+00310 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a> &amp;&amp; <a class="code" href="classNLNET_1_1CMessage.html#m0">TypeHasAnId</a>);
+00311 <font class="keywordflow">return</font> <a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a>;
+00312 }
+00313
+<a name="l00317"></a><a class="code" href="classNLNET_1_1CMessage.html#a14">00317</a> std::string CMessage::toString ()<font class="keyword"> const</font>
+00318 <font class="keyword"></font>{
+00319 <a class="code" href="debug_8h.html#a6">nlassert</a> (<a class="code" href="classNLNET_1_1CMessage.html#o0">_TypeSet</a>);
+00320 std::stringstream <a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a>;
+00321 <font class="keywordflow">if</font> (<a class="code" href="classNLNET_1_1CMessage.html#m1">TypeHasAName</a> &amp;&amp; <a class="code" href="classNLNET_1_1CMessage.html#m0">TypeHasAnId</a>) <a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a> &lt;&lt; <font class="stringliteral">"('"</font> &lt;&lt; <a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a> &lt;&lt; <font class="stringliteral">"',"</font> &lt;&lt; <a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a> &lt;&lt; <font class="stringliteral">")"</font>;
+00322 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (TypeHasAName) <a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a> &lt;&lt; <font class="stringliteral">"('"</font> &lt;&lt; <a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a> &lt;&lt; <font class="stringliteral">"',"</font> &lt;&lt; <a class="code" href="classNLNET_1_1CMessage.html#o1">_SIDA</a>-&gt;<a class="code" href="classNLMISC_1_1CStringIdArray.html#a3">getId</a> (<a class="code" href="classNLNET_1_1CMessage.html#o2">_Name</a>, <font class="keyword">true</font>) &lt;&lt; <font class="stringliteral">")"</font>;
+00323 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (TypeHasAnId) <a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a> &lt;&lt; <font class="stringliteral">"('"</font> &lt;&lt; <a class="code" href="classNLNET_1_1CMessage.html#o1">_SIDA</a>-&gt;<a class="code" href="classNLMISC_1_1CStringIdArray.html#a4">getString</a> (<a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a>) &lt;&lt; <font class="stringliteral">"',"</font> &lt;&lt; <a class="code" href="classNLNET_1_1CMessage.html#o3">_Id</a> &lt;&lt; <font class="stringliteral">"')"</font>;
+00324 <font class="keywordflow">return</font> <a class="code" href="driver__opengl__extension__def_8h.html#a383">s</a>.str();
+00325 }
+00326
+00327
+00328
+00329 }
+</pre></div>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>