aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a05379.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/a05379.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a05379.html')
-rw-r--r--docs/doxygen/nel/a05379.html11744
1 files changed, 11744 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a05379.html b/docs/doxygen/nel/a05379.html
new file mode 100644
index 00000000..f7bad428
--- /dev/null
+++ b/docs/doxygen/nel/a05379.html
@@ -0,0 +1,11744 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLNET Namespace Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLNET Namespace Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+This namespace contains all network class.
+<p>
+
+<p>
+<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02141.html">_CUniTime</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02193.html">CAlarm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02257.html">CBaseStruct</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html">CBufClient</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02300.html">CBufferizedOutPacket</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html">CBufNetBase</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02302.html">CBufServer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02303.html">CBufSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02305.html">CCallbackClient</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02306.html">CCallbackNetBase</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02307.html">CCallbackServer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html">CClientReceiveTask</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02443.html">CDummyTcpSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02601.html">CGraphUpdate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html">CInetAddress</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02769.html">CListenSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02770.html">CListenTask</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02826.html">CLoginClient</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02827.html">CLoginCookie</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02828.html">CLoginServer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02918.html">CMessage</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02921.html">CMessageRecorder</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02980.html">CNamingClient</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02981.html">CNamingClient::CServiceEntry</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02985.html">CNetDisplayer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02986.html">CNetLog</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02987.html">CNetManager</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02991.html">CNonBlockingBufSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03035.html">CPacsClient</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03077.html">CPendingUser</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03327.html">CRequest</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03365.html">CServerBufSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03366.html">CServerReceiveTask</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02771.html">CServerTask</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02444.html">CSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02445.html">CTcpSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03614.html">CTransportClass</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03627.html">CUdpSimSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03628.html">CUdpSock</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03632.html">CUnifiedNetwork</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03633.html">CUnifiedNetwork::CUnifiedConnection</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This may contains a <a class="el" href="a02305.html">CCallbackClient</a> or a TSockId, depending on which type of connection it is. </em> <a href="a03633.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03634.html">CUnifiedNetwork::CUnifiedConnection::TConnection</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The connection structure. </em> <a href="a03634.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03635.html">CUnifiedNetwork::TNameMappedConnection</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A map of service ids, referred by a service name. </em> <a href="a03635.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03771.html">EAccessDenied</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception raised when an unauthorized access has been done. </em> <a href="a03771.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03809.html">EServiceNotFound</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception raised when a the NS does not find the service looked-up. </em> <a href="a03809.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03810.html">ESocket</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03811.html">ESocketConnectionClosed</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception raised when a connection is gracefully closed by peer. </em> <a href="a03811.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03812.html">ESocketConnectionFailed</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exception raised when connect() fails. </em> <a href="a03812.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>class &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03876.html">IService</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03900.html">TCallbackItem</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback items. See CMsgSocket::update() for an explanation on how the callbacks are called. </em> <a href="a03900.html#_details">More...</a><em><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03909.html">TMessageRecord</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03917.html">TUnifiedCallbackItem</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback items. See CMsgSocket::update() for an explanation on how the callbacks are called. </em> <a href="a03917.html#_details">More...</a><em><br><br></td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::set&lt; <a class="el" href="a02303.html">TSockId</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a82">CConnections</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef CSynchronizedFIFO::CAccessor&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a79">CFifoAccessor</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accessor of mutexed FIFO buffer. <a href="#a79"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef NLMISC::CSynchronized&lt;<br>
+ <a class="el" href="a02301.html">NLMISC::CBufFIFO</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a78">CSynchronizedFIFO</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Synchronized FIFO buffer. <a href="#a78"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="a03880.html">NLMISC::IThread</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a81">CThreadPool</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a80">TBlockSize</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Size of a block. <a href="#a80"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a94">TBroadcastCallback</a> )(const std::string &amp;name, <a class="el" href="a05379.html#a93">TServiceId</a> sid, const std::vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a85">TDisconnectClientCallback</a> )(<a class="el" href="a04558.html#a11">uint32</a> userId)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function type called when a client need to be disconnected (double login...). <a href="#a85"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a83">TMsgCallback</a> )(<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a76">TNetCallback</a> )(<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function for message processing. <a href="#a76"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a95">TNetManagerCallback</a> )(const std::string &amp;serviceName, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function type for message processing. <a href="#a95"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a84">TNewClientCallback</a> )(<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, const <a class="el" href="a02827.html">CLoginCookie</a> &amp;cookie)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function type called when a new client is identified (with the login password procedure). <a href="#a84"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a73">TRemoteClientCallback</a> )(<a class="el" href="a04558.html#a11">uint32</a> rid, const std::string &amp;cmd, const std::string &amp;entityNames)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a93">TServiceId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="a02303.html">CBufSock</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a74">TSockId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Socket identifier. <a href="#a74"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::pair&lt; <a class="el" href="a05379.html#a76">TNetCallback</a>,<br>
+ <a class="el" href="a02303.html">TSockId</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a77">TStoredNetCallback</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Storing a TNetCallback call for future call. <a href="#a77"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a98">TUnifiedMsgCallback</a> )(<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a97">TUnifiedNetCallback</a> )(const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid, void *arg)</td></tr>
+
+<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a225">TNetworkEvent</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a05379.html#a225a86">Sending</a>,
+<a class="el" href="a05379.html#a225a87">Receiving</a>,
+<a class="el" href="a05379.html#a225a88">Connecting</a>,
+<a class="el" href="a05379.html#a225a89">ConnFailing</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a05379.html#a225a90">Accepting</a>,
+<a class="el" href="a05379.html#a225a91">Disconnecting</a>,
+<a class="el" href="a05379.html#a225a92">Error</a>
+<br>
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type of network events (if changed, don't forget to change EventToString() and StringToEvent(). <a href="#a225">More...</a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a222">addRequestAnswer</a> (<a class="el" href="a04558.html#a11">uint32</a> rid, const std::vector&lt; std::string &gt; &amp;variables, const std::vector&lt; std::string &gt; &amp;values)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a109">addRequestAnswer</a> (<a class="el" href="a04558.html#a11">uint32</a> rid, const vector&lt; string &gt; &amp;variables, const vector&lt; string &gt; &amp;values)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a107">addRequestWaitingNb</a> (<a class="el" href="a04558.html#a11">uint32</a> rid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03646.html">CVariable</a>&lt; bool &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a170">Bench</a> ("Bench","1 if benching 0 if not", 0, true)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a102">cbAdminPing</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a104">cbAESConnection</a> (const string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a105">cbAESDisconnection</a> (const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a219">cbClientGetUniversalTime</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a127">cbcMessageRecvAllAssociations</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a175">cbDirectoryChanged</a> (<a class="el" href="a03648.html">IVariable</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a101">cbExecCommand</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a178">cbExecuteCommands</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a217">cbGetUniversalTime</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a99">cbInfo</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a177">cbLogFilter</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a129">cbnbMessageAskAssociations</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a128">cbnbMessageRecvAssociations</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a130">cbnbNewDisconnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *<a class="el" href="a04223.html#a637">data</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a224">cbPacsAnswer</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a160">cbQueryPort</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a176">cbReceiveShardId</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> serviceId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a159">cbRegister</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a161">cbRegisterBroadcast</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a218">cbServerAskUniversalTime</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a100">cbServGetView</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a141">cbShardValidate</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a146">cbShardValidation</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a198">cbSimVar</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a131">cbsNewConnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *<a class="el" href="a04223.html#a637">data</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a103">cbStopService</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a194">cbTCReceiveMessage</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const string &amp;name, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a195">cbTCReceiveOtherSideClass</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const string &amp;name, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a196">cbTCUpService</a> (const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a162">cbUnregisterBroadcast</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a144">cbWSChooseShard</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a145">cbWSDisconnectClient</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a151">cfcbAcceptInvalidCookie</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a150">cfcbDefaultUserPriv</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a149">cfcbListenAddress</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a152">cfcbTimeBeforeEraseCookie</a> (<a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a111">cleanRequest</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a147">ClientConnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a205">createMessage</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgout, const vector&lt; string &gt; &amp;args, CLog &amp;log)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a110">emptyRequest</a> (<a class="el" href="a04558.html#a11">uint32</a> rid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a157">EventToString</a> (<a class="el" href="a05379.html#a225">TNetworkEvent</a> e)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TNetworkEvent -&gt; string. <a href="#a157"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a197">getNameOfMessageOrTransportClass</a> (<a class="el" href="a02918.html">NLNET::CMessage</a> &amp;msgin, std::string &amp;msgName)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a115">initAdmin</a> (bool dontUseAES)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a174">initSignal</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a140">internalIPAddressToString</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take an internal address and convert it to a internet dot string. <a href="#a140"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a112">isRemoteCommand</a> (string &amp;str)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03646.html">CVariable</a>&lt; <a class="el" href="a04558.html#a10">sint32</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a169">NetSpeedLoop</a> ("NetSpeedLoop","duration of the last user loop(<a class="el" href="a04223.html#a647">in</a> ms)", 10, false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>NLMISC::CMutex&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a125">nettrace_mutex</a> ("nettrace_mutex")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a216">NLMISC_COMMAND</a> (isServiceLocal,"Says if a service is local or not compare with this service","&lt; sid &gt;|&lt; service name &gt;")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a215">NLMISC_COMMAND</a> (l5Callback,"Displays all callback registered <a class="el" href="a04223.html#a647">in</a> layer5","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a214">NLMISC_COMMAND</a> (l5InternalTables,"Displays internal table of network layer5","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a213">NLMISC_COMMAND</a> (l5QueuesStats,"Displays queues stats of network layer5","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a212">NLMISC_COMMAND</a> (msgout,"Send a message to a specified service(ex:msgout 128 REGISTER u32 10 b 1 f 1.5)","&lt; ServiceName &gt;|&lt; ServiceId &gt;&lt; MessageName &gt;[&lt; ParamType &gt;&lt; Param &gt;]*")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a211">NLMISC_COMMAND</a> (msgin,"Simulate an input message <a class="el" href="a04113.html#a70">from</a> another service(ex:msgin 128 REGISTER u32 10 b 1 f 1.5)","&lt; ServiceName &gt;|&lt; ServiceId &gt;&lt; MessageName &gt;[&lt; ParamType &gt;&lt; Param &gt;]*")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a191">NLMISC_COMMAND</a> (getUnknownConfigFileVariables,"display the variables <a class="el" href="a04113.html#a70">from</a> config <a class="el" href="a04115.html#a95">file</a> that are called but not present","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a190">NLMISC_COMMAND</a> (displayConfigFile,"display the variables of the default configfile","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a189">NLMISC_COMMAND</a> (getWinDisplayerInfo,"display the info about the pos and <a class="el" href="a04223.html#a587">size</a> of the window displayer","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a188">NLMISC_COMMAND</a> (resetMeasures,"reset hierarchical timer","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a187">NLMISC_COMMAND</a> (serviceInfo,"display information about this service","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a186">NLMISC_COMMAND</a> (brutalQuit,"exit the service brutally","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a185">NLMISC_COMMAND</a> (quit,"exit the service","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a163">NLMISC_COMMAND</a> (services,"displays registered services","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a154">NLMISC_COMMAND</a> (lsPending,"displays the <a class="el" href="a03889.html">list</a> of all pending users","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a153">NLMISC_COMMAND</a> (lsUsers,"displays the <a class="el" href="a03889.html">list</a> of all connected users","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a119">NLMISC_COMMAND</a> (getView,"send a view and receive an array as result","&lt; varpath &gt;")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a118">NLMISC_COMMAND</a> (displayInformations,"displays all admin informations","")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a210">NLMISC_DYNVARIABLE</a> (<a class="el" href="a04558.html#a13">uint64</a>, SentBytes,"total of bytes sent by this service")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a209">NLMISC_DYNVARIABLE</a> (<a class="el" href="a04558.html#a13">uint64</a>, ReceivedBytes,"total of bytes received by this service")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a208">NLMISC_DYNVARIABLE</a> (<a class="el" href="a04558.html#a13">uint64</a>, ReceiveQueueSize,"current <a class="el" href="a04223.html#a587">size</a> <a class="el" href="a04223.html#a647">in</a> bytes of all receive queues")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a207">NLMISC_DYNVARIABLE</a> (<a class="el" href="a04558.html#a13">uint64</a>, SendQueueSize,"current <a class="el" href="a04223.html#a587">size</a> <a class="el" href="a04223.html#a647">in</a> bytes of all send queues")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a192">NLMISC_DYNVARIABLE</a> (string, State,"Set this <a class="el" href="a04223.html#a658">value</a> to 0 to shutdown the service and 1 to start the service")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a184">NLMISC_DYNVARIABLE</a> (string, Scroller,"current <a class="el" href="a04223.html#a587">size</a> <a class="el" href="a04223.html#a647">in</a> bytes of the sent queue <a class="el" href="a04223.html#a587">size</a>")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a180">NLMISC_DYNVARIABLE</a> (string, Uptime,"time <a class="el" href="a04113.html#a70">from</a> the launching of the <a class="el" href="a04223.html#a568">program</a>")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a179">NLMISC_DYNVARIABLE</a> (string, <a class="el" href="a05379.html#a53">LaunchingDate</a>,"date of the launching of the <a class="el" href="a04223.html#a568">program</a>")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a155">NLMISC_DYNVARIABLE</a> (string, LSListenAddress,"the listen <a class="el" href="a04223.html#a569">address</a> sended to the client to connect on this front_end")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a206">NLMISC_VARIABLE</a> (<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a05379.html#a64">TotalCallbackCalled</a>,"Total callback called number on layer 5")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a183">NLMISC_VARIABLE</a> (<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a05379.html#a54">NbUserUpdate</a>,"number of time the user IService::update() called")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a182">NLMISC_VARIABLE</a> (string, <a class="el" href="a05379.html#a55">CompilationMode</a>,"mode of the compilation")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a181">NLMISC_VARIABLE</a> (string, <a class="el" href="a05379.html#a52">CompilationDate</a>,"date of the compilation")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a156">NLMISC_VARIABLE</a> (string, <a class="el" href="a05379.html#a24">DefaultUserPriv</a>,"Default User priv for people who don'<a class="el" href="a04223.html#a627">t</a> use the login system")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a124">NLMISC_VARIABLE</a> (<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a05379.html#a10">NbServerReceiveTask</a>,"Number of server receive thread")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a123">NLMISC_VARIABLE</a> (<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a05379.html#a9">NbServerListenTask</a>,"Number of server listen thread")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a122">NLMISC_VARIABLE</a> (<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a05379.html#a8">NbNetworkTask</a>,"Number of server and client thread")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a121">NLMISC_VARIABLE</a> (<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a05379.html#a7">NbClientReceiveTask</a>,"Number of client receive thread")</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a164">nmNewConnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a165">nmNewDisconnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a137">operator&lt;</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;a1, const <a class="el" href="a02665.html">CInetAddress</a> &amp;a2)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a142">operator==</a> (const <a class="el" href="a02827.html">CLoginCookie</a> &amp;c1, const <a class="el" href="a02827.html">CLoginCookie</a> &amp;c2)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a136">operator==</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;a1, const <a class="el" href="a02665.html">CInetAddress</a> &amp;a2)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a143">refreshPendingList</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a166">RegistrationBroadcast</a> (const std::string &amp;name, <a class="el" href="a05379.html#a93">TServiceId</a> sid, const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a114">sendAdminEmail</a> (char *<a class="el" href="a04223.html#a641">format</a>,...)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a223">sendEmail</a> (const std::string &amp;smtpServer, const std::string &amp;<a class="el" href="a04113.html#a70">from</a>, const std::string &amp;to, const std::string &amp;subject, const std::string &amp;body, const std::string &amp;attachedFile="", bool onlyCheck=false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a134">sendEmail</a> (const string &amp;smtpServer, const string &amp;<a class="el" href="a04113.html#a70">from</a>, const string &amp;to, const string &amp;subject, const string &amp;body, const string &amp;attachedFile, bool onlyCheck)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a133">sendEMailCommand</a> (<a class="el" href="a02445.html">CTcpSock</a> &amp;sock, const std::string &amp;command, <a class="el" href="a04558.html#a11">uint32</a> code=250)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a221">serviceGetView</a> (<a class="el" href="a04558.html#a11">uint32</a> rid, const std::string &amp;rawvarpath, std::vector&lt; std::pair&lt; std::vector&lt; std::string &gt;, std::vector&lt; std::string &gt; &gt; &gt; &amp;answer, bool async=false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a113">serviceGetView</a> (<a class="el" href="a04558.html#a11">uint32</a> rid, const string &amp;rawvarpath, vector&lt; pair&lt; vector&lt; string &gt;, vector&lt; string &gt; &gt; &gt; &amp;answer, bool async)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a135">setDefaultEmailParams</a> (const std::string &amp;smtpServer, const std::string &amp;<a class="el" href="a04113.html#a70">from</a>, const std::string &amp;to)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a220">setInformations</a> (const std::vector&lt; std::string &gt; &amp;alarms, const std::vector&lt; std::string &gt; &amp;graphupdate)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a117">setInformations</a> (const vector&lt; string &gt; &amp;alarms, const vector&lt; string &gt; &amp;graphupdate)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a148">setListenAddress</a> (const string &amp;la)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a106">setRemoteClientCallback</a> (<a class="el" href="a05379.html#a73">TRemoteClientCallback</a> cb)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a173">sigHandler</a> (int Sig)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a126">stringFromVectorPart</a> (const vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;<a class="el" href="a04223.html#a576">v</a>, <a class="el" href="a04558.html#a11">uint32</a> pos, <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="a05379.html#a225">TNetworkEvent</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a158">StringToEvent</a> (string &amp;<a class="el" href="a04223.html#a626">s</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">string -&gt; TNetworkEvent <a href="#a158"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a139">stringToInternalIPAddress</a> (const std::string &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Take a internet dot string and convert it in an uint32 internal format for example "128.64.32.16" -&gt; 0xF0804020. <a href="#a139"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a108">subRequestWaitingNb</a> (<a class="el" href="a04558.html#a11">uint32</a> rid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a193">typeToString</a> (<a class="el" href="a03614.html#NLNET_1_1CTransportClassw15">CTransportClass::TProp</a> <a class="el" href="a04223.html#a581">type</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a201">uncbConnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a202">uncbDisconnection</a> (<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a204">uncbMsgProcessing</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a203">uncbServiceIdentification</a> (<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a199">uNetRegistrationBroadcast</a> (const string &amp;name, <a class="el" href="a05379.html#a93">TServiceId</a> sid, const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a200">uNetUnregistrationBroadcast</a> (const string &amp;name, <a class="el" href="a05379.html#a93">TServiceId</a> sid, const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a167">UnregistrationBroadcast</a> (const std::string &amp;name, <a class="el" href="a05379.html#a93">TServiceId</a> sid, const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a116">updateAdmin</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03646.html">CVariable</a>&lt; <a class="el" href="a04558.html#a11">uint32</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a172">UpdateAssertionThreadTimeout</a> ("UpdateAssertionThreadTimeout","<a class="el" href="a04223.html#a647">in</a> millisecond, timeout before thread assertion", 0, 0, true, UpdateAssertionThreadTimeoutCB)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a171">UpdateAssertionThreadTimeoutCB</a> (<a class="el" href="a03648.html">IVariable</a> &amp;var)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a120">updateStatCounter</a> (<a class="el" href="a04558.html#a13">uint64</a> &amp;counter, <a class="el" href="a04558.html#a13">uint64</a> newvalue)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03646.html">CVariable</a>&lt; <a class="el" href="a04558.html#a10">sint32</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a168">UserSpeedLoop</a> ("UserSpeedLoop","duration of the last network loop(<a class="el" href="a04223.html#a647">in</a> ms)", 10, false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a132">uuencode</a> (const char *<a class="el" href="a04223.html#a626">s</a>, const char *store, const int length)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a138">vectorCInetAddressToString</a> (const std::vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;addrs)</td></tr>
+
+<tr><td colspan=2><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a94">TBroadcastCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a33">_RegistrationBroadcastCallback</a> = NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a94">TBroadcastCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a34">_UnregistrationBroadcastCallback</a> = NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a23">AcceptInvalidCookie</a> = false</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a3">AlarmCheckDelay</a> = 5</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>vector&lt; <a class="el" href="a02193.html">CAlarm</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a1">Alarms</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a65">allstuffs</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a63">AppIdDeadConnection</a> = 0xDEAD</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a60">buffer</a> [10000]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>queue&lt; <a class="el" href="a02300.html">CBufferizedOutPacket</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a59">BufferizedInPackets</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>queue&lt; <a class="el" href="a02300.html">CBufferizedOutPacket</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a58">BufferizedOutPackets</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03917.html">TUnifiedCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a57">builtinServiceCallbacks</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03917.html">TUnifiedCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a6">CallbackArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a12">cbnbMessageAssociationArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a31">ClientCallbackArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a11">ClientMessageAssociationArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02985.html">CNetDisplayer</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a51">commandDisplayer</a> (false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a52">CompilationDate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a55">CompilationMode</a> = "???"</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a14">DefaultFrom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a13">DefaultSMTPServer</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a15">DefaultTo</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a24">DefaultUserPriv</a> = ""</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a85">TDisconnectClientCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a25">DisconnectClientCallback</a> = NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03917.html">TUnifiedCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a47">EmptyCallbackArray</a> [1] = { { "", NULL } }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a48">ExitSignalAsked</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02525.html">CFileDisplayer</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a50">fd</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a19">FESCallbackArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a71">GetClientUniversalTime</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>TTime&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a72">GetClientUniversalTimeUniTime</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a67">GetUniversalTime</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a68">GetUniversalTimeSecondsSince1970</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>TTime&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a69">GetUniversalTimeUniTime</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>vector&lt; <a class="el" href="a02601.html">CGraphUpdate</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a2">GraphUpdates</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02303.html">TSockId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a75">InvalidSockId</a> = (<a class="el" href="a02303.html">TSockId</a>) NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a53">LaunchingDate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a22">ListenAddr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a32">LockedSubMessageError</a> = "a sub message is forbidden"</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a8">sint16</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a42">LOG_CBINDEX</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a26">ModeTcp</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03537.html">CTimeoutAssertionThread</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a56">MyTAT</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a41">NamingClientCallbackArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a7">NbClientReceiveTask</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a8">NbNetworkTask</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a9">NbServerListenTask</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a10">NbServerReceiveTask</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a54">NbUserUpdate</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a46">NegFiltersNames</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02986.html">CNetLog</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a43">NetLog</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a84">TNewClientCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a29">NewClientCallback</a> = NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a96">PacsCallbackArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03889.html">list</a>&lt; <a class="el" href="a03077.html">CPendingUser</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a20">PendingUsers</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a39">QueryPort</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a40">QueryPortPort</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a38">Reason</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a35">Registered</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a93">TServiceId</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a37">RegisteredSID</a> = NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a36">RegisteredSuccess</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a73">TRemoteClientCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a0">RemoteClientCallback</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>vector&lt; <a class="el" href="a03327.html">CRequest</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a4">Requests</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a5">RequestTimeout</a> = 4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02307.html">CCallbackServer</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a21">Server</a> = NULL</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a70">ServerTimeServiceCallbackArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a17">ShardValidate</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a18">ShardValidateReason</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a44">Signal</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a49">SignalisedThread</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a45">SignalName</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a16">tbl</a> [65]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>CLog&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a61">test</a> (CLog::LOG_INFO)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a62">ThreadCreator</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a27">TimeBeforeEraseCookie</a> = 120</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a64">TotalCallbackCalled</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03900.html">TCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a66">unServerCbArray</a> []</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>map&lt; <a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a02303.html">TSockId</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a28">UserIdSockAssociations</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">contains the correspondance between userid and the sockid <a href="#a28"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03917.html">TUnifiedCallbackItem</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05379.html#a30">WSCallbackArray</a> []</td></tr>
+
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="a82" doxytag="NLNET::CConnections" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::set&lt;<a class="el" href="a02303.html">TSockId</a>&gt; <a class="el" href="a05379.html#a82">NLNET::CConnections</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05513.html#l00382">382</a> of file <a class="el" href="a05513.html">buf_server.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a79" doxytag="NLNET::CFifoAccessor" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef CSynchronizedFIFO::CAccessor <a class="el" href="a05379.html#a79">NLNET::CFifoAccessor</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Accessor of mutexed FIFO buffer.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00056">56</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, <a class="el" href="a05506.html#l00140">NLNET::CBufClient::dataAvailable()</a>, <a class="el" href="a05506.html#l00318">NLNET::CBufClient::disconnect()</a>, <a class="el" href="a05511.html#l00094">NLNET::CBufNetBase::displayReceiveQueueStat()</a>, <a class="el" href="a05511.html#l00088">NLNET::CBufNetBase::getReceiveQueueSize()</a>, <a class="el" href="a05511.html#l00164">NLNET::CBufNetBase::pushMessageIntoReceiveQueue()</a>, <a class="el" href="a05512.html#l00565">NLNET::CBufServer::receive()</a>, <a class="el" href="a05506.html#l00272">NLNET::CBufClient::receive()</a>, and <a class="el" href="a05512.html#l00987">NLNET::CServerReceiveTask::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a78" doxytag="NLNET::CSynchronizedFIFO" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef NLMISC::CSynchronized&lt;<a class="el" href="a02301.html">NLMISC::CBufFIFO</a>&gt; <a class="el" href="a05379.html#a78">NLNET::CSynchronizedFIFO</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Synchronized FIFO buffer.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00053">53</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+Referenced by <a class="el" href="a05511.html#l00154">NLNET::CBufNetBase::receiveQueue()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a81" doxytag="NLNET::CThreadPool" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="a03880.html">NLMISC::IThread</a>*&gt; <a class="el" href="a05379.html#a81">NLNET::CThreadPool</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05513.html#l00115">115</a> of file <a class="el" href="a05513.html">buf_server.h</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00958">NLNET::CBufServer::addNewThread()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a80" doxytag="NLNET::TBlockSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a05379.html#a80">NLNET::TBlockSize</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Size of a block.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00059">59</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+Referenced by <a class="el" href="a05514.html#l00137">NLNET::CBufSock::flush()</a>, <a class="el" href="a05513.html#l00298">NLNET::CBufServer::pushBufferToHost()</a>, <a class="el" href="a05512.html#l00565">NLNET::CBufServer::receive()</a>, and <a class="el" href="a05514.html#l00386">NLNET::CNonBlockingBufSock::receivePart()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a94" doxytag="NLNET::TBroadcastCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a94">NLNET::TBroadcastCallback</a>)(const std::string &amp;name, <a class="el" href="a05379.html#a93">TServiceId</a> sid, const std::vector&lt;<a class="el" href="a02665.html">CInetAddress</a>&gt; &amp;<a class="el" href="a04223.html#a657">addr</a>)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06090.html#l00044">44</a> of file <a class="el" href="a06090.html">naming_client.h</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00066">NLNET::CNamingClient::setRegistrationBroadcastCallback()</a>, and <a class="el" href="a06089.html#l00071">NLNET::CNamingClient::setUnregistrationBroadcastCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a85" doxytag="NLNET::TDisconnectClientCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a85">NLNET::TDisconnectClientCallback</a>)(<a class="el" href="a04558.html#a11">uint32</a> userId)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function type called when a client need to be disconnected (double login...).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05963.html#l00050">50</a> of file <a class="el" href="a05963.html">login_server.h</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00353">NLNET::CLoginServer::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a83" doxytag="NLNET::TMsgCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a83">NLNET::TMsgCallback</a>)(<a class="el" href="a02918.html">CMessage</a> &amp;msgin, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, <a class="el" href="a02306.html">CCallbackNetBase</a> &amp;netbase)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function type for message processing<p>
+msgin contains parameters of the message from is the SockId of the connection, for a client, from is always the same value
+<p>
+Definition at line <a class="el" href="a05527.html#l00055">55</a> of file <a class="el" href="a05527.html">callback_net_base.h</a>.
+<p>
+Referenced by <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>, and <a class="el" href="a05527.html#l00110">NLNET::CCallbackNetBase::setDefaultCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a76" doxytag="NLNET::TNetCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a76">NLNET::TNetCallback</a>)( <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg )
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function for message processing.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00047">47</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+Referenced by <a class="el" href="a05513.html#l00311">NLNET::CBufServer::connectionCallback()</a>, <a class="el" href="a05511.html#l00157">NLNET::CBufNetBase::disconnectionCallback()</a>, <a class="el" href="a05529.html#l00061">NLNET::CCallbackServer::setConnectionCallback()</a>, <a class="el" href="a05513.html#l00184">NLNET::CBufServer::setConnectionCallback()</a>, <a class="el" href="a05529.html#l00064">NLNET::CCallbackServer::setDisconnectionCallback()</a>, <a class="el" href="a05527.html#l00113">NLNET::CCallbackNetBase::setDisconnectionCallback()</a>, <a class="el" href="a05525.html#l00080">NLNET::CCallbackClient::setDisconnectionCallback()</a>, and <a class="el" href="a05511.html#l00085">NLNET::CBufNetBase::setDisconnectionCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a95" doxytag="NLNET::TNetManagerCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a95">NLNET::TNetManagerCallback</a>)(const std::string &amp;serviceName, <a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, void *arg)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function type for message processing.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06099.html#l00052">52</a> of file <a class="el" href="a06099.html">net_manager.h</a>.
+<p>
+Referenced by <a class="el" href="a06098.html#l00472">NLNET::CNetManager::setConnectionCallback()</a>, and <a class="el" href="a06098.html#l00480">NLNET::CNetManager::setDisconnectionCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a84" doxytag="NLNET::TNewClientCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a84">NLNET::TNewClientCallback</a>)(<a class="el" href="a02303.html">TSockId</a> <a class="el" href="a04113.html#a70">from</a>, const <a class="el" href="a02827.html">CLoginCookie</a> &amp;cookie)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function type called when a new client is identified (with the login password procedure).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05963.html#l00047">47</a> of file <a class="el" href="a05963.html">login_server.h</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a73" doxytag="NLNET::TRemoteClientCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a73">NLNET::TRemoteClientCallback</a>)(<a class="el" href="a04558.html#a11">uint32</a> rid, const std::string &amp;cmd, const std::string &amp;entityNames)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05392.html#l00066">66</a> of file <a class="el" href="a05392.html">admin.h</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00211">setRemoteClientCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a93" doxytag="NLNET::TServiceId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef <a class="el" href="a04558.html#a7">uint8</a> <a class="el" href="a05379.html#a93">NLNET::TServiceId</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06090.html#l00042">42</a> of file <a class="el" href="a06090.html">naming_client.h</a>.
+<p>
+Referenced by <a class="el" href="a06098.html#l00201">NLNET::CNetManager::addServer()</a>, <a class="el" href="a06089.html#l00119">cbRegisterBroadcast()</a>, <a class="el" href="a06089.html#l00178">cbUnregisterBroadcast()</a>, <a class="el" href="a06090.html#l00063">NLNET::CNamingClient::CServiceEntry::CServiceEntry()</a>, <a class="el" href="a06090.html#l00220">NLNET::CNamingClient::find()</a>, <a class="el" href="a06365.html#l00215">NLNET::IService::getServiceId()</a>, <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>, <a class="el" href="a06089.html#l00448">NLNET::CNamingClient::lookup()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>, <a class="el" href="a06098.html#l00131">RegistrationBroadcast()</a>, <a class="el" href="a06089.html#l00373">NLNET::CNamingClient::resendRegisteration()</a>, <a class="el" href="a06645.html#l00058">uNetRegistrationBroadcast()</a>, <a class="el" href="a06645.html#l00100">uNetUnregistrationBroadcast()</a>, <a class="el" href="a06089.html#l00398">NLNET::CNamingClient::unregisterAllServices()</a>, <a class="el" href="a06089.html#l00385">NLNET::CNamingClient::unregisterService()</a>, and <a class="el" href="a06098.html#l00164">UnregistrationBroadcast()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a74" doxytag="NLNET::TSockId" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef <a class="el" href="a02303.html">CBufSock</a>* <a class="el" href="a02303.html">NLNET::TSockId</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Socket identifier.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00042">42</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+Referenced by <a class="el" href="a05513.html#l00432">NLNET::CServerReceiveTask::addNewSocket()</a>, <a class="el" href="a05513.html#l00449">NLNET::CServerReceiveTask::addToRemoveSet()</a>, <a class="el" href="a05515.html#l00120">NLNET::CBufSock::advertiseDisconnection()</a>, <a class="el" href="a05515.html#l00135">NLNET::CBufSock::advertiseSystemEvent()</a>, <a class="el" href="a05526.html#l00471">NLNET::CCallbackNetBase::authorizeOnly()</a>, <a class="el" href="a06650.html#l00296">cbClientGetUniversalTime()</a>, <a class="el" href="a05524.html#l00043">cbcMessageRecvAllAssociations()</a>, <a class="el" href="a06650.html#l00139">cbGetUniversalTime()</a>, <a class="el" href="a05526.html#l00088">cbnbMessageAskAssociations()</a>, <a class="el" href="a05526.html#l00055">cbnbMessageRecvAssociations()</a>, <a class="el" href="a05526.html#l00127">cbnbNewDisconnection()</a>, <a class="el" href="a06138.html#l00495">cbPacsAnswer()</a>, <a class="el" href="a06089.html#l00109">cbQueryPort()</a>, <a class="el" href="a06089.html#l00085">cbRegister()</a>, <a class="el" href="a06089.html#l00119">cbRegisterBroadcast()</a>, <a class="el" href="a06650.html#l00262">cbServerAskUniversalTime()</a>, <a class="el" href="a05958.html#l00048">cbShardValidate()</a>, <a class="el" href="a05962.html#l00181">cbShardValidation()</a>, <a class="el" href="a05528.html#l00045">cbsNewConnection()</a>, <a class="el" href="a06089.html#l00178">cbUnregisterBroadcast()</a>, <a class="el" href="a05512.html#l01191">NLNET::CServerReceiveTask::clearClosedConnections()</a>, <a class="el" href="a05962.html#l00230">ClientConnection()</a>, <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, <a class="el" href="a05528.html#l00246">NLNET::CCallbackServer::disconnect()</a>, <a class="el" href="a05527.html#l00138">NLNET::CCallbackNetBase::disconnect()</a>, <a class="el" href="a05524.html#l00354">NLNET::CCallbackClient::disconnect()</a>, <a class="el" href="a05512.html#l00251">NLNET::CBufServer::disconnect()</a>, <a class="el" href="a05529.html#l00086">NLNET::CCallbackServer::displaySendQueueStat()</a>, <a class="el" href="a05525.html#l00089">NLNET::CCallbackClient::displaySendQueueStat()</a>, <a class="el" href="a05512.html#l00713">NLNET::CBufServer::displaySendQueueStat()</a>, <a class="el" href="a05515.html#l00368">NLNET::CServerBufSock::fillSockIdAndEventType()</a>, <a class="el" href="a05529.html#l00055">NLNET::CCallbackServer::flush()</a>, <a class="el" href="a05524.html#l00134">NLNET::CCallbackClient::flush()</a>, <a class="el" href="a05513.html#l00232">NLNET::CBufServer::flush()</a>, <a class="el" href="a06645.html#l01335">NLNET::CUnifiedNetwork::getNetBase()</a>, <a class="el" href="a05512.html#l00660">NLNET::CBufServer::getSendQueueSize()</a>, <a class="el" href="a05528.html#l00268">NLNET::CCallbackServer::getSockId()</a>, <a class="el" href="a05524.html#l00272">NLNET::CCallbackClient::getSockId()</a>, <a class="el" href="a05529.html#l00077">NLNET::CCallbackServer::hostAddress()</a>, <a class="el" href="a05526.html#l00443">NLNET::CCallbackNetBase::hostAddress()</a>, <a class="el" href="a05525.html#l00071">NLNET::CCallbackClient::hostAddress()</a>, <a class="el" href="a05513.html#l00241">NLNET::CBufServer::hostAddress()</a>, <a class="el" href="a05507.html#l00198">NLNET::CBufClient::id()</a>, <a class="el" href="a06645.html#l02048">NLMISC_COMMAND()</a>, <a class="el" href="a06098.html#l00062">nmNewConnection()</a>, <a class="el" href="a06098.html#l00074">nmNewDisconnection()</a>, <a class="el" href="a05526.html#l00223">NLNET::CCallbackNetBase::processOneMessage()</a>, <a class="el" href="a05513.html#l00298">NLNET::CBufServer::pushBufferToHost()</a>, <a class="el" href="a05528.html#l00205">NLNET::CCallbackServer::receive()</a>, <a class="el" href="a05524.html#l00220">NLNET::CCallbackClient::receive()</a>, <a class="el" href="a05512.html#l00565">NLNET::CBufServer::receive()</a>, <a class="el" href="a06028.html#l00141">NLNET::CMessageRecorder::recordNext()</a>, <a class="el" href="a05512.html#l00987">NLNET::CServerReceiveTask::run()</a>, <a class="el" href="a06098.html#l00455">NLNET::CNetManager::send()</a>, <a class="el" href="a05528.html#l00124">NLNET::CCallbackServer::send()</a>, <a class="el" href="a05524.html#l00079">NLNET::CCallbackClient::send()</a>, <a class="el" href="a05512.html#l00299">NLNET::CBufServer::send()</a>, <a class="el" href="a05528.html#l00091">NLNET::CCallbackServer::sendAllMyAssociations()</a>, <a class="el" href="a05513.html#l00226">NLNET::CBufServer::setSizeFlushTrigger()</a>, <a class="el" href="a05513.html#l00221">NLNET::CBufServer::setTimeFlushTrigger()</a>, <a class="el" href="a05507.html#l00059">NLNET::CClientReceiveTask::sockId()</a>, <a class="el" href="a06646.html#l00272">NLNET::CUnifiedNetwork::CUnifiedConnection::TConnection::TConnection()</a>, <a class="el" href="a06029.html#l00068">NLNET::TMessageRecord::TMessageRecord()</a>, <a class="el" href="a06645.html#l00172">uncbConnection()</a>, <a class="el" href="a06645.html#l00179">uncbDisconnection()</a>, <a class="el" href="a06645.html#l00406">uncbMsgProcessing()</a>, and <a class="el" href="a06645.html#l00284">uncbServiceIdentification()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a77" doxytag="NLNET::TStoredNetCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::pair&lt;<a class="el" href="a05379.html#a76">TNetCallback</a>,<a class="el" href="a02303.html">TSockId</a>&gt; <a class="el" href="a05379.html#a77">NLNET::TStoredNetCallback</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Storing a TNetCallback call for future call.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00050">50</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a98" doxytag="NLNET::TUnifiedMsgCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a98">NLNET::TUnifiedMsgCallback</a>)(<a class="el" href="a02918.html">CMessage</a> &amp;msgin, const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function type for message processing <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>msgin</em>&nbsp;</td><td>message received </td></tr>
+ <tr><td valign=top><em>serviceName</em>&nbsp;</td><td>name of the service that sent the message </td></tr>
+ <tr><td valign=top><em>sid</em>&nbsp;</td><td>id of the service that sent the message </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06646.html#l00052">52</a> of file <a class="el" href="a06646.html">unified_network.h</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01393">NLNET::CUnifiedNetwork::findCallback()</a>, and <a class="el" href="a06645.html#l01983">NLMISC_COMMAND()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a97" doxytag="NLNET::TUnifiedNetCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="a05379.html#a97">NLNET::TUnifiedNetCallback</a>)(const std::string &amp;serviceName, <a class="el" href="a04558.html#a9">uint16</a> sid, void *arg)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Callback function type for service up/down processing <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>serviceName</em>&nbsp;</td><td>name of the service that is un/registered to the naming service </td></tr>
+ <tr><td valign=top><em>arg</em>&nbsp;</td><td>a pointer initialized by the user </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06646.html#l00045">45</a> of file <a class="el" href="a06646.html">unified_network.h</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01797">NLNET::CUnifiedNetwork::callServiceDownCallback()</a>, <a class="el" href="a06645.html#l01768">NLNET::CUnifiedNetwork::callServiceUpCallback()</a>, <a class="el" href="a06645.html#l01216">NLNET::CUnifiedNetwork::setServiceDownCallback()</a>, and <a class="el" href="a06645.html#l01197">NLNET::CUnifiedNetwork::setServiceUpCallback()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Enumeration Type Documentation</h2>
+<a class="anchor" name="a225" doxytag="NLNET::TNetworkEvent" ></a><p>
+<table class="mdTable" 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="a05379.html#a225">NLNET::TNetworkEvent</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Type of network events (if changed, don't forget to change <a class="el" href="a05379.html#a157">EventToString()</a> and <a class="el" href="a05379.html#a158">StringToEvent()</a>.
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="a225a86" doxytag="Sending" ></a>Sending</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="a225a87" doxytag="Receiving" ></a>Receiving</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="a225a88" doxytag="Connecting" ></a>Connecting</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="a225a89" doxytag="ConnFailing" ></a>ConnFailing</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="a225a90" doxytag="Accepting" ></a>Accepting</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="a225a91" doxytag="Disconnecting" ></a>Disconnecting</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="a225a92" doxytag="Error" ></a>Error</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06029.html#l00049">49</a> of file <a class="el" href="a06029.html">message_recorder.h</a>.
+<p>
+Referenced by <a class="el" href="a06028.html#l00308">NLNET::CMessageRecorder::checkNextOne()</a>, <a class="el" href="a05524.html#l00286">NLNET::CCallbackClient::connect()</a>, <a class="el" href="a06028.html#l00326">NLNET::CMessageRecorder::replayConnectionAttempt()</a>, and <a class="el" href="a06028.html#l00054">StringToEvent()</a>.
+<p>
+<div class="fragment"><pre>00049 { <a class="code" href="a05379.html#a225a86">Sending</a>, <a class="code" href="a05379.html#a225a87">Receiving</a>, <a class="code" href="a05379.html#a225a88">Connecting</a>, <a class="code" href="a05379.html#a225a89">ConnFailing</a>, <a class="code" href="a05379.html#a225a90">Accepting</a>, <a class="code" href="a05379.html#a225a91">Disconnecting</a>, <a class="code" href="a05379.html#a225a92">Error</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a222" doxytag="NLNET::addRequestAnswer" ></a><p>
+<table class="mdTable" 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 addRequestAnswer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>rid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>variables</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>values</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a109" doxytag="NLNET::addRequestAnswer" ></a><p>
+<table class="mdTable" 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 addRequestAnswer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>rid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>variables</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>values</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00275">275</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05391.html#l00091">Requests</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00386">serviceGetView()</a>.
+<p>
+<div class="fragment"><pre>00276 {
+00277 <span class="keywordflow">if</span> (!variables.empty() &amp;&amp; variables[0] == <span class="stringliteral">"__log"</span>)
+00278 { <a class="code" href="a04199.html#a6">nlassert</a> (variables.size() == 1); }
+00279 <span class="keywordflow">else</span>
+00280 { <a class="code" href="a04199.html#a6">nlassert</a> (variables.size() == values.size()); }
+00281
+00282 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0 ; i &lt; <a class="code" href="a05379.html#a4">Requests</a>.size (); i++)
+00283 {
+00284 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].Id == rid)
+00285 {
+00286 <a class="code" href="a05379.html#a4">Requests</a>[i].Answers.push_back (make_pair(variables, values));
+00287
+00288 <a class="code" href="a05379.html#a4">Requests</a>[i].NbReceived++;
+00289 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"ADMIN: ++ i %d rid %d NbWaiting %d NbReceived+ %d"</span>, i, Requests[i].Id, Requests[i].NbWaiting, Requests[i].NbReceived);
+00290
+00291 <span class="keywordflow">return</span>;
+00292 }
+00293 }
+00294 <span class="comment">// we received an unknown request, forget it</span>
+00295 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: Receive an answer for unknown request %d"</span>, rid);
+00296 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a107" doxytag="NLNET::addRequestWaitingNb" ></a><p>
+<table class="mdTable" 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 addRequestWaitingNb </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rid</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00221">221</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05391.html#l00091">Requests</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00386">serviceGetView()</a>.
+<p>
+<div class="fragment"><pre>00222 {
+00223 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0 ; i &lt; <a class="code" href="a05379.html#a4">Requests</a>.size (); i++)
+00224 {
+00225 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].Id == rid)
+00226 {
+00227 <a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting++;
+00228 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"ADMIN: ++ i %d rid %d NbWaiting+ %d NbReceived %d"</span>, i, Requests[i].Id, Requests[i].NbWaiting, Requests[i].NbReceived);
+00229 <span class="comment">// if we add a waiting, reset the timer</span>
+00230 <a class="code" href="a05379.html#a4">Requests</a>[i].Time = CTime::getSecondsSince1970 ();
+00231 <span class="keywordflow">return</span>;
+00232 }
+00233 }
+00234 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: addRequestWaitingNb: can't find the rid %d"</span>, rid);
+00235 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a170" doxytag="NLNET::Bench" ></a><p>
+<table class="mdTable" 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="a03646.html">CVariable</a>&lt;bool&gt; Bench </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">"Bench"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"1 if benching 0 if not"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>0&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>true&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a102" doxytag="NLNET::cbAdminPing" ></a><p>
+<table class="mdTable" 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 cbAdminPing </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00155">155</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00156 {
+00157 <span class="comment">// Send back a pong to say to the AES that I'm alive</span>
+00158 <a class="code" href="a02918.html">CMessage</a> msgout(<span class="stringliteral">"ADMIN_PONG"</span>);
+00159 CUnifiedNetwork::getInstance()-&gt;send(sid, msgout);
+00160 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a104" doxytag="NLNET::cbAESConnection" ></a><p>
+<table class="mdTable" 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 cbAESConnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00169">169</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00636">initAdmin()</a>.
+<p>
+<div class="fragment"><pre>00170 {
+00171 <span class="comment">// established a connection to the AES, identify myself</span>
+00172
+00173 <span class="comment">//</span>
+00174 <span class="comment">// Sends the identification message with the name of the service and all commands available on this service</span>
+00175 <span class="comment">//</span>
+00176
+00177 <a class="code" href="a02918.html">CMessage</a> msgout (<span class="stringliteral">"SID"</span>);
+00178 <a class="code" href="a04558.html#a11">uint32</a> pid = getpid ();
+00179 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (IService::getInstance()-&gt;_AliasName, IService::getInstance()-&gt;_LongName, pid);
+00180 ICommand::serialCommands (msgout);
+00181 CUnifiedNetwork::getInstance()-&gt;send(<span class="stringliteral">"AES"</span>, msgout);
+00182
+00183 <span class="keywordflow">if</span> (IService::getInstance()-&gt;_Initialized)
+00184 {
+00185 <a class="code" href="a02918.html">CMessage</a> msgout2 (<span class="stringliteral">"SR"</span>);
+00186 CUnifiedNetwork::getInstance()-&gt;send(<span class="stringliteral">"AES"</span>, msgout2);
+00187 }
+00188 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a105" doxytag="NLNET::cbAESDisconnection" ></a><p>
+<table class="mdTable" 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 cbAESDisconnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00191">191</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00636">initAdmin()</a>.
+<p>
+<div class="fragment"><pre>00192 {
+00193 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"Lost connection to the %s-%hu"</span>, serviceName.c_str(), sid);
+00194 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a219" doxytag="NLNET::cbClientGetUniversalTime" ></a><p>
+<table class="mdTable" 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 cbClientGetUniversalTime </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00296">296</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+References <a class="el" href="a06650.html#l00293">GetClientUniversalTime</a>, <a class="el" href="a06650.html#l00294">GetClientUniversalTimeUniTime</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+<div class="fragment"><pre>00297 {
+00298 <a class="code" href="a04199.html#a12">nlstop</a>;
+00299 <span class="comment">// get the association between a date and unitime</span>
+00300 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (GetClientUniversalTimeUniTime);
+00301 <a class="code" href="a05379.html#a71">GetClientUniversalTime</a> = <span class="keyword">true</span>;
+00302 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a127" doxytag="NLNET::cbcMessageRecvAllAssociations" ></a><p>
+<table class="mdTable" 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 cbcMessageRecvAllAssociations </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05524.html#l00043">43</a> of file <a class="el" href="a05524.html">callback_client.cpp</a>.
+<p>
+References <a class="el" href="a05526.html#l00055">cbnbMessageRecvAssociations()</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05527.html#l00129">NLNET::CCallbackNetBase::getSIDA()</a>, <a class="el" href="a06468.html#l00176">NLMISC::CStringIdArray::ignoreAllUnknownId()</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+<div class="fragment"><pre>00044 {
+00045 netbase.getSIDA().ignoreAllUnknownId (<span class="keyword">false</span>);
+00046 <a class="code" href="a05379.html#a128">cbnbMessageRecvAssociations</a> (msgin, from, netbase);
+00047 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a175" doxytag="NLNET::cbDirectoryChanged" ></a><p>
+<table class="mdTable" 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 cbDirectoryChanged </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03648.html">IVariable</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00230">230</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a03648.html#NLMISC_1_1IVariablea1">NLMISC::IVariable::fromString()</a>, <a class="el" href="a05585.html#l00145">NLMISC::ICommand::getName()</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a03648.html#NLMISC_1_1IVariablea4">NLMISC::IVariable::toString()</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00278">NLNET::IService::IService()</a>.
+<p>
+<div class="fragment"><pre>00231 {
+00232 string vp = CPath::getFullPath(var.<a class="code" href="a03648.html#NLMISC_1_1IVariablea4">toString</a>());
+00233 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: '%s' changed to '%s'"</span>, var.<a class="code" href="a03647.html#NLMISC_1_1IVariablea2">getName</a>().c_str(), vp.c_str());
+00234 var.<a class="code" href="a03648.html#NLMISC_1_1IVariablea1">fromString</a>(vp);
+00235
+00236 <span class="keywordflow">if</span> (var.<a class="code" href="a03647.html#NLMISC_1_1IVariablea2">getName</a>() == <span class="stringliteral">"RunningDirectory"</span>)
+00237 {
+00238 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00239 <span class="preprocessor"></span> _chdir (vp.c_str());
+00240 <span class="preprocessor">#else</span>
+00241 <span class="preprocessor"></span> chdir (vp.c_str());
+00242 <span class="preprocessor">#endif</span>
+00243 <span class="preprocessor"></span> }
+00244 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a101" doxytag="NLNET::cbExecCommand" ></a><p>
+<table class="mdTable" 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 cbExecCommand </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00144">144</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00145 {
+00146 string command;
+00147 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (command);
+00148
+00149 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Executing command from network : '%s'"</span>, command.c_str());
+00150 ICommand::execute (command, IService::getInstance()-&gt;CommandLog);
+00151 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a178" doxytag="NLNET::cbExecuteCommands" ></a><p>
+<table class="mdTable" 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 cbExecuteCommands </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00405">405</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05597.html#l00097">NLMISC::CConfigFile::CVar::asString()</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05597.html#l00216">NLMISC::CConfigFile::CVar::size()</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00406 {
+00407 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a14">sint</a> i = 0; i &lt; var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVara4">size</a>(); i++)
+00408 {
+00409 ICommand::execute (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>(i), IService::getInstance()-&gt;CommandLog);
+00410 }
+00411 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a217" doxytag="NLNET::cbGetUniversalTime" ></a><p>
+<table class="mdTable" 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 cbGetUniversalTime </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00139">139</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+References <a class="el" href="a06650.html#l00134">GetUniversalTime</a>, <a class="el" href="a06650.html#l00135">GetUniversalTimeSecondsSince1970</a>, <a class="el" href="a06650.html#l00136">GetUniversalTimeUniTime</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+<div class="fragment"><pre>00140 {
+00141 <a class="code" href="a04199.html#a12">nlstop</a>;
+00142 <span class="comment">// get the association between a date and unitime</span>
+00143 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (GetUniversalTimeSecondsSince1970);
+00144 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (GetUniversalTimeUniTime);
+00145 <a class="code" href="a05379.html#a67">GetUniversalTime</a> = <span class="keyword">true</span>;
+00146 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a99" doxytag="NLNET::cbInfo" ></a><p>
+<table class="mdTable" 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 cbInfo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00100">100</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05979.html#l00423">NLMISC::CMemStream::serialCont()</a>, <a class="el" href="a05391.html#l00797">setInformations()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Updating admin informations"</span>);
+00103
+00104 vector&lt;string&gt; alarms;
+00105 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (alarms);
+00106 vector&lt;string&gt; graphupdate;
+00107 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (graphupdate);
+00108
+00109 <a class="code" href="a05379.html#a117">setInformations</a> (alarms, graphupdate);
+00110 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a177" doxytag="NLNET::cbLogFilter" ></a><p>
+<table class="mdTable" 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 cbLogFilter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00361">361</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00593">NLMISC::CLog::addNegativeFilter()</a>, <a class="el" href="a05621.html#l00093">NLMISC::AssertLog</a>, <a class="el" href="a05597.html#l00097">NLMISC::CConfigFile::CVar::asString()</a>, <a class="el" href="a05621.html#l00092">NLMISC::DebugLog</a>, <a class="el" href="a05621.html#l00089">NLMISC::ErrorLog</a>, <a class="el" href="a05621.html#l00091">NLMISC::InfoLog</a>, <a class="el" href="a05598.html#l00188">NLMISC::CConfigFile::CVar::Name</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05943.html#l00556">NLMISC::CLog::removeFilter()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05597.html#l00216">NLMISC::CConfigFile::CVar::size()</a>, and <a class="el" href="a05621.html#l00090">NLMISC::WarningLog</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00362 {
+00363 CLog *log = NULL;
+00364 <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"NegFiltersDebug"</span>)
+00365 {
+00366 log = <a class="code" href="a05378.html#a13">DebugLog</a>;
+00367 }
+00368 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"NegFiltersInfo"</span>)
+00369 {
+00370 log = <a class="code" href="a05378.html#a12">InfoLog</a>;
+00371 }
+00372 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"NegFiltersWarning"</span>)
+00373 {
+00374 log = <a class="code" href="a05378.html#a11">WarningLog</a>;
+00375 }
+00376 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"NegFiltersAssert"</span>)
+00377 {
+00378 log = <a class="code" href="a05378.html#a14">AssertLog</a>;
+00379 }
+00380 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"NegFiltersError"</span>)
+00381 {
+00382 log = <a class="code" href="a05378.html#a10">ErrorLog</a>;
+00383 }
+00384 <span class="keywordflow">else</span>
+00385 {
+00386 <a class="code" href="a04199.html#a12">nlstop</a>;
+00387 }
+00388
+00389 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: Updating %s from config file"</span>, var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a>.c_str());
+00390
+00391 <span class="comment">// remove all old filters from config file</span>
+00392 <a class="code" href="a02402.html">CConfigFile::CVar</a> &amp;oldvar = IService::getInstance()-&gt;ConfigFile.getVar (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a>);
+00393 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a14">sint</a> j = 0; j &lt; oldvar.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVara4">size</a>(); j++)
+00394 {
+00395 log-&gt;removeFilter (oldvar.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>(j).c_str());
+00396 }
+00397
+00398 <span class="comment">// add all new filters from config file</span>
+00399 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a14">sint</a> i = 0; i &lt; var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVara4">size</a>(); i++)
+00400 {
+00401 log-&gt;addNegativeFilter (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>(i).c_str());
+00402 }
+00403 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a129" doxytag="NLNET::cbnbMessageAskAssociations" ></a><p>
+<table class="mdTable" 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 cbnbMessageAskAssociations </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05526.html#l00088">88</a> of file <a class="el" href="a05526.html">callback_net_base.cpp</a>.
+<p>
+References <a class="el" href="a05527.html#l00193">NLNET::CCallbackNetBase::_OutputSIDA</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a06468.html#l00089">NLMISC::CStringIdArray::getId()</a>, <a class="el" href="a05527.html#l00129">NLNET::CCallbackNetBase::getSIDA()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a02306.html#NLNET_1_1CCallbackNetBasea19">NLNET::CCallbackNetBase::send()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, and <a class="el" href="a06468.html#l00054">NLMISC::CStringIdArray::TStringId</a>.
+<p>
+<div class="fragment"><pre>00089 {
+00090 <a class="code" href="a02918.html">CMessage</a> msgout (netbase.getSIDA(), <span class="stringliteral">"RA"</span>);
+00091 <a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">CStringIdArray::TStringId</a> <a class="code" href="a04223.html#a587">size</a>;
+00092 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (size);
+00093
+00094 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"LNETL3NB_ASSOC: The other side want %d string associations"</span>, size);
+00095
+00096 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (size);
+00097
+00098 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a14">sint</a> i = 0; i &lt; <a class="code" href="a04223.html#a587">size</a>; i++)
+00099 {
+00100 string name;
+00101 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00102 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"LNETL3NB_ASSOC: sending association '%s' -&gt; %d"</span>, name.c_str (), netbase._OutputSIDA.getId(name));
+00103
+00104 <span class="comment">// if this assert occurs, it means that the other side ask an unknown message</span>
+00105 <span class="comment">// or that there are different types of client (with differents callbackarray) and one of the client doesn't have this callback</span>
+00106 <a class="code" href="a04199.html#a6">nlassert</a>(netbase._OutputSIDA.getId(name) != -1);
+00107
+00108 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00109
+00110 <a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">CStringIdArray::TStringId</a> <span class="keywordtype">id</span> = netbase._OutputSIDA.getId (name);
+00111 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>);
+00112 }
+00113 <span class="comment">// send the message to the other side</span>
+00114 netbase.send (msgout, from);
+00115 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a128" doxytag="NLNET::cbnbMessageRecvAssociations" ></a><p>
+<table class="mdTable" 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 cbnbMessageRecvAssociations </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05526.html#l00055">55</a> of file <a class="el" href="a05526.html">callback_net_base.cpp</a>.
+<p>
+References <a class="el" href="a06468.html#l00059">NLMISC::CStringIdArray::addString()</a>, <a class="el" href="a05527.html#l00129">NLNET::CCallbackNetBase::getSIDA()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, and <a class="el" href="a06468.html#l00054">NLMISC::CStringIdArray::TStringId</a>.
+<p>
+Referenced by <a class="el" href="a05524.html#l00043">cbcMessageRecvAllAssociations()</a>.
+<p>
+<div class="fragment"><pre>00056 {
+00057 <span class="comment">// receive a new message association</span>
+00058
+00059 <a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">CStringIdArray::TStringId</a> <a class="code" href="a04223.html#a587">size</a>;
+00060 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (size);
+00061
+00062 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"LNETL3NB_ASSOC: The other side gave me %d association strings"</span>, size);
+00063
+00064 <span class="keywordflow">for</span> (<a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">CStringIdArray::TStringId</a> i = 0; i &lt; <a class="code" href="a04223.html#a587">size</a>; i++)
+00065 {
+00066 std::string name;
+00067 <a class="code" href="a03449.html#NLMISC_1_1CStringIdArrayw0">CStringIdArray::TStringId</a> <span class="keywordtype">id</span>;
+00068
+00069 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00070 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>);
+00071
+00072 <span class="comment">// if id == -1, it means that there are no callback associated to this message</span>
+00073 <span class="comment">// it should not happen, it mean that one side send a message that the other side</span>
+00074 <span class="comment">// can't manage in his callbackarray.</span>
+00075 <span class="comment">// to resolve the problem, add the callback in the callbackarray in the other side</span>
+00076 <span class="comment">// and put NULL if you don't want to manage this message</span>
+00077 <a class="code" href="a04199.html#a6">nlassert</a> (<span class="keywordtype">id</span> != -1);
+00078
+00079 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"LNETL3NB_ASSOC: association '%s' -&gt; %d"</span>, name.c_str (), <span class="keywordtype">id</span>);
+00080 netbase.getSIDA().addString (name, <span class="keywordtype">id</span>);
+00081 }
+00082 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a130" doxytag="NLNET::cbnbNewDisconnection" ></a><p>
+<table class="mdTable" 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 cbnbNewDisconnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>data</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05526.html#l00127">127</a> of file <a class="el" href="a05526.html">callback_net_base.cpp</a>.
+<p>
+References <a class="el" href="a05527.html#l00222">NLNET::CCallbackNetBase::_DisconnectionCallback</a>, <a class="el" href="a05527.html#l00223">NLNET::CCallbackNetBase::_DisconnectionCbArg</a>, <a class="el" href="a05646.html#l01013">data</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+Referenced by <a class="el" href="a05526.html#l00148">NLNET::CCallbackNetBase::CCallbackNetBase()</a>.
+<p>
+<div class="fragment"><pre>00128 {
+00129 <a class="code" href="a04199.html#a6">nlassert</a> (data != NULL);
+00130 CCallbackNetBase *base = (CCallbackNetBase *)<a class="code" href="a04223.html#a637">data</a>;
+00131
+00132 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"LNETL3NB: cbnbNewDisconnection()"</span>);
+00133
+00134 <span class="preprocessor">#ifdef USE_MESSAGE_RECORDER</span>
+00135 <span class="preprocessor"></span> <span class="comment">// Record or replay disconnection</span>
+00136 base-&gt;noticeDisconnection( from );
+00137 <span class="preprocessor">#endif</span>
+00138 <span class="preprocessor"></span>
+00139 <span class="comment">// Call the client callback if necessary</span>
+00140 <span class="keywordflow">if</span> (base-&gt;_DisconnectionCallback != NULL)
+00141 base-&gt;_DisconnectionCallback (from, base-&gt;_DisconnectionCbArg);
+00142 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a224" doxytag="NLNET::cbPacsAnswer" ></a><p>
+<table class="mdTable" 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 cbPacsAnswer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06138.html#l00495">495</a> of file <a class="el" href="a06138.html">pacs_client.h</a>.
+<p>
+References <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a06138.html#l00486">NLNET::CPacsClient::getPositionSpeedCallback()</a>, <a class="el" href="a06138.html#l00448">NLNET::CPacsClient::messageCallback()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05621.html#l00134">NLMISC::nlError()</a>, <a class="el" href="a06138.html#l00038">NLNET_PACS_PROTOCOL_VERSION</a>, <a class="el" href="a06138.html#l00457">NLNET::CPacsClient::rayTestCallback()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06462.html#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a05979.html#l00423">NLMISC::CMemStream::serialCont()</a>, <a class="el" href="a06138.html#l00476">NLNET::CPacsClient::testMoveCallback()</a>, <a class="el" href="a06138.html#l00467">NLNET::CPacsClient::triggerCallback()</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, <a class="el" href="a06615.html#l00058">NLPACS::UMovePrimitive::TUserData</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00496 {
+00497 <span class="comment">// Get the client pointer</span>
+00498 CPacsClient *client=(CPacsClient*)(<a class="code" href="a04558.html#a15">uint</a>)<a class="code" href="a05333.html#a132">from</a>-&gt;appId ();
+00499
+00500 <span class="comment">// Check stream</span>
+00501 msgin.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_0">serialCheck</a> ((<a class="code" href="a04558.html#a11">uint32</a>)NLNET_PACS_PROTOCOL_VERSION);
+00502
+00503 <span class="comment">// Message callback</span>
+00504 client-&gt;messageCallback ();
+00505
+00506 <span class="keywordtype">bool</span> again;
+00507 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (again);
+00508
+00509 <span class="keywordflow">while</span> (again)
+00510 {
+00511 <span class="comment">// Read the message sub string</span>
+00512 std::string subMessage;
+00513 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (subMessage);
+00514
+00515 <span class="comment">// This code can work only if sizeof (uint) == sizeof (void*)</span>
+00516 <a class="code" href="a04199.html#a6">nlassert</a> (<span class="keyword">sizeof</span> (<a class="code" href="a04558.html#a15">uint</a>)==<span class="keyword">sizeof</span> (<span class="keywordtype">void</span>*));
+00517
+00518 <span class="comment">// Raytrace callback ?</span>
+00519 <span class="keywordflow">if</span> (subMessage==<span class="stringliteral">"RY"</span>)
+00520 {
+00521 <span class="comment">// Read test id and test result</span>
+00522 <a class="code" href="a04558.html#a11">uint32</a> testId;
+00523 <span class="keywordtype">bool</span> testResult;
+00524 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (testId, testResult);
+00525
+00526 <span class="comment">// Call the callback</span>
+00527 client-&gt;rayTestCallback (testId, testResult);
+00528 }
+00529 <span class="comment">// Trigger callback ?</span>
+00530 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (subMessage==<span class="stringliteral">"TR"</span>)
+00531 {
+00532 <span class="comment">// Read eval id and trigger info</span>
+00533 <a class="code" href="a04558.html#a11">uint32</a> evalId;
+00534 std::vector&lt;NLPACS::UTriggerInfo&gt; triggerInfo;
+00535 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (evalId);
+00536 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (triggerInfo);
+00537
+00538 <span class="comment">// Call the callback</span>
+00539 client-&gt;triggerCallback (evalId, triggerInfo);
+00540 }
+00541 <span class="comment">// Test move callback ?</span>
+00542 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (subMessage==<span class="stringliteral">"TM"</span>)
+00543 {
+00544 <span class="comment">// Read the primitive id and test result</span>
+00545 <a class="code" href="a02947.html#NLPACS_1_1UMovePrimitivew14">NLPACS::UMovePrimitive::TUserData</a> <span class="keywordtype">id</span>;
+00546 <span class="keywordtype">bool</span> testResult;
+00547 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>, testResult);
+00548
+00549 <span class="comment">// Call the callback </span>
+00550 client-&gt;testMoveCallback (<span class="keywordtype">id</span>, testResult);
+00551 }
+00552 <span class="comment">// Test move callback ?</span>
+00553 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (subMessage==<span class="stringliteral">"PS"</span>)
+00554 {
+00555 <span class="comment">// Read the primitive id and test result</span>
+00556 <a class="code" href="a02947.html#NLPACS_1_1UMovePrimitivew14">NLPACS::UMovePrimitive::TUserData</a> <span class="keywordtype">id</span>;
+00557 <a class="code" href="a03664.html">NLMISC::CVectorD</a> position;
+00558 <a class="code" href="a03664.html">NLMISC::CVectorD</a> speed;
+00559 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (<span class="keywordtype">id</span>, position, speed);
+00560
+00561 <span class="comment">// Call the callback </span>
+00562 client-&gt;getPositionSpeedCallback (<span class="keywordtype">id</span>, position, speed);
+00563 }
+00564 <span class="keywordflow">else</span>
+00565 <a class="code" href="a05378.html#a294">NLMISC::nlError</a> (<span class="stringliteral">"Pacs client: unkown sub message string"</span>);
+00566
+00567 <span class="comment">// Next message ?</span>
+00568 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (again);
+00569 }
+00570 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a160" doxytag="NLNET::cbQueryPort" ></a><p>
+<table class="mdTable" 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 cbQueryPort </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00109">109</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+References <a class="el" href="a06089.html#l00106">QueryPort</a>, <a class="el" href="a06089.html#l00107">QueryPortPort</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+<div class="fragment"><pre>00110 {
+00111 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (QueryPortPort);
+00112 <a class="code" href="a05379.html#a39">QueryPort</a> = <span class="keyword">true</span>;
+00113 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a176" doxytag="NLNET::cbReceiveShardId" ></a><p>
+<table class="mdTable" 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 cbReceiveShardId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceId</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00251">251</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00252 {
+00253 <a class="code" href="a04558.html#a11">uint32</a> shardId;
+00254 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(shardId);
+00255
+00256 <span class="keywordflow">if</span> (serviceName != <span class="stringliteral">"WS"</span>)
+00257 {
+00258 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"SERVICE: received unauthorized R_SH_ID callback from service %s-%d asking to set ShardId to %d"</span>, serviceName.c_str(), serviceId, shardId);
+00259 <span class="keywordflow">return</span>;
+00260 }
+00261
+00262 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"SERVICE: set ShardId to %d"</span>, shardId);
+00263 IService::getInstance()-&gt;_ShardId = shardId;
+00264 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a159" doxytag="NLNET::cbRegister" ></a><p>
+<table class="mdTable" 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 cbRegister </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00085">85</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+References <a class="el" href="a06089.html#l00119">cbRegisterBroadcast()</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06089.html#l00083">Reason</a>, <a class="el" href="a06089.html#l00080">Registered</a>, <a class="el" href="a06089.html#l00082">RegisteredSID</a>, <a class="el" href="a06089.html#l00081">RegisteredSuccess</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+<div class="fragment"><pre>00086 {
+00087 <a class="code" href="a04199.html#a6">nlassert</a>(RegisteredSID != NULL);
+00088
+00089 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (RegisteredSuccess);
+00090 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a36">RegisteredSuccess</a>)
+00091 {
+00092 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (*RegisteredSID);
+00093
+00094 <span class="comment">// decode the registered services at the register process</span>
+00095 <a class="code" href="a05379.html#a161">cbRegisterBroadcast</a> (msgin, from, netbase);
+00096 }
+00097 <span class="keywordflow">else</span>
+00098 {
+00099 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( Reason );
+00100 }
+00101 <a class="code" href="a05379.html#a35">Registered</a> = <span class="keyword">true</span>;
+00102 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a161" doxytag="NLNET::cbRegisterBroadcast" ></a><p>
+<table class="mdTable" 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 cbRegisterBroadcast </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00119">119</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+References <a class="el" href="a06089.html#l00055">_RegistrationBroadcastCallback</a>, <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05979.html#l00423">NLMISC::CMemStream::serialCont()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a06090.html#l00042">TServiceId</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05810.html#l00509">vectorCInetAddressToString()</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00085">cbRegister()</a>.
+<p>
+<div class="fragment"><pre>00120 {
+00121 <a class="code" href="a05379.html#a93">TServiceId</a> <a class="code" href="a04223.html#a587">size</a>;
+00122 string name;
+00123 <a class="code" href="a05379.html#a93">TServiceId</a> sid;
+00124 vector&lt;CInetAddress&gt; <a class="code" href="a04223.html#a657">addr</a>;
+00125
+00126 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (size);
+00127
+00128 <span class="keywordflow">for</span> (<a class="code" href="a05379.html#a93">TServiceId</a> i = 0; i &lt; <a class="code" href="a04223.html#a587">size</a>; i++)
+00129 {
+00130 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00131 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (sid);
+00132 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (addr);
+00133
+00134 <span class="comment">// add it in the list</span>
+00135
+00136 std::vector&lt;CInetAddress&gt; addrs;
+00137 CNamingClient::find (sid, addrs);
+00138
+00139 <span class="keywordflow">if</span> (addrs.size() == 0)
+00140 {
+00141 CNamingClient::RegisteredServicesMutex.enter ();
+00142 CNamingClient::RegisteredServices.push_back (CNamingClient::CServiceEntry (name, sid, addr));
+00143 CNamingClient::RegisteredServicesMutex.leave ();
+00144
+00145 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"NC: Registration Broadcast of the service %s-%hu '%s'"</span>, name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)sid, <a class="code" href="a05379.html#a138">vectorCInetAddressToString</a>(addr).c_str());
+00146
+00147 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a33">_RegistrationBroadcastCallback</a> != NULL)
+00148 <a class="code" href="a05379.html#a33">_RegistrationBroadcastCallback</a> (name, sid, addr);
+00149 }
+00150 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (addrs.size() == 1)
+00151 {
+00152 CNamingClient::RegisteredServicesMutex.enter ();
+00153 <span class="keywordflow">for</span> (std::list&lt;CNamingClient::CServiceEntry&gt;::iterator it = CNamingClient::RegisteredServices.begin(); it != CNamingClient::RegisteredServices.end (); it++)
+00154 {
+00155 <span class="keywordflow">if</span> (sid == (*it).SId)
+00156 {
+00157 (*it).Name = name;
+00158 (*it).Addr = <a class="code" href="a04223.html#a657">addr</a>;
+00159 <span class="keywordflow">break</span>;
+00160 }
+00161 }
+00162 CNamingClient::RegisteredServicesMutex.leave ();
+00163 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"NC: Registration Broadcast (update) of the service %s-%hu '%s'"</span>, name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)sid, <a class="code" href="a04223.html#a657">addr</a>[0].asString().c_str());
+00164 }
+00165 <span class="keywordflow">else</span>
+00166 {
+00167 <a class="code" href="a04199.html#a12">nlstop</a>;
+00168 }
+00169 }
+00170
+00171 <span class="comment">// FirstRegisteredBroadcast = true;</span>
+00172
+00173 <span class="comment">//CNamingClient::displayRegisteredServices ();</span>
+00174 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a218" doxytag="NLNET::cbServerAskUniversalTime" ></a><p>
+<table class="mdTable" 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 cbServerAskUniversalTime </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00262">262</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00385">NLNET::CInetAddress::asString()</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05527.html#l00129">NLNET::CCallbackNetBase::getSIDA()</a>, <a class="el" href="a05526.html#l00443">NLNET::CCallbackNetBase::hostAddress()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a02306.html#NLNET_1_1CCallbackNetBasea19">NLNET::CCallbackNetBase::send()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, and <a class="el" href="a06553.html#l00047">NLMISC::TTime</a>.
+<p>
+<div class="fragment"><pre>00263 {
+00264 <a class="code" href="a04199.html#a12">nlstop</a>;
+00265 <a class="code" href="a05378.html#a242">TTime</a> ut = _CUniTime::getUniTime ();
+00266
+00267 <span class="comment">// afficher l adresse de celui qui demande</span>
+00268 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"UT: Send the universal time %"</span>NL_I64<span class="stringliteral">"d to '%s'"</span>, ut, netbase.hostAddress(from).asString().c_str());
+00269
+00270 <a class="code" href="a02918.html">CMessage</a> msgout (netbase.getSIDA(), <span class="stringliteral">"GUT"</span>);
+00271 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (ut);
+00272 netbase.send (msgout, from);
+00273 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a100" doxytag="NLNET::cbServGetView" ></a><p>
+<table class="mdTable" 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 cbServGetView </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00112">112</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05391.html#l00091">Requests</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05391.html#l00386">serviceGetView()</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00113 {
+00114 <a class="code" href="a04558.html#a11">uint32</a> rid;
+00115 string rawvarpath;
+00116
+00117 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (rid);
+00118 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (rawvarpath);
+00119
+00120 <a class="code" href="a05379.html#a4">Requests</a>.push_back (<a class="code" href="a03327.html">CRequest</a>(rid, sid));
+00121
+00122 vector&lt;pair&lt;vector&lt;string&gt;, vector&lt;string&gt; &gt; &gt; answer;
+00123 <span class="comment">// just send the view in async mode, don't retrieve the answer</span>
+00124 <a class="code" href="a05379.html#a113">serviceGetView</a> (rid, rawvarpath, answer, <span class="keyword">true</span>);
+00125 <a class="code" href="a04199.html#a6">nlassert</a> (answer.empty());
+00126
+00127 <span class="comment">/*</span>
+00128 <span class="comment"> CMessage msgout("VIEW");</span>
+00129 <span class="comment"> msgout.serial(rid);</span>
+00130 <span class="comment"> </span>
+00131 <span class="comment"> for (uint i = 0; i &lt; answer.size(); i++)</span>
+00132 <span class="comment"> {</span>
+00133 <span class="comment"> msgout.serialCont (answer[i].first);</span>
+00134 <span class="comment"> msgout.serialCont (answer[i].second);</span>
+00135 <span class="comment"> }</span>
+00136 <span class="comment"> </span>
+00137 <span class="comment"> CUnifiedNetwork::getInstance ()-&gt;send (sid, msgout);</span>
+00138 <span class="comment"> nlinfo ("ADMIN: Sent result view to service '%s-%hu'", serviceName.c_str(), sid);</span>
+00139 <span class="comment">*/</span>
+00140
+00141 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a141" doxytag="NLNET::cbShardValidate" ></a><p>
+<table class="mdTable" 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 cbShardValidate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05958.html#l00048">48</a> of file <a class="el" href="a05958.html">login_client.cpp</a>.
+<p>
+References <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05958.html#l00046">ShardValidate</a>, <a class="el" href="a05958.html#l00047">ShardValidateReason</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+<div class="fragment"><pre>00049 {
+00050 <span class="comment">//</span>
+00051 <span class="comment">// S14: receive "SV" message from FES</span>
+00052 <span class="comment">//</span>
+00053
+00054 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (ShardValidateReason);
+00055 <a class="code" href="a05379.html#a17">ShardValidate</a> = <span class="keyword">true</span>;
+00056 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a146" doxytag="NLNET::cbShardValidation" ></a><p>
+<table class="mdTable" 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 cbShardValidation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00181">181</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05962.html#l00056">AcceptInvalidCookie</a>, <a class="el" href="a05810.html#l00385">NLNET::CInetAddress::asString()</a>, <a class="el" href="a05526.html#l00471">NLNET::CCallbackNetBase::authorizeOnly()</a>, <a class="el" href="a05527.html#l00138">NLNET::CCallbackNetBase::disconnect()</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05527.html#l00129">NLNET::CCallbackNetBase::getSIDA()</a>, <a class="el" href="a05961.html#l00105">NLNET::CLoginCookie::getUserId()</a>, <a class="el" href="a05526.html#l00443">NLNET::CCallbackNetBase::hostAddress()</a>, <a class="el" href="a05962.html#l00063">ModeTcp</a>, <a class="el" href="a05962.html#l00071">NewClientCallback</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a02306.html#NLNET_1_1CCallbackNetBasea19">NLNET::CCallbackNetBase::send()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05962.html#l00053">Server</a>, <a class="el" href="a05961.html#l00107">NLNET::CLoginCookie::set()</a>, <a class="el" href="a05961.html#l00095">NLNET::CLoginCookie::toString()</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05962.html#l00069">UserIdSockAssociations</a>.
+<p>
+<div class="fragment"><pre>00182 {
+00183 <span class="comment">//</span>
+00184 <span class="comment">// S13: receive "SV" message from client</span>
+00185 <span class="comment">//</span>
+00186
+00187 <span class="comment">// the client send me a cookie</span>
+00188 CLoginCookie cookie;
+00189 string reason;
+00190 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (cookie);
+00191
+00192 string userName, userPriv;
+00193 <span class="comment">// verify that the user was pending</span>
+00194 reason = CLoginServer::isValidCookie (cookie, userName, userPriv);
+00195
+00196 <span class="comment">// if the cookie is not valid and we accept them, clear the error</span>
+00197 <span class="keywordflow">if</span>(<a class="code" href="a05379.html#a23">AcceptInvalidCookie</a> &amp;&amp; !reason.empty())
+00198 {
+00199 reason = <span class="stringliteral">""</span>;
+00200 cookie.set (rand(), rand(), rand());
+00201 }
+00202
+00203 <a class="code" href="a02918.html">CMessage</a> msgout2 (netbase.getSIDA (), <span class="stringliteral">"SV"</span>);
+00204 msgout2.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (reason);
+00205 netbase.send (msgout2, from);
+00206
+00207 <span class="keywordflow">if</span> (!reason.empty())
+00208 {
+00209 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LS: User (%s) is not in the pending user list (cookie:%s)"</span>, netbase.hostAddress(from).asString().c_str(), cookie.toString().c_str());
+00210 <span class="comment">// deconnect him</span>
+00211 netbase.disconnect (from);
+00212 }
+00213 <span class="keywordflow">else</span>
+00214 {
+00215 <span class="comment">// add the user association</span>
+00216 <a class="code" href="a04558.html#a11">uint32</a> userid = cookie.getUserId();
+00217
+00218 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a26">ModeTcp</a>)
+00219 <a class="code" href="a05379.html#a28">UserIdSockAssociations</a>.insert (make_pair(userid, from));
+00220
+00221 <span class="comment">// identification OK, let's call the user callback</span>
+00222 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a29">NewClientCallback</a> != NULL)
+00223 <a class="code" href="a05379.html#a29">NewClientCallback</a> (from, cookie);
+00224
+00225 <span class="comment">// ok, now, he can call all callback</span>
+00226 <a class="code" href="a05379.html#a21">Server</a>-&gt;<a class="code" href="a02306.html#NLNET_1_1CCallbackServera1">authorizeOnly</a> (NULL, from);
+00227 }
+00228 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a198" doxytag="NLNET::cbSimVar" ></a><p>
+<table class="mdTable" 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 cbSimVar </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06641.html#l00191">191</a> of file <a class="el" href="a06641.html">udp_sim_sock.cpp</a>.
+<p>
+References <a class="el" href="a05597.html#l00058">NLMISC::CConfigFile::CVar::asInt()</a>, <a class="el" href="a05598.html#l00188">NLMISC::CConfigFile::CVar::Name</a>, and <a class="el" href="a05622.html#l00416">nlstop</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00202">NLNET::CUdpSimSock::setSimValues()</a>.
+<p>
+<div class="fragment"><pre>00192 {
+00193 <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"SimInLag"</span>) CUdpSimSock::_InLag = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a> ();
+00194 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"SimInPacketLost"</span>) CUdpSimSock::_InPacketLoss = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a> ();
+00195 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"SimOutLag"</span>) CUdpSimSock::_OutLag = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a> ();
+00196 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"SimOutPacketLost"</span>) CUdpSimSock::_OutPacketLoss = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a> ();
+00197 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"SimOutPacketDuplication"</span>) CUdpSimSock::_OutPacketDuplication = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a> ();
+00198 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1937_4">Name</a> == <span class="stringliteral">"SimOutPacketDisordering"</span>) CUdpSimSock::_OutPacketDisordering = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a> ();
+00199 <span class="keywordflow">else</span> <a class="code" href="a04199.html#a12">nlstop</a>;
+00200 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a131" doxytag="NLNET::cbsNewConnection" ></a><p>
+<table class="mdTable" 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 cbsNewConnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>data</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05528.html#l00045">45</a> of file <a class="el" href="a05528.html">callback_server.cpp</a>.
+<p>
+References <a class="el" href="a05529.html#l00100">NLNET::CCallbackServer::_ConnectionCallback</a>, <a class="el" href="a05529.html#l00101">NLNET::CCallbackServer::_ConnectionCbArg</a>, <a class="el" href="a05646.html#l01013">data</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+Referenced by <a class="el" href="a05528.html#l00070">NLNET::CCallbackServer::CCallbackServer()</a>.
+<p>
+<div class="fragment"><pre>00046 {
+00047 <a class="code" href="a04199.html#a6">nlassert</a> (data != NULL);
+00048 CCallbackServer *server = (CCallbackServer *)<a class="code" href="a04223.html#a637">data</a>;
+00049
+00050 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"LNETL3S: newConnection()"</span>);
+00051
+00052 <span class="preprocessor">#ifdef USE_MESSAGE_RECORDER</span>
+00053 <span class="preprocessor"></span> <span class="comment">// Record connection</span>
+00054 server-&gt;noticeConnection( from );
+00055 <span class="preprocessor">#endif</span>
+00056 <span class="preprocessor"></span>
+00057 <span class="comment">// send all my association to the new client</span>
+00058 <span class="comment">// association are disactivated so we don t need to send them</span>
+00059 <span class="comment">// server-&gt;sendAllMyAssociations (from);</span>
+00060
+00061 <span class="comment">// call the client callback if necessary</span>
+00062 <span class="keywordflow">if</span> (server-&gt;_ConnectionCallback != NULL)
+00063 server-&gt;_ConnectionCallback (from, server-&gt;_ConnectionCbArg);
+00064 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a103" doxytag="NLNET::cbStopService" ></a><p>
+<table class="mdTable" 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 cbStopService </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00162">162</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00163 {
+00164 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Receive a stop from service %s-%d, need to quit"</span>, serviceName.c_str(), sid);
+00165 IService::getInstance()-&gt;exit (0xFFFF);
+00166 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a194" doxytag="NLNET::cbTCReceiveMessage" ></a><p>
+<table class="mdTable" 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 cbTCReceiveMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06580.html#l00254">254</a> of file <a class="el" href="a06580.html">transport_class.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00255 {
+00256 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"NETTC: cbReceiveMessage"</span>);
+00257
+00258 CTransportClass::TempMessage.clear();
+00259 CTransportClass::TempMessage.assignFromSubMessage( msgin );
+00260
+00261 string className;
+00262 CTransportClass::TempMessage.serial (className);
+00263
+00264 CTransportClass::TRegisteredClass::iterator it = CTransportClass::LocalRegisteredClass.find (className);
+00265 <span class="keywordflow">if</span> (it == CTransportClass::LocalRegisteredClass.end ())
+00266 {
+00267 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NETTC: Receive unknown transport class '%s' received from %s-%hu"</span>, className.c_str(), name.c_str(), sid);
+00268 <span class="keywordflow">return</span>;
+00269 }
+00270
+00271 <a class="code" href="a04199.html#a6">nlassert</a> ((*it).second.Instance != NULL);
+00272
+00273 <span class="keywordflow">if</span> (!(*it).second.Instance-&gt;read (name, (<a class="code" href="a04558.html#a7">uint8</a>)sid))
+00274 {
+00275 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NETTC: Can't read the transportclass '%s' received from %s-%hu"</span>, className.c_str(), name.c_str(), sid);
+00276 }
+00277 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a195" doxytag="NLNET::cbTCReceiveOtherSideClass" ></a><p>
+<table class="mdTable" 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 cbTCReceiveOtherSideClass </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06580.html#l00279">279</a> of file <a class="el" href="a06580.html">transport_class.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06462.html#l00261">NLMISC::IStream::serialEnum()</a>, <a class="el" href="a06580.html#l00077">typeToString()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</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>00280 {
+00281 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"NETTC: cbReceiveOtherSideClass"</span>);
+00282
+00283 CTransportClass::TOtherSideRegisteredClass osrc;
+00284
+00285 <a class="code" href="a04558.html#a11">uint32</a> nbClass;
+00286 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (nbClass);
+00287
+00288 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"NETTC: %d class"</span>, nbClass);
+00289
+00290 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; nbClass; i++)
+00291 {
+00292 string className;
+00293 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (className);
+00294
+00295 osrc.push_back(make_pair (className, vector&lt;CTransportClass::CRegisteredBaseProp&gt;()));
+00296
+00297 <a class="code" href="a04558.html#a11">uint32</a> nbProp;
+00298 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (nbProp);
+00299
+00300 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"NETTC: %s (%d prop)"</span>, className.c_str(), nbProp);
+00301
+00302 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; nbProp; j++)
+00303 {
+00304 CTransportClass::CRegisteredBaseProp prop;
+00305 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (prop.Name);
+00306 msgin.<a class="code" href="a02270.html#NLMISC_1_1IStreama7">serialEnum</a> (prop.Type);
+00307 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"NETTC: %s %s"</span>, prop.Name.c_str(), <a class="code" href="a05379.html#a193">typeToString</a>(prop.Type).c_str());
+00308 osrc[osrc.size()-1].second.push_back (prop);
+00309 }
+00310 }
+00311
+00312 <span class="comment">// we have the good structure</span>
+00313 CTransportClass::registerOtherSideClass ((<a class="code" href="a04558.html#a7">uint8</a>)sid, osrc);
+00314 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a196" doxytag="NLNET::cbTCUpService" ></a><p>
+<table class="mdTable" 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 cbTCUpService </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06580.html#l00322">322</a> of file <a class="el" href="a06580.html">transport_class.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a06580.html#l00330">NLNET::CTransportClass::init()</a>.
+<p>
+<div class="fragment"><pre>00323 {
+00324 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"NETTC: CTransportClass Service %s %d is up"</span>, serviceName.c_str(), sid);
+00325 <span class="keywordflow">if</span> (sid &gt;= 256)
+00326 <span class="keywordflow">return</span>;
+00327 CTransportClass::sendLocalRegisteredClass ((<a class="code" href="a04558.html#a7">uint8</a>)sid);
+00328 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a162" doxytag="NLNET::cbUnregisterBroadcast" ></a><p>
+<table class="mdTable" 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 cbUnregisterBroadcast </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00178">178</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+References <a class="el" href="a06089.html#l00056">_UnregistrationBroadcastCallback</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06090.html#l00042">TServiceId</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00179 {
+00180 string name;
+00181 <a class="code" href="a05379.html#a93">TServiceId</a> sid;
+00182 vector&lt;CInetAddress&gt; addrs;
+00183
+00184 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00185 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (sid);
+00186
+00187 <span class="comment">// remove it in the list, if the service is not found, ignore it</span>
+00188
+00189 CNamingClient::RegisteredServicesMutex.enter ();
+00190 <span class="keywordflow">for</span> (std::list&lt;CNamingClient::CServiceEntry&gt;::iterator it = CNamingClient::RegisteredServices.begin(); it != CNamingClient::RegisteredServices.end (); it++)
+00191 {
+00192 <span class="keywordflow">if</span> ((*it).SId == sid)
+00193 {
+00194 <span class="comment">// check the structure</span>
+00195 <a class="code" href="a04199.html#a8">nlassertex</a> ((*it).Name == name, (<span class="stringliteral">"%s %s"</span>,(*it).Name.c_str(), name.c_str()));
+00196
+00197 addrs = (*it).Addr;
+00198
+00199 CNamingClient::RegisteredServices.erase (it);
+00200 <span class="keywordflow">break</span>;
+00201 }
+00202 }
+00203 CNamingClient::RegisteredServicesMutex.leave ();
+00204
+00205 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"NC: Unregistration Broadcast of the service %s-%hu"</span>, name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)sid);
+00206
+00207 <span class="comment">// send the ACK to the NS</span>
+00208
+00209 <a class="code" href="a02918.html">CMessage</a> msgout (CNamingClient::_Connection-&gt;getSIDA(), <span class="stringliteral">"ACK_UNI"</span>);
+00210 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (sid);
+00211 CNamingClient::_Connection-&gt;send (msgout);
+00212
+00213 <span class="comment">// oh my god, it s my sid! but i m alive, why this f*cking naming service want to kill me? ok, i leave it alone!</span>
+00214 <span class="keywordflow">if</span>(CNamingClient::_MySId == sid)
+00215 {
+00216 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"NC: Naming Service asked me to leave, I leave!"</span>);
+00217 IService::getInstance()-&gt;exit();
+00218 <span class="keywordflow">return</span>;
+00219 }
+00220
+00221 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a34">_UnregistrationBroadcastCallback</a> != NULL)
+00222 <a class="code" href="a05379.html#a34">_UnregistrationBroadcastCallback</a> (name, sid, addrs);
+00223
+00224 <span class="comment">//CNamingClient::displayRegisteredServices ();</span>
+00225 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a144" doxytag="NLNET::cbWSChooseShard" ></a><p>
+<table class="mdTable" 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 cbWSChooseShard </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00100">100</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05962.html#l00054">ListenAddr</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05962.html#l00051">PendingUsers</a>, <a class="el" href="a05962.html#l00079">refreshPendingList()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05961.html#l00095">NLNET::CLoginCookie::toString()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 <span class="comment">// the WS call me that a new client want to come in my shard</span>
+00103 string reason, userName, userPriv;
+00104 CLoginCookie cookie;
+00105
+00106 <a class="code" href="a05379.html#a143">refreshPendingList</a> ();
+00107
+00108 <span class="comment">//</span>
+00109 <span class="comment">// S08: receive "CS" message from WS and send "SCS" message to WS</span>
+00110 <span class="comment">//</span>
+00111
+00112 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (cookie);
+00113 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (userName, userPriv);
+00114
+00115 <a class="code" href="a03889.html">list&lt;CPendingUser&gt;</a>::iterator it;
+00116 <span class="keywordflow">for</span> (it = <a class="code" href="a05379.html#a20">PendingUsers</a>.begin(); it != <a class="code" href="a05379.html#a20">PendingUsers</a>.end (); it++)
+00117 {
+00118 <span class="keywordflow">if</span> ((*it).Cookie == cookie)
+00119 {
+00120 <span class="comment">// the cookie already exists, erase it and return false</span>
+00121 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LS: Cookie %s is already in the pending user list"</span>, cookie.toString().c_str());
+00122 <a class="code" href="a05379.html#a20">PendingUsers</a>.erase (it);
+00123 reason = <span class="stringliteral">"cookie already exists"</span>;
+00124 <span class="keywordflow">break</span>;
+00125 }
+00126 }
+00127 <span class="keywordflow">if</span> (it == <a class="code" href="a05379.html#a20">PendingUsers</a>.end ())
+00128 {
+00129 <span class="comment">// add it to the awaiting client</span>
+00130 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"LS: New cookie %s (name '%s' priv '%s') inserted in the pending user list (awaiting new client)"</span>, cookie.toString().c_str(), userName.c_str(), userPriv.c_str());
+00131 <a class="code" href="a05379.html#a20">PendingUsers</a>.push_back (CPendingUser (cookie, userName, userPriv));
+00132 reason = <span class="stringliteral">""</span>;
+00133 }
+00134
+00135 <a class="code" href="a02918.html">CMessage</a> msgout (<span class="stringliteral">"SCS"</span>);
+00136 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (reason);
+00137 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (cookie);
+00138 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (ListenAddr);
+00139 CUnifiedNetwork::getInstance()-&gt;send (<span class="stringliteral">"WS"</span>, msgout);
+00140 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a145" doxytag="NLNET::cbWSDisconnectClient" ></a><p>
+<table class="mdTable" 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 cbWSDisconnectClient </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>serviceName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00142">142</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05528.html#l00246">NLNET::CCallbackServer::disconnect()</a>, <a class="el" href="a05962.html#l00060">DisconnectClientCallback</a>, <a class="el" href="a05962.html#l00063">ModeTcp</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05962.html#l00053">Server</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05962.html#l00069">UserIdSockAssociations</a>.
+<p>
+<div class="fragment"><pre>00143 {
+00144 <span class="comment">// the WS tells me that i have to disconnect a client</span>
+00145
+00146 <a class="code" href="a04558.html#a11">uint32</a> userid;
+00147 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (userid);
+00148
+00149 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a26">ModeTcp</a>)
+00150 {
+00151 map&lt;uint32, TSockId&gt;::iterator it = <a class="code" href="a05379.html#a28">UserIdSockAssociations</a>.find (userid);
+00152 <span class="keywordflow">if</span> (it == <a class="code" href="a05379.html#a28">UserIdSockAssociations</a>.end ())
+00153 {
+00154 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LS: Can't disconnect the user %d, he is not found"</span>, userid);
+00155 }
+00156 <span class="keywordflow">else</span>
+00157 {
+00158 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"LS: Disconnect the user %d"</span>, userid);
+00159 <a class="code" href="a05379.html#a21">Server</a>-&gt;<a class="code" href="a02307.html#NLNET_1_1CCallbackServera7">disconnect</a> ((*it).second);
+00160 }
+00161 }
+00162
+00163 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a25">DisconnectClientCallback</a> != NULL)
+00164 {
+00165 <a class="code" href="a05379.html#a25">DisconnectClientCallback</a> (userid);
+00166 }
+00167 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a151" doxytag="NLNET::cfcbAcceptInvalidCookie" ></a><p>
+<table class="mdTable" 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 cfcbAcceptInvalidCookie </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00272">272</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05962.html#l00056">AcceptInvalidCookie</a>, <a class="el" href="a05597.html#l00058">NLMISC::CConfigFile::CVar::asInt()</a>, and <a class="el" href="a05622.html#l00111">nlinfo</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00295">NLNET::CLoginServer::init()</a>.
+<p>
+<div class="fragment"><pre>00273 {
+00274 <span class="comment">// set the new ListenAddr</span>
+00275 <a class="code" href="a05379.html#a23">AcceptInvalidCookie</a> = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a>() == 1;
+00276
+00277 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"LS: This service %saccept invalid cookie"</span>, AcceptInvalidCookie?<span class="stringliteral">""</span>:<span class="stringliteral">"doesn't "</span>);
+00278 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a150" doxytag="NLNET::cfcbDefaultUserPriv" ></a><p>
+<table class="mdTable" 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 cfcbDefaultUserPriv </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00264">264</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05597.html#l00097">NLMISC::CConfigFile::CVar::asString()</a>, <a class="el" href="a05962.html#l00058">DefaultUserPriv</a>, and <a class="el" href="a05622.html#l00111">nlinfo</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00295">NLNET::CLoginServer::init()</a>.
+<p>
+<div class="fragment"><pre>00265 {
+00266 <span class="comment">// set the new ListenAddr</span>
+00267 <a class="code" href="a05379.html#a24">DefaultUserPriv</a> = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>();
+00268
+00269 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"LS: The default user priv is '%s'"</span>, <a class="code" href="a05379.html#a24">DefaultUserPriv</a>.c_str());
+00270 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a149" doxytag="NLNET::cfcbListenAddress" ></a><p>
+<table class="mdTable" 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 cfcbListenAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00259">259</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05597.html#l00097">NLMISC::CConfigFile::CVar::asString()</a>, and <a class="el" href="a05962.html#l00244">setListenAddress()</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00295">NLNET::CLoginServer::init()</a>.
+<p>
+<div class="fragment"><pre>00260 {
+00261 <a class="code" href="a05379.html#a148">setListenAddress</a> (var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_3">asString</a>());
+00262 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a152" doxytag="NLNET::cfcbTimeBeforeEraseCookie" ></a><p>
+<table class="mdTable" 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 cfcbTimeBeforeEraseCookie </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02402.html">CConfigFile::CVar</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00280">280</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05597.html#l00058">NLMISC::CConfigFile::CVar::asInt()</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05962.html#l00066">TimeBeforeEraseCookie</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00295">NLNET::CLoginServer::init()</a>.
+<p>
+<div class="fragment"><pre>00281 {
+00282 <span class="comment">// set the new ListenAddr</span>
+00283 <a class="code" href="a05379.html#a27">TimeBeforeEraseCookie</a> = var.<a class="code" href="a02402.html#NLMISC_1_1CConfigFile_1_1CVarz1933_2">asInt</a>();
+00284
+00285 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"LS: This service will remove cookie after %d seconds"</span>, TimeBeforeEraseCookie);
+00286 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a111" doxytag="NLNET::cleanRequest" ></a><p>
+<table class="mdTable" 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 cleanRequest </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00310">310</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00467">NLMISC::CLog::displayRaw()</a>, <a class="el" href="a05943.html#l00442">NLMISC::CLog::displayRawNL()</a>, <a class="el" href="a05621.html#l00091">NLMISC::InfoLog</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05391.html#l00091">Requests</a>, <a class="el" href="a05391.html#l00093">RequestTimeout</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05979.html#l00423">NLMISC::CMemStream::serialCont()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00648">updateAdmin()</a>.
+<p>
+<div class="fragment"><pre>00311 {
+00312 <a class="code" href="a04558.html#a11">uint32</a> currentTime = CTime::getSecondsSince1970 ();
+00313
+00314 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0 ; i &lt; <a class="code" href="a05379.html#a4">Requests</a>.size ();)
+00315 {
+00316 <span class="comment">// timeout</span>
+00317 <span class="keywordflow">if</span> (currentTime &gt;= <a class="code" href="a05379.html#a4">Requests</a>[i].Time+<a class="code" href="a05379.html#a5">RequestTimeout</a>)
+00318 {
+00319 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: **** i %d rid %d -&gt; Requests[i].NbWaiting (%d) != Requests[i].NbReceived (%d)"</span>, i, Requests[i].Id, Requests[i].NbWaiting, Requests[i].NbReceived);
+00320 <a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting = <a class="code" href="a05379.html#a4">Requests</a>[i].NbReceived;
+00321 }
+00322
+00323 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting &lt;= <a class="code" href="a05379.html#a4">Requests</a>[i].NbReceived)
+00324 {
+00325 <span class="comment">// the request is over, send to the php</span>
+00326
+00327 <a class="code" href="a02918.html">CMessage</a> msgout(<span class="stringliteral">"VIEW"</span>);
+00328 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (Requests[i].Id);
+00329
+00330 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; <a class="code" href="a05379.html#a4">Requests</a>[i].Answers.size (); j++)
+00331 {
+00332 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (Requests[i].Answers[j].first);
+00333 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea54">serialCont</a> (Requests[i].Answers[j].second);
+00334 }
+00335
+00336 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].SId == 0)
+00337 {
+00338 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Receive an answer for the fake request %d with %d answers"</span>, Requests[i].Id, Requests[i].Answers.size ());
+00339 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; <a class="code" href="a05379.html#a4">Requests</a>[i].Answers.size (); j++)
+00340 {
+00341 <a class="code" href="a04558.html#a15">uint</a> k;
+00342 <span class="keywordflow">for</span> (k = 0; k &lt; <a class="code" href="a05379.html#a4">Requests</a>[i].Answers[j].first.size(); k++)
+00343 {
+00344 <a class="code" href="a05378.html#a12">InfoLog</a>-&gt;displayRaw (<span class="stringliteral">"%-10s"</span>, Requests[i].Answers[j].first[k].c_str());
+00345 }
+00346 <a class="code" href="a05378.html#a12">InfoLog</a>-&gt;displayRawNL(<span class="stringliteral">""</span>);
+00347 <span class="keywordflow">for</span> (k = 0; k &lt; <a class="code" href="a05379.html#a4">Requests</a>[i].Answers[j].second.size(); k++)
+00348 {
+00349 <a class="code" href="a05378.html#a12">InfoLog</a>-&gt;displayRaw (<span class="stringliteral">"%-10s"</span>, Requests[i].Answers[j].second[k].c_str());
+00350 }
+00351 <a class="code" href="a05378.html#a12">InfoLog</a>-&gt;displayRawNL(<span class="stringliteral">""</span>);
+00352 <a class="code" href="a05378.html#a12">InfoLog</a>-&gt;displayRawNL(<span class="stringliteral">"-------------------------"</span>);
+00353 }
+00354 }
+00355 <span class="keywordflow">else</span>
+00356 {
+00357 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: The request is over, send the result to AES"</span>);
+00358 CUnifiedNetwork::getInstance ()-&gt;send (Requests[i].SId, msgout);
+00359 }
+00360
+00361 <span class="comment">// set to 0 to erase it</span>
+00362 <a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting = 0;
+00363 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"ADMIN: ++ i %d rid %d NbWaiting0 %d NbReceived %d"</span>, i, Requests[i].Id, Requests[i].NbWaiting, Requests[i].NbReceived);
+00364 }
+00365
+00366 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting == 0)
+00367 {
+00368 <a class="code" href="a05379.html#a4">Requests</a>.erase (<a class="code" href="a05379.html#a4">Requests</a>.begin ()+i);
+00369 }
+00370 <span class="keywordflow">else</span>
+00371 {
+00372 i++;
+00373 }
+00374 }
+00375 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a147" doxytag="NLNET::ClientConnection" ></a><p>
+<table class="mdTable" 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 ClientConnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00230">230</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05526.html#l00471">NLNET::CCallbackNetBase::authorizeOnly()</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05962.html#l00053">Server</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>.
+<p>
+<div class="fragment"><pre>00231 {
+00232 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"LS: new client connection: %s"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString ().c_str ());
+00233
+00234 <span class="comment">// the client could only call "SV" message</span>
+00235 <a class="code" href="a05379.html#a21">Server</a>-&gt;<a class="code" href="a02306.html#NLNET_1_1CCallbackServera1">authorizeOnly</a> (<span class="stringliteral">"SV"</span>, from);
+00236 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a205" doxytag="NLNET::createMessage" ></a><p>
+<table class="mdTable" 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 createMessage </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgout</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>args</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CLog &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>log</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l01892">1892</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00323">NLMISC::CLog::displayNL()</a>, <a class="el" href="a05673.html#l00488">NLMISC::CEntityId::fromString()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00097">sint16</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05981.html#l00101">sint64</a>, <a class="el" href="a05981.html#l00095">sint8</a>, <a class="el" href="a05646.html#l00244">type</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00102">uint64</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00237">v</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01983">NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>01893 {
+01894 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 2; i &lt; args.size (); i+=2)
+01895 {
+01896 string <a class="code" href="a04223.html#a581">type</a> = args[i+0];
+01897 string <a class="code" href="a04223.html#a658">value</a> = args[i+1];
+01898
+01899 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"s8"</span>) { <a class="code" href="a04558.html#a6">sint8</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01900 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"s16"</span>) { <a class="code" href="a04558.html#a8">sint16</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01901 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"s32"</span>) { <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01902 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"s64"</span>) { <a class="code" href="a04558.html#a12">sint64</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01903 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"u8"</span>) { <a class="code" href="a04558.html#a7">uint8</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01904 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"u16"</span>) { <a class="code" href="a04558.html#a9">uint16</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01905 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"u32"</span>) { <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01906 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"u64"</span>) { <a class="code" href="a04558.html#a13">uint64</a> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01907 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"f"</span>) { <span class="keywordtype">float</span> <a class="code" href="a04223.html#a576">v</a> = (<span class="keywordtype">float</span>)atof(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01908 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"d"</span>) { <span class="keywordtype">double</span> <a class="code" href="a04223.html#a576">v</a> = atof(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01909 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"b"</span>) { <span class="keywordtype">bool</span> <a class="code" href="a04223.html#a576">v</a> = atoi(<a class="code" href="a04223.html#a658">value</a>.c_str()) == 1; msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (v); }
+01910 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"s"</span>) { msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (value); }
+01911 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> == <span class="stringliteral">"e"</span>) { <a class="code" href="a02189.html">CEntityId</a> e; e.<a class="code" href="a02189.html#NLAIAGENT_1_1CIdenta6">fromString</a>(<a class="code" href="a04223.html#a658">value</a>.c_str()); msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(e); }
+01912 <span class="keywordflow">else</span> { log.displayNL (<span class="stringliteral">"type '%s' is not a valid type"</span>, <a class="code" href="a04223.html#a581">type</a>.c_str()); <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+01913 }
+01914 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01915 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a110" doxytag="NLNET::emptyRequest" ></a><p>
+<table class="mdTable" 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 emptyRequest </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rid</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00298">298</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05391.html#l00091">Requests</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00299 {
+00300 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0 ; i &lt; <a class="code" href="a05379.html#a4">Requests</a>.size (); i++)
+00301 {
+00302 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].Id == rid &amp;&amp; <a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting != 0)
+00303 {
+00304 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00305 }
+00306 }
+00307 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00308 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a157" doxytag="NLNET::EventToString" ></a><p>
+<table class="mdTable" 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 NLNET::EventToString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TNetworkEvent&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>e</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+TNetworkEvent -&gt; string.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06028.html#l00039">39</a> of file <a class="el" href="a06028.html">message_recorder.cpp</a>.
+<p>
+References <a class="el" href="a05379.html#a225a90">Accepting</a>, <a class="el" href="a05379.html#a225a88">Connecting</a>, <a class="el" href="a05379.html#a225a89">ConnFailing</a>, <a class="el" href="a05379.html#a225a91">Disconnecting</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05379.html#a225a87">Receiving</a>, and <a class="el" href="a05379.html#a225a86">Sending</a>.
+<p>
+Referenced by <a class="el" href="a06028.html#l00308">NLNET::CMessageRecorder::checkNextOne()</a>, and <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>.
+<p>
+<div class="fragment"><pre>00040 {
+00041 <span class="keywordflow">switch</span> ( e )
+00042 {
+00043 <span class="keywordflow">case</span> <a class="code" href="a05379.html#a225a86">Sending</a>: <span class="keywordflow">return</span> <span class="stringliteral">"SEND"</span>;
+00044 <span class="keywordflow">case</span> <a class="code" href="a05379.html#a225a87">Receiving</a>: <span class="keywordflow">return</span> <span class="stringliteral">"RECV"</span>;
+00045 <span class="keywordflow">case</span> <a class="code" href="a05379.html#a225a88">Connecting</a>: <span class="keywordflow">return</span> <span class="stringliteral">"CONN"</span>;
+00046 <span class="keywordflow">case</span> <a class="code" href="a05379.html#a225a89">ConnFailing</a>: <span class="keywordflow">return</span> <span class="stringliteral">"CNFL"</span>;
+00047 <span class="keywordflow">case</span> <a class="code" href="a05379.html#a225a90">Accepting</a>: <span class="keywordflow">return</span> <span class="stringliteral">"ACCP"</span>;
+00048 <span class="keywordflow">case</span> <a class="code" href="a05379.html#a225a91">Disconnecting</a>: <span class="keywordflow">return</span> <span class="stringliteral">"DISC"</span>;
+00049 <span class="keywordflow">default</span>: <a class="code" href="a04199.html#a12">nlstop</a>; <span class="keywordflow">return</span> <span class="stringliteral">"-ERR-"</span>;
+00050 }
+00051 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a197" doxytag="NLNET::getNameOfMessageOrTransportClass" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::getNameOfMessageOrTransportClass </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">NLNET::CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgName</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the name of message (for displaying), or extract the class name if it is a transport class.<p>
+Preconditions:<ul>
+<li>msgin is an input message that contains a valid message</li></ul>
+<p>
+Postconditions:<ul>
+<li>msgin.getPos() was modified</li><li>msgName contains "msg %s" or "transport class %s" where s is the name of message, or the name transport class is the message is a CT_MSG </li></ul>
+
+<p>
+Definition at line <a class="el" href="a06580.html#l00414">414</a> of file <a class="el" href="a06580.html">transport_class.cpp</a>.
+<p>
+References <a class="el" href="a06026.html#l00309">NLNET::CMessage::getHeaderSize()</a>, <a class="el" href="a06026.html#l00411">NLNET::CMessage::getName()</a>, <a class="el" href="a05978.html#l00177">NLMISC::CMemStream::seek()</a>, and <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>.
+<p>
+<div class="fragment"><pre>00415 {
+00416 <span class="keywordflow">if</span> ( msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a>() == <span class="stringliteral">"CT_MSG"</span> )
+00417 {
+00418 <span class="keywordflow">try</span>
+00419 {
+00420 msgin.<a class="code" href="a02271.html#NLMISC_1_1CStringStreama22">seek</a>( msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea14">getHeaderSize</a>(), <a class="code" href="a02270.html#NLMISC_1_1IStreamz2036_0NLMISC_1_1IStreamw0">NLMISC::IStream::begin</a> );
+00421 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( msgName );
+00422 }
+00423 <span class="keywordflow">catch</span> ( EStreamOverflow&amp; )
+00424 {
+00425 msgName = <span class="stringliteral">"&lt;Name not found&gt;"</span>;
+00426 }
+00427 msgName = <span class="stringliteral">"transport class "</span> + msgName;
+00428 }
+00429 <span class="keywordflow">else</span>
+00430 {
+00431 msgName = <span class="stringliteral">"msg "</span> + msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a>();
+00432 }
+00433 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a115" doxytag="NLNET::initAdmin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::initAdmin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>dontUseAES</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00636">636</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05391.html#l00169">cbAESConnection()</a>, and <a class="el" href="a05391.html#l00191">cbAESDisconnection()</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00637 {
+00638 <span class="keywordflow">if</span> (!dontUseAES)
+00639 {
+00640 CUnifiedNetwork::getInstance()-&gt;setServiceUpCallback (<span class="stringliteral">"AES"</span>, cbAESConnection, NULL);
+00641 CUnifiedNetwork::getInstance()-&gt;setServiceDownCallback (<span class="stringliteral">"AES"</span>, cbAESDisconnection, NULL);
+00642 CUnifiedNetwork::getInstance()-&gt;addService (<span class="stringliteral">"AES"</span>, <a class="code" href="a02665.html">CInetAddress</a>(<span class="stringliteral">"localhost:49997"</span>));
+00643 }
+00644 CUnifiedNetwork::getInstance()-&gt;addCallbackArray (CallbackArray, <span class="keyword">sizeof</span>(CallbackArray)/<span class="keyword">sizeof</span>(CallbackArray[0]));
+00645 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a174" doxytag="NLNET::initSignal" ></a><p>
+<table class="mdTable" 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 initSignal </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00211">211</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05586.html#l00093">NLMISC::getThreadId()</a>, <a class="el" href="a06364.html#l00164">sigHandler()</a>, and <a class="el" href="a06364.html#l00126">SignalisedThread</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00212 {
+00213 <a class="code" href="a05379.html#a49">SignalisedThread</a> = <a class="code" href="a05378.html#a257">getThreadId</a> ();
+00214 <span class="preprocessor">#ifdef NL_DEBUG</span>
+00215 <span class="preprocessor"></span> <span class="comment">// in debug mode, we only trap the SIGINT signal</span>
+00216 signal(Signal[3], sigHandler);
+00217 <span class="comment">//nldebug("Signal : %s (%d) trapped", SignalName[3], Signal[3]);</span>
+00218 <span class="preprocessor">#else</span>
+00219 <span class="preprocessor"></span> <span class="comment">// in release, redirect all signals</span>
+00220 <span class="comment">/* don't redirect now because to hard to debug...</span>
+00221 <span class="comment"> for (int i = 0; i &lt; (int)(sizeof(Signal)/sizeof(Signal[0])); i++)</span>
+00222 <span class="comment"> {</span>
+00223 <span class="comment"> signal(Signal[i], sigHandler);</span>
+00224 <span class="comment"> nldebug("Signal %s (%d) trapped", SignalName[i], Signal[i]);</span>
+00225 <span class="comment"> }</span>
+00226 <span class="comment">*/</span>
+00227 <span class="preprocessor">#endif</span>
+00228 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a140" doxytag="NLNET::internalIPAddressToString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::internalIPAddressToString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>addr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Take an internal address and convert it to a internet dot string.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00527">527</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01759">NLNET::CUnifiedNetwork::addNetworkAssociation()</a>, and <a class="el" href="a06645.html#l01599">NLNET::CUnifiedNetwork::displayInternalTables()</a>.
+<p>
+<div class="fragment"><pre>00528 {
+00529 string <a class="code" href="a04223.html#a643">res</a>;
+00530 <a class="code" href="a04223.html#a643">res</a> = <a class="code" href="a05378.html#a244">toString</a>((addr)&amp;0xFF);
+00531 <a class="code" href="a04223.html#a643">res</a> += <span class="stringliteral">"."</span>;
+00532 <a class="code" href="a04223.html#a643">res</a> += <a class="code" href="a05378.html#a244">toString</a>((addr&gt;&gt;8)&amp;0xFF);
+00533 <a class="code" href="a04223.html#a643">res</a> += <span class="stringliteral">"."</span>;
+00534 <a class="code" href="a04223.html#a643">res</a> += <a class="code" href="a05378.html#a244">toString</a>((addr&gt;&gt;16)&amp;0xFF);
+00535 <a class="code" href="a04223.html#a643">res</a> += <span class="stringliteral">"."</span>;
+00536 <a class="code" href="a04223.html#a643">res</a> += <a class="code" href="a05378.html#a244">toString</a>((addr&gt;&gt;24)&amp;0xFF);
+00537 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a643">res</a>;
+00538 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a112" doxytag="NLNET::isRemoteCommand" ></a><p>
+<table class="mdTable" 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 isRemoteCommand </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>str</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00378">378</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00386">serviceGetView()</a>.
+<p>
+<div class="fragment"><pre>00379 {
+00380 <span class="keywordflow">if</span> (str.size()&lt;2) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00381 <span class="keywordflow">return</span> tolower(str[0]) == <span class="charliteral">'r'</span> &amp;&amp; tolower(str[1]) == <span class="charliteral">'c'</span>;
+00382 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a169" doxytag="NLNET::NetSpeedLoop" ></a><p>
+<table class="mdTable" 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="a03646.html">CVariable</a>&lt;<a class="el" href="a04558.html#a10">sint32</a>&gt; NetSpeedLoop </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">"NetSpeedLoop"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"duration of the last user loop(<a class="el" href="a04223.html#a647">in</a> ms)"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>10&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>false&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a125" doxytag="NLNET::nettrace_mutex" ></a><p>
+<table class="mdTable" 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::CMutex nettrace_mutex </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">"nettrace_mutex"&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a216" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">isServiceLocal&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Says if a service is local or not compare with this service"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"&lt; sid &gt;|&lt; service name &gt;"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l02156">2156</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00448">NLNET::CUnifiedNetwork::_SId</a>, <a class="el" href="a06645.html#l01420">NLNET::CUnifiedNetwork::isServiceLocal()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>02157 {
+02158 <span class="keywordflow">if</span>(args.size() != 1) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02159
+02160 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+02161 {
+02162 log.displayNL(<span class="stringliteral">"Can't do that because the service doesn't use CUnifiedNetwork"</span>);
+02163 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02164 }
+02165
+02166 <a class="code" href="a04558.html#a9">uint16</a> sid = atoi (args[0].c_str ());
+02167 <span class="keywordflow">if</span> (sid &gt; 0)
+02168 {
+02169 log.displayNL (<span class="stringliteral">"Service %s-%hu and sid %s are %son the same computer"</span>, CUnifiedNetwork::getInstance ()-&gt;_Name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)CUnifiedNetwork::getInstance ()-&gt;_SId, args[0].c_str(), CUnifiedNetwork::getInstance ()-&gt;isServiceLocal (sid)?<span class="stringliteral">""</span>:<span class="stringliteral">"not "</span>);
+02170 }
+02171 <span class="keywordflow">else</span>
+02172 {
+02173 log.displayNL (<span class="stringliteral">"Service %s-%hu and %s are %son the same computer"</span>, CUnifiedNetwork::getInstance ()-&gt;_Name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)CUnifiedNetwork::getInstance ()-&gt;_SId, args[0].c_str(), CUnifiedNetwork::getInstance ()-&gt;isServiceLocal (args[0])?<span class="stringliteral">""</span>:<span class="stringliteral">"not "</span>);
+02174 }
+02175
+02176 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+02177 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a215" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">l5Callback&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Displays all callback registered <a class="el" href="a04223.html#a647">in</a> layer5"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l02136">2136</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00454">NLNET::CUnifiedNetwork::_Callbacks</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>02137 {
+02138 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02139
+02140 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+02141 {
+02142 log.displayNL(<span class="stringliteral">"Can't display internal table because layer5 is not used"</span>);
+02143 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02144 }
+02145
+02146 log.displayNL (<span class="stringliteral">"There're %d registered callbacks:"</span>, CUnifiedNetwork::getInstance()-&gt;_Callbacks.size());
+02147 <a class="code" href="a04558.html#a15">uint</a> i = 0;
+02148 <span class="keywordflow">for</span> (CUnifiedNetwork::TMsgMappedCallback::iterator it = CUnifiedNetwork::getInstance()-&gt;_Callbacks.begin(); it != CUnifiedNetwork::getInstance()-&gt;_Callbacks.end(); it++)
+02149 {
+02150 log.displayNL (<span class="stringliteral">" %d '%s' %s"</span>, i++, (*it).first.c_str(), ((*it).second == NULL?<span class="stringliteral">"have a NULL address"</span>:<span class="stringliteral">""</span>));
+02151 }
+02152
+02153 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+02154 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a214" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">l5InternalTables&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Displays internal table of network layer5"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l02121">2121</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01599">NLNET::CUnifiedNetwork::displayInternalTables()</a>.
+<p>
+<div class="fragment"><pre>02122 {
+02123 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02124
+02125 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+02126 {
+02127 log.displayNL(<span class="stringliteral">"Can't display internal table because layer5 is not used"</span>);
+02128 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02129 }
+02130
+02131 CUnifiedNetwork::getInstance ()-&gt;displayInternalTables(&amp;log);
+02132
+02133 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+02134 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a213" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">l5QueuesStats&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Displays queues stats of network layer5"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l02098">2098</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00424">NLNET::CUnifiedNetwork::_IdCnx</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>02099 {
+02100 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02101
+02102 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+02103 {
+02104 log.displayNL(<span class="stringliteral">"Can't display internal table because layer5 is not used"</span>);
+02105 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+02106 }
+02107
+02108 log.displayNL (<span class="stringliteral">"%u Unified Connections:"</span>, CUnifiedNetwork::getInstance()-&gt;_IdCnx.size ());
+02109 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; CUnifiedNetwork::getInstance()-&gt;_IdCnx.size (); i++)
+02110 {
+02111 <span class="keywordflow">if</span>(CUnifiedNetwork::getInstance()-&gt;_IdCnx[i].State != CUnifiedNetwork::CUnifiedConnection::NotUsed)
+02112 {
+02113 CUnifiedNetwork::getInstance()-&gt;_IdCnx[i].display (<span class="keyword">true</span>, &amp;log);
+02114 }
+02115 }
+02116
+02117 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+02118 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a212" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">msgout&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Send a message to a specified service(ex:msgout 128 REGISTER u32 10 b 1 f 1.5)"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"&lt; ServiceName &gt;|&lt; ServiceId &gt;&lt; MessageName &gt; *"&nbsp;</td>
+ <td class="mdname" nowrap>[&lt; ParamType &gt;&lt; Param &gt;]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l02048">2048</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01892">createMessage()</a>, <a class="el" href="a06645.html#l01335">NLNET::CUnifiedNetwork::getNetBase()</a>, <a class="el" href="a02306.html#NLNET_1_1CCallbackNetBasea19">NLNET::CCallbackNetBase::send()</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>02048 : msgout 128 REGISTER u32 10 b 1 f 1.5)<span class="stringliteral">", "</span>&lt;ServiceName&gt;|&lt;ServiceId&gt; &lt;MessageName&gt; [&lt;ParamType&gt; &lt;<a class="code" href="a05364.html#a1">Param</a>&gt;]*<span class="stringliteral">")</span>
+02049 <span class="stringliteral">{</span>
+02050 <span class="stringliteral"> if(args.size() &lt; 2) return false;</span>
+02051 <span class="stringliteral"></span>
+02052 <span class="stringliteral"> if (!CUnifiedNetwork::isUsed ())</span>
+02053 <span class="stringliteral"> {</span>
+02054 <span class="stringliteral"> log.displayNL("</span>Can'<a class="code" href="a04223.html#a627">t</a> <span class="keywordflow">do</span> that because the service doesn'<a class="code" href="a04223.html#a627">t</a> use CUnifiedNetwork<span class="stringliteral">");</span>
+02055 <span class="stringliteral"> return false;</span>
+02056 <span class="stringliteral"> }</span>
+02057 <span class="stringliteral"></span>
+02058 <span class="stringliteral"> uint16 serviceId = atoi (args[0].c_str());</span>
+02059 <span class="stringliteral"> string serviceName = args[0].c_str();</span>
+02060 <span class="stringliteral"> string messageName = args[1].c_str();</span>
+02061 <span class="stringliteral"> </span>
+02062 <span class="stringliteral"> if (serviceId &gt; 255)</span>
+02063 <span class="stringliteral"> {</span>
+02064 <span class="stringliteral"> log.displayNL ("</span>Service Id %d must be between [1;255]<span class="stringliteral">", serviceId);</span>
+02065 <span class="stringliteral"> return false;</span>
+02066 <span class="stringliteral"> }</span>
+02067 <span class="stringliteral"> </span>
+02068 <span class="stringliteral"> if ((args.size()-2) % 2 != 0)</span>
+02069 <span class="stringliteral"> {</span>
+02070 <span class="stringliteral"> log.displayNL ("</span>The number of parameter must be a multiple of 2<span class="stringliteral">");</span>
+02071 <span class="stringliteral"> return false;</span>
+02072 <span class="stringliteral"> }</span>
+02073 <span class="stringliteral"></span>
+02074 <span class="stringliteral"> CMessage msg (messageName);</span>
+02075 <span class="stringliteral"></span>
+02076 <span class="stringliteral"> if (!createMessage (msg, args, log))</span>
+02077 <span class="stringliteral"> return false;</span>
+02078 <span class="stringliteral"></span>
+02079 <span class="stringliteral"> TSockId host = InvalidSockId;</span>
+02080 <span class="stringliteral"> CCallbackNetBase *cnb = NULL;</span>
+02081 <span class="stringliteral"></span>
+02082 <span class="stringliteral"> if (serviceId != 0)</span>
+02083 <span class="stringliteral"> cnb = CUnifiedNetwork::getInstance()-&gt;getNetBase ((uint8)serviceId, host);</span>
+02084 <span class="stringliteral"> else</span>
+02085 <span class="stringliteral"> cnb = CUnifiedNetwork::getInstance()-&gt;getNetBase (serviceName, host);</span>
+02086 <span class="stringliteral"></span>
+02087 <span class="stringliteral"> if (cnb == NULL)</span>
+02088 <span class="stringliteral"> {</span>
+02089 <span class="stringliteral"> log.displayNL ("</span>'%<a class="code" href="a04223.html#a626">s</a>' is a bad &lt;ServiceId&gt; or &lt;ServiceName&gt;<span class="stringliteral">", args[0].c_str());</span>
+02090 <span class="stringliteral"> return false;</span>
+02091 <span class="stringliteral"> }</span>
+02092 <span class="stringliteral"></span>
+02093 <span class="stringliteral"> cnb-&gt;send (msg, host);</span>
+02094 <span class="stringliteral"> </span>
+02095 <span class="stringliteral"> return true;</span>
+02096 <span class="stringliteral">}</span>
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a211" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">msgin&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Simulate an input message <a class="el" href="a04113.html#a70">from</a> another service(ex:msgin 128 REGISTER u32 10 b 1 f 1.5)"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"&lt; ServiceName &gt;|&lt; ServiceId &gt;&lt; MessageName &gt; *"&nbsp;</td>
+ <td class="mdname" nowrap>[&lt; ParamType &gt;&lt; Param &gt;]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l01983">1983</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01892">createMessage()</a>, <a class="el" href="a06645.html#l01393">NLNET::CUnifiedNetwork::findCallback()</a>, <a class="el" href="a06027.html#l00198">NLNET::CMessage::invert()</a>, <a class="el" href="a06646.html#l00052">TUnifiedMsgCallback</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>01983 : msgin 128 REGISTER u32 10 b 1 f 1.5)<span class="stringliteral">", "</span>&lt;ServiceName&gt;|&lt;ServiceId&gt; &lt;MessageName&gt; [&lt;ParamType&gt; &lt;<a class="code" href="a05364.html#a1">Param</a>&gt;]*<span class="stringliteral">")</span>
+01984 <span class="stringliteral">{</span>
+01985 <span class="stringliteral"> if(args.size() &lt; 2) return false;</span>
+01986 <span class="stringliteral"> </span>
+01987 <span class="stringliteral"> if (!CUnifiedNetwork::isUsed ())</span>
+01988 <span class="stringliteral"> {</span>
+01989 <span class="stringliteral"> log.displayNL("</span>Can'<a class="code" href="a04223.html#a627">t</a> <span class="keywordflow">do</span> that because the service doesn'<a class="code" href="a04223.html#a627">t</a> use CUnifiedNetwork<span class="stringliteral">");</span>
+01990 <span class="stringliteral"> return false;</span>
+01991 <span class="stringliteral"> }</span>
+01992 <span class="stringliteral"></span>
+01993 <span class="stringliteral"> uint16 serviceId = atoi (args[0].c_str());</span>
+01994 <span class="stringliteral"> string serviceName = args[0].c_str();</span>
+01995 <span class="stringliteral"> string messageName = args[1].c_str();</span>
+01996 <span class="stringliteral"> </span>
+01997 <span class="stringliteral"> if (serviceId &gt; 255)</span>
+01998 <span class="stringliteral"> {</span>
+01999 <span class="stringliteral"> log.displayNL ("</span>Service Id %d must be between [1;255]<span class="stringliteral">", serviceId);</span>
+02000 <span class="stringliteral"> return false;</span>
+02001 <span class="stringliteral"> }</span>
+02002 <span class="stringliteral"> </span>
+02003 <span class="stringliteral"> if ((args.size()-2) % 2 != 0)</span>
+02004 <span class="stringliteral"> {</span>
+02005 <span class="stringliteral"> log.displayNL ("</span>The number of parameter must be a multiple of 2<span class="stringliteral">");</span>
+02006 <span class="stringliteral"> return false;</span>
+02007 <span class="stringliteral"> }</span>
+02008 <span class="stringliteral"></span>
+02009 <span class="stringliteral"> CMessage msg (messageName);</span>
+02010 <span class="stringliteral">// msg.clear ();</span>
+02011 <span class="stringliteral"></span>
+02012 <span class="stringliteral"> if (!createMessage (msg, args, log))</span>
+02013 <span class="stringliteral"> return false;</span>
+02014 <span class="stringliteral"></span>
+02015 <span class="stringliteral"></span>
+02016 <span class="stringliteral"> msg.invert ();</span>
+02017 <span class="stringliteral"></span>
+02018 <span class="stringliteral"></span>
+02019 <span class="stringliteral"></span>
+02020 <span class="stringliteral"> TUnifiedMsgCallback cb = CUnifiedNetwork::getInstance()-&gt;findCallback (messageName);</span>
+02021 <span class="stringliteral"> </span>
+02022 <span class="stringliteral"> if (cb == NULL)</span>
+02023 <span class="stringliteral"> {</span>
+02024 <span class="stringliteral"> log.displayNL ("</span>Callback <span class="keywordflow">for</span> message '%<a class="code" href="a04223.html#a626">s</a>' is not found<span class="stringliteral">", messageName.c_str());</span>
+02025 <span class="stringliteral"> }</span>
+02026 <span class="stringliteral"> else</span>
+02027 <span class="stringliteral"> {</span>
+02028 <span class="stringliteral"> cb (msg, serviceName, serviceId);</span>
+02029 <span class="stringliteral"> }</span>
+02030 <span class="stringliteral"> </span>
+02031 <span class="stringliteral"> </span>
+02032 <span class="stringliteral"> return true;</span>
+02033 <span class="stringliteral">}</span>
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a191" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">getUnknownConfigFileVariables&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"display the variables <a class="el" href="a04113.html#a70">from</a> config <a class="el" href="a04115.html#a95">file</a> that are called but not present"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01504">1504</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01505 {
+01506 log.displayNL (<span class="stringliteral">"%d Variables not found in the configfile '%s'"</span>, IService::getInstance()-&gt;ConfigFile.UnknownVariables.size(), IService::getInstance()-&gt;ConfigFile.getFilename().c_str() );
+01507 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; IService::getInstance()-&gt;ConfigFile.UnknownVariables.size(); i++)
+01508 {
+01509 log.displayNL (<span class="stringliteral">" %s"</span>, IService::getInstance()-&gt;ConfigFile.UnknownVariables[i].c_str());
+01510 }
+01511 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01512 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a190" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">displayConfigFile&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"display the variables of the default configfile"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01498">1498</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+<div class="fragment"><pre>01499 {
+01500 IService::getInstance()-&gt;ConfigFile.display (&amp;log);
+01501 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01502 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a189" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">getWinDisplayerInfo&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"display the info about the pos and <a class="el" href="a04223.html#a587">size</a> of the window displayer"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01490">1490</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05646.html#l00236">w</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+<div class="fragment"><pre>01491 {
+01492 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a572">x</a>,<a class="code" href="a04223.html#a573">y</a>,<a class="code" href="a04223.html#a575">w</a>,h;
+01493 IService::getInstance()-&gt;WindowDisplayer-&gt;getWindowPos (x,y,w,h);
+01494 log.displayNL (<span class="stringliteral">"Window Displayer : XWinParam = %d; YWinParam = %d; WWinParam = %d; HWinParam = %d;"</span>, x, y, w, h);
+01495 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01496 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a188" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">resetMeasures&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"reset hierarchical timer"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01484">1484</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+<div class="fragment"><pre>01485 {
+01486 IService::getInstance()-&gt;requireResetMeasures();
+01487 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01488 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a187" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">serviceInfo&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"display information about this service"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01454">1454</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00146">CompilationMode</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>01455 {
+01456 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01457
+01458 log.displayNL (<span class="stringliteral">"Service %s '%s' using NeL ("</span>__DATE__<span class="stringliteral">" "</span>__TIME__<span class="stringliteral">")"</span>, IService::getInstance()-&gt;getServiceLongName().c_str(), IService::getInstance()-&gt;getServiceUnifiedName().c_str());
+01459 log.displayNL (<span class="stringliteral">"Service listening port: %d"</span>, IService::getInstance()-&gt;ListeningPort.get());
+01460 log.displayNL (<span class="stringliteral">"Service running directory: '%s'"</span>, IService::getInstance()-&gt;RunningDirectory.c_str());
+01461 log.displayNL (<span class="stringliteral">"Service log directory: '%s'"</span>, IService::getInstance()-&gt;LogDirectory.c_str());
+01462 log.displayNL (<span class="stringliteral">"Service save files directory: '%s'"</span>, IService::getInstance()-&gt;SaveFilesDirectory.c_str());
+01463 log.displayNL (<span class="stringliteral">"Service write files directory: '%s'"</span>, IService::getInstance()-&gt;WriteFilesDirectory.c_str());
+01464 log.displayNL (<span class="stringliteral">"Service config directory: '%s' config filename: '%s.cfg'"</span>, IService::getInstance()-&gt;ConfigDirectory.c_str(), IService::getInstance()-&gt;_LongName.c_str());
+01465 log.displayNL (<span class="stringliteral">"Service id: %d"</span>, IService::getInstance()-&gt;_SId);
+01466 log.displayNL (<span class="stringliteral">"Service update timeout: %dms"</span>, IService::getInstance()-&gt;_UpdateTimeout);
+01467 log.displayNL (<span class="stringliteral">"Service %suse naming service"</span>, IService::getInstance()-&gt;_DontUseNS?<span class="stringliteral">"don't "</span>:<span class="stringliteral">""</span>);
+01468 log.displayNL (<span class="stringliteral">"Service %suse admin executor service"</span>, IService::getInstance()-&gt;_DontUseAES?<span class="stringliteral">"don't "</span>:<span class="stringliteral">""</span>);
+01469 log.displayNL (<span class="stringliteral">"NeL is compiled in %s mode"</span>, <a class="code" href="a05379.html#a55">CompilationMode</a>.c_str());
+01470
+01471 log.displayNL (<span class="stringliteral">"Services arguments: %d args"</span>, IService::getInstance()-&gt;_Args.size ());
+01472 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; IService::getInstance()-&gt;_Args.size (); i++)
+01473 {
+01474 log.displayNL (<span class="stringliteral">" argv[%d] = '%s'"</span>, i, IService::getInstance()-&gt;_Args[i].c_str ());
+01475 }
+01476
+01477 log.displayNL (<span class="stringliteral">"Naming service info: %s"</span>, CNamingClient::info().c_str());
+01478
+01479 ICommand::execute (<span class="stringliteral">"services"</span>, log);
+01480
+01481 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01482 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a186" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">brutalQuit&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"exit the service brutally"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01424">1424</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+<div class="fragment"><pre>01425 {
+01426 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01427
+01428 ::exit (0xFFFFFFFF);
+01429
+01430 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01431 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a185" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">quit&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"exit the service"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01414">1414</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00117">ExitSignalAsked</a>.
+<p>
+<div class="fragment"><pre>01415 {
+01416 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+01417
+01418 log.displayNL(<span class="stringliteral">"User ask me with a command to quit"</span>);
+01419 <a class="code" href="a05379.html#a48">ExitSignalAsked</a> = 0xFFFF;
+01420
+01421 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+01422 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a163" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">services&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"displays registered services"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00557">557</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+<div class="fragment"><pre>00558 {
+00559 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00560
+00561 CNamingClient::displayRegisteredServices (&amp;log);
+00562
+00563 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00564 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a154" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">lsPending&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"displays the <a class="el" href="a03889.html">list</a> of all pending users"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00452">452</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05962.html#l00051">PendingUsers</a>.
+<p>
+<div class="fragment"><pre>00453 {
+00454 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00455
+00456 log.displayNL (<span class="stringliteral">"Display the %d pending users :"</span>, <a class="code" href="a05379.html#a20">PendingUsers</a>.size());
+00457 <span class="keywordflow">for</span> (<a class="code" href="a03889.html">list&lt;CPendingUser&gt;</a>::iterator it = <a class="code" href="a05379.html#a20">PendingUsers</a>.begin(); it != <a class="code" href="a05379.html#a20">PendingUsers</a>.end (); it++)
+00458 {
+00459 log.displayNL (<span class="stringliteral">"&gt; %s %s"</span>, (*it).Cookie.toString().c_str(), (*it).UserName.c_str());
+00460 }
+00461 log.displayNL (<span class="stringliteral">"End of the list"</span>);
+00462
+00463 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00464 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a153" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">lsUsers&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"displays the <a class="el" href="a03889.html">list</a> of all connected users"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00431">431</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05962.html#l00063">ModeTcp</a>, and <a class="el" href="a05962.html#l00069">UserIdSockAssociations</a>.
+<p>
+<div class="fragment"><pre>00432 {
+00433 <span class="keywordflow">if</span>(args.size() != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00434
+00435 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a26">ModeTcp</a>)
+00436 {
+00437 log.displayNL (<span class="stringliteral">"Display the %d connected users :"</span>, <a class="code" href="a05379.html#a28">UserIdSockAssociations</a>.size());
+00438 <span class="keywordflow">for</span> (map&lt;uint32, TSockId&gt;::iterator it = <a class="code" href="a05379.html#a28">UserIdSockAssociations</a>.begin(); it != <a class="code" href="a05379.html#a28">UserIdSockAssociations</a>.end (); it++)
+00439 {
+00440 log.displayNL (<span class="stringliteral">"&gt; %u %s"</span>, (*it).first, (*it).second-&gt;asString().c_str());
+00441 }
+00442 log.displayNL (<span class="stringliteral">"End of the list"</span>);
+00443 }
+00444 <span class="keywordflow">else</span>
+00445 {
+00446 log.displayNL (<span class="stringliteral">"No user list in udp mode"</span>);
+00447 }
+00448
+00449 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00450 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a119" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">getView&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"send a view and receive an array as result"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"&lt; varpath &gt;"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00892">892</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05391.html#l00386">serviceGetView()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00893 {
+00894 <span class="keywordflow">if</span>(args.size() != 1) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00895
+00896 vector&lt;pair&lt;vector&lt;string&gt;, vector&lt;string&gt; &gt; &gt; answer;
+00897 <a class="code" href="a05379.html#a113">serviceGetView</a> (0, args[0], answer);
+00898
+00899 log.displayNL(<span class="stringliteral">"have %d answer"</span>, answer.size());
+00900 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; answer.size(); i++)
+00901 {
+00902 log.displayNL(<span class="stringliteral">" have %d value"</span>, answer[i].first.size());
+00903
+00904 <a class="code" href="a04199.html#a6">nlassert</a> (answer[i].first.size() == answer[i].second.size());
+00905
+00906 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; answer[i].first.size(); j++)
+00907 {
+00908 log.displayNL(<span class="stringliteral">" %s -&gt; %s"</span>, answer[i].first[j].c_str(), answer[i].second[j].c_str());
+00909 }
+00910 }
+00911
+00912 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00913 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a118" doxytag="NLNET::NLMISC_COMMAND" ></a><p>
+<table class="mdTable" 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_COMMAND </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">displayInformations&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"displays all admin informations"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>""&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00875">875</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05391.html#l00084">Alarms</a>, <a class="el" href="a05391.html#l00086">GraphUpdates</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00876 {
+00877 <a class="code" href="a04558.html#a15">uint</a> i;
+00878
+00879 log.displayNL(<span class="stringliteral">"There're %d alarms:"</span>, <a class="code" href="a05379.html#a1">Alarms</a>.size());
+00880 <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="a05379.html#a1">Alarms</a>.size(); i++)
+00881 {
+00882 log.displayNL(<span class="stringliteral">" %d %s %d %s %s"</span>, i, Alarms[i].Name.c_str(), <a class="code" href="a05379.html#a1">Alarms</a>[i].Limit, (<a class="code" href="a05379.html#a1">Alarms</a>[i].GT?<span class="stringliteral">"gt"</span>:<span class="stringliteral">"lt"</span>), (<a class="code" href="a05379.html#a1">Alarms</a>[i].Activated?<span class="stringliteral">"on"</span>:<span class="stringliteral">"off"</span>));
+00883 }
+00884 log.displayNL(<span class="stringliteral">"There're %d graphupdate:"</span>, <a class="code" href="a05379.html#a2">GraphUpdates</a>.size());
+00885 <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="a05379.html#a2">GraphUpdates</a>.size(); i++)
+00886 {
+00887 log.displayNL(<span class="stringliteral">" %d %s %d %d"</span>, i, GraphUpdates[i].Name.c_str(), <a class="code" href="a05379.html#a2">GraphUpdates</a>[i].Update, <a class="code" href="a05379.html#a2">GraphUpdates</a>[i].LastUpdate);
+00888 }
+00889 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00890 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a210" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>SentBytes&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"total of bytes sent by this service"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l01958">1958</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01239">NLNET::CUnifiedNetwork::getBytesSent()</a>, <a class="el" href="a05646.html#l00233">pointer</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+<div class="fragment"><pre>01959 {
+01960 <span class="keywordflow">if</span> (get)
+01961 {
+01962 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+01963 *<a class="code" href="a04223.html#a570">pointer</a> = 0;
+01964 <span class="keywordflow">else</span>
+01965 *<a class="code" href="a04223.html#a570">pointer</a> = CUnifiedNetwork::getInstance()-&gt;getBytesSent ();
+01966 }
+01967 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a209" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>ReceivedBytes&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"total of bytes received by this service"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l01947">1947</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01263">NLNET::CUnifiedNetwork::getBytesReceived()</a>, <a class="el" href="a05646.html#l00233">pointer</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+<div class="fragment"><pre>01948 {
+01949 <span class="keywordflow">if</span> (get)
+01950 {
+01951 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+01952 *<a class="code" href="a04223.html#a570">pointer</a> = 0;
+01953 <span class="keywordflow">else</span>
+01954 *<a class="code" href="a04223.html#a570">pointer</a> = CUnifiedNetwork::getInstance()-&gt;getBytesReceived ();
+01955 }
+01956 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a208" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>ReceiveQueueSize&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"current <a class="el" href="a04223.html#a587">size</a> <a class="el" href="a04223.html#a647">in</a> bytes of all receive queues"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l01935">1935</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01311">NLNET::CUnifiedNetwork::getReceiveQueueSize()</a>, <a class="el" href="a05646.html#l00233">pointer</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+<div class="fragment"><pre>01936 {
+01937 <span class="keywordflow">if</span> (get)
+01938 {
+01939 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+01940 *<a class="code" href="a04223.html#a570">pointer</a> = 0;
+01941 <span class="keywordflow">else</span>
+01942 *<a class="code" href="a04223.html#a570">pointer</a> = CUnifiedNetwork::getInstance()-&gt;getReceiveQueueSize();
+01943 }
+01944 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a207" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>SendQueueSize&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"current <a class="el" href="a04223.html#a587">size</a> <a class="el" href="a04223.html#a647">in</a> bytes of all send queues"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l01924">1924</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l01287">NLNET::CUnifiedNetwork::getSendQueueSize()</a>, <a class="el" href="a05646.html#l00233">pointer</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+<div class="fragment"><pre>01925 {
+01926 <span class="keywordflow">if</span> (get)
+01927 {
+01928 <span class="keywordflow">if</span> (!CUnifiedNetwork::isUsed ())
+01929 *<a class="code" href="a04223.html#a570">pointer</a> = 0;
+01930 <span class="keywordflow">else</span>
+01931 *<a class="code" href="a04223.html#a570">pointer</a> = CUnifiedNetwork::getInstance()-&gt;getSendQueueSize();
+01932 }
+01933 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a192" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>State&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Set this <a class="el" href="a04223.html#a658">value</a> to 0 to shutdown the service and 1 to start the service"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01520">1520</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00117">ExitSignalAsked</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05646.html#l00233">pointer</a>.
+<p>
+<div class="fragment"><pre>01521 {
+01522 <span class="keyword">static</span> string running = <span class="stringliteral">"Online"</span>;
+01523
+01524 <span class="comment">// read or write the variable</span>
+01525 <span class="keywordflow">if</span> (get)
+01526 {
+01527 *<a class="code" href="a04223.html#a570">pointer</a> = running;
+01528 }
+01529 <span class="keywordflow">else</span>
+01530 {
+01531 <span class="keywordflow">if</span> (IService::getInstance()-&gt;getServiceShortName() == <span class="stringliteral">"AES"</span> || IService::getInstance()-&gt;getServiceShortName() == <span class="stringliteral">"AS"</span>)
+01532 {
+01533 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: I can't set State=0 because I'm the admin and I should never quit"</span>);
+01534 }
+01535 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*<a class="code" href="a04223.html#a570">pointer</a> == <span class="stringliteral">"0"</span> || *<a class="code" href="a04223.html#a570">pointer</a> == <span class="stringliteral">"2"</span>)
+01536 {
+01537 <span class="comment">// ok, we want to set the value to false, just quit</span>
+01538 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: User ask me with a command to quit using the State variable"</span>);
+01539 <a class="code" href="a05379.html#a48">ExitSignalAsked</a> = 0xFFFE;
+01540 running = <span class="stringliteral">"Quitting"</span>;
+01541 }
+01542 <span class="keywordflow">else</span>
+01543 {
+01544 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"SERVICE: Unknown value for State '%s'"</span>, (*pointer).c_str());
+01545 }
+01546 }
+01547 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a184" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>Scroller&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"current <a class="el" href="a04223.html#a587">size</a> <a class="el" href="a04223.html#a647">in</a> bytes of the sent queue <a class="el" href="a04223.html#a587">size</a>"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01402">1402</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00233">pointer</a>.
+<p>
+<div class="fragment"><pre>01403 {
+01404 <span class="keywordflow">if</span> (get)
+01405 {
+01406 <span class="comment">// display the scroll text</span>
+01407 <span class="keyword">static</span> string foo = <span class="stringliteral">"Welcome to NeL Service! This scroll is used to see the update frequency of the main function and to see if the service is frozen or not. Have a nice day and hope you'll like NeL!!! "</span>
+01408 <span class="stringliteral">"Welcome to NeL Service! This scroll is used to see the update frequency of the main function and to see if the service is frozen or not. Have a nice day and hope you'll like NeL!!! "</span>;
+01409 <span class="keyword">static</span> <span class="keywordtype">int</span> pos = 0;
+01410 *<a class="code" href="a04223.html#a570">pointer</a> = foo.substr ((pos++)%(foo.size()/2), 10);
+01411 }
+01412 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a180" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>Uptime&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"time <a class="el" href="a04113.html#a70">from</a> the launching of the <a class="el" href="a04223.html#a568">program</a>"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01375">1375</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00133">LaunchingDate</a>, <a class="el" href="a05646.html#l00233">pointer</a>, <a class="el" href="a05586.html#l00476">NLMISC::secondsToHumanReadable()</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>.
+<p>
+<div class="fragment"><pre>01376 {
+01377 <span class="keywordflow">if</span> (get)
+01378 {
+01379 <span class="keywordflow">if</span> (human)
+01380 *<a class="code" href="a04223.html#a570">pointer</a> = <a class="code" href="a05378.html#a270">secondsToHumanReadable</a> (CTime::getSecondsSince1970() - LaunchingDate);
+01381 <span class="keywordflow">else</span>
+01382 *<a class="code" href="a04223.html#a570">pointer</a> = <a class="code" href="a05378.html#a244">NLMISC::toString</a>(CTime::getSecondsSince1970() - LaunchingDate);
+01383 }
+01384 <span class="keywordflow">else</span>
+01385 {
+01386 <a class="code" href="a05379.html#a53">LaunchingDate</a> = CTime::getSecondsSince1970() - atoi ((*pointer).c_str());
+01387 }
+01388 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a179" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>LaunchingDate&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"date of the launching of the <a class="el" href="a04223.html#a568">program</a>"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l01370">1370</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00133">LaunchingDate</a>, and <a class="el" href="a05646.html#l00233">pointer</a>.
+<p>
+<div class="fragment"><pre>01371 {
+01372 <span class="keywordflow">if</span> (get) *<a class="code" href="a04223.html#a570">pointer</a> = asctime (localtime ((time_t*)&amp;LaunchingDate));
+01373 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a155" doxytag="NLNET::NLMISC_DYNVARIABLE" ></a><p>
+<table class="mdTable" 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_DYNVARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>LSListenAddress&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"the listen <a class="el" href="a04223.html#a569">address</a> sended to the client to connect on this front_end"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00467">467</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00397">NLNET::CInetAddress::asIPString()</a>, <a class="el" href="a05962.html#l00054">ListenAddr</a>, <a class="el" href="a05513.html#l00238">NLNET::CBufServer::listenAddress()</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05646.html#l00233">pointer</a>, and <a class="el" href="a05962.html#l00053">Server</a>.
+<p>
+<div class="fragment"><pre>00468 {
+00469 <span class="keywordflow">if</span> (get)
+00470 {
+00471 *<a class="code" href="a04223.html#a570">pointer</a> = <a class="code" href="a05379.html#a22">ListenAddr</a>;
+00472 }
+00473 <span class="keywordflow">else</span>
+00474 {
+00475 <span class="keywordflow">if</span> ((*pointer).find (<span class="stringliteral">":"</span>) == string::npos)
+00476 {
+00477 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LS: You must set the address + port (ie: \"itsalive.nevrax.org:38000\")"</span>);
+00478 <span class="keywordflow">return</span>;
+00479 }
+00480 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((*pointer).empty())
+00481 {
+00482 <a class="code" href="a05379.html#a22">ListenAddr</a> = <a class="code" href="a05379.html#a21">Server</a>-&gt;<a class="code" href="a02302.html#NLNET_1_1CCallbackServera24">listenAddress</a> ().<a class="code" href="a02665.html#NLNET_1_1CInetAddressa0">asIPString</a>();
+00483 }
+00484 <span class="keywordflow">else</span>
+00485 {
+00486 <a class="code" href="a05379.html#a22">ListenAddr</a> = *<a class="code" href="a04223.html#a570">pointer</a>;
+00487 }
+00488 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"LS: Listen Address that will be send to client is '%s'"</span>, <a class="code" href="a05379.html#a22">ListenAddr</a>.c_str());
+00489 }
+00490 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a206" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TotalCallbackCalled&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Total callback called number on layer 5"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a183" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>NbUserUpdate&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"number of time the user IService::update() called"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a182" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CompilationMode&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"mode of the compilation"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a181" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CompilationDate&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"date of the compilation"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a156" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>DefaultUserPriv&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Default User priv for people who don'<a class="el" href="a04223.html#a627">t</a> use the login system"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a124" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>NbServerReceiveTask&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Number of server receive thread"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a123" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>NbServerListenTask&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Number of server listen thread"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a122" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>NbNetworkTask&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Number of server and client thread"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a121" doxytag="NLNET::NLMISC_VARIABLE" ></a><p>
+<table class="mdTable" 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_VARIABLE </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>NbClientReceiveTask&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"Number of client receive thread"&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a164" doxytag="NLNET::nmNewConnection" ></a><p>
+<table class="mdTable" 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 nmNewConnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06098.html#l00062">62</a> of file <a class="el" href="a06098.html">net_manager.cpp</a>.
+<p>
+References <a class="el" href="a06099.html#l00078">NLNET::CBaseStruct::ConnectionCallback</a>, <a class="el" href="a06099.html#l00079">NLNET::CBaseStruct::ConnectionCbArg</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a06099.html#l00069">NLNET::CBaseStruct::Name</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+Referenced by <a class="el" href="a06098.html#l00207">NLNET::CNetManager::addServer()</a>.
+<p>
+<div class="fragment"><pre>00063 {
+00064 <a class="code" href="a04199.html#a6">nlassert</a> (arg != NULL);
+00065 CBaseStruct *basest = (CBaseStruct *)arg;
+00066
+00067 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"HNETL4: nmNewConnection() from service '%s'"</span>, basest-&gt;Name.c_str ());
+00068
+00069 <span class="comment">// call the client callback if necessary</span>
+00070 <span class="keywordflow">if</span> (basest-&gt;ConnectionCallback != NULL)
+00071 basest-&gt;ConnectionCallback (basest-&gt;Name, from, basest-&gt;ConnectionCbArg);
+00072 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a165" doxytag="NLNET::nmNewDisconnection" ></a><p>
+<table class="mdTable" 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 nmNewDisconnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06098.html#l00074">74</a> of file <a class="el" href="a06098.html">net_manager.cpp</a>.
+<p>
+References <a class="el" href="a06099.html#l00081">NLNET::CBaseStruct::DisconnectionCallback</a>, <a class="el" href="a06099.html#l00082">NLNET::CBaseStruct::DisconnectionCbArg</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a06099.html#l00069">NLNET::CBaseStruct::Name</a>, <a class="el" href="a06099.html#l00076">NLNET::CBaseStruct::NetBase</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, and <a class="el" href="a06099.html#l00087">NLNET::CBaseStruct::Type</a>.
+<p>
+Referenced by <a class="el" href="a06098.html#l00280">NLNET::CNetManager::addClient()</a>, <a class="el" href="a06098.html#l00207">NLNET::CNetManager::addServer()</a>, and <a class="el" href="a06098.html#l00097">NLNET::CNetManager::createConnection()</a>.
+<p>
+<div class="fragment"><pre>00075 {
+00076 <a class="code" href="a04199.html#a6">nlassert</a> (arg != NULL);
+00077 CBaseStruct *basest = (CBaseStruct *)arg;
+00078
+00079 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"HNETL4: nmNewDisconnection() from service '%s'"</span>, basest-&gt;Name.c_str ());
+00080
+00081 <span class="comment">// call the client callback if necessary</span>
+00082 <span class="keywordflow">if</span> (basest-&gt;DisconnectionCallback != NULL)
+00083 basest-&gt;DisconnectionCallback (basest-&gt;Name, from, basest-&gt;DisconnectionCbArg);
+00084
+00086
+00087 <span class="comment">// on a client, we have to clear the associations</span>
+00088 <span class="keywordflow">if</span> (basest-&gt;Type != CBaseStruct::Server)
+00089 {
+00090 <a class="code" href="a04199.html#a6">nlassert</a> (basest-&gt;NetBase.size() == 1);
+00091 basest-&gt;NetBase[0]-&gt;getSIDA ().clear ();
+00092 }
+00093 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a137" doxytag="NLNET::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"> bool operator&lt; </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00153">153</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">NLNET::CInetAddress::_SockAddr</a>, and <a class="el" href="a05810.html#l00376">NLNET::CInetAddress::port()</a>.
+<p>
+<div class="fragment"><pre>00154 {
+00155 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00156 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr == a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr )
+00157 {
+00158 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() );
+00159 }
+00160 <span class="keywordflow">else</span>
+00161 {
+00162 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr );
+00163 }
+00164 <span class="preprocessor">#elif defined NL_OS_UNIX</span>
+00165 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr == a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr )
+00166 {
+00167 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() );
+00168 }
+00169 <span class="keywordflow">else</span>
+00170 {
+00171 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr );
+00172 }
+00173 <span class="preprocessor">#endif </span>
+00174 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a142" doxytag="NLNET::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"> bool operator== </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const CLoginCookie &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>c1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const CLoginCookie &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>c2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05960.html#l00040">40</a> of file <a class="el" href="a05960.html">login_cookie.cpp</a>.
+<p>
+References <a class="el" href="a05961.html#l00121">NLNET::CLoginCookie::_UserAddr</a>, <a class="el" href="a05961.html#l00123">NLNET::CLoginCookie::_UserId</a>, <a class="el" href="a05961.html#l00122">NLNET::CLoginCookie::_UserKey</a>, <a class="el" href="a05961.html#l00119">NLNET::CLoginCookie::_Valid</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00041 {
+00042 <a class="code" href="a04199.html#a6">nlassert</a> (c1._Valid &amp;&amp; c2._Valid);
+00043
+00044 <span class="keywordflow">return</span> c1._UserAddr==c2._UserAddr &amp;&amp; c1._UserKey==c2._UserKey &amp;&amp; c1._UserId==c2._UserId;
+00045 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a136" doxytag="NLNET::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"> bool operator== </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00143">143</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">NLNET::CInetAddress::_SockAddr</a>.
+<p>
+<div class="fragment"><pre>00144 {
+00145 <span class="comment">// Compares the sockaddr structure except the last 8 bytes equal to zero.</span>
+00146 <span class="keywordflow">return</span> ( memcmp( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>, a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>, <span class="keyword">sizeof</span>(sockaddr_in)-8 ) == 0 );
+00147 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a143" doxytag="NLNET::refreshPendingList" ></a><p>
+<table class="mdTable" 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 refreshPendingList </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00079">79</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05962.html#l00051">PendingUsers</a>, <a class="el" href="a05962.html#l00066">TimeBeforeEraseCookie</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00100">cbWSChooseShard()</a>.
+<p>
+<div class="fragment"><pre>00080 {
+00081 <span class="comment">// delete too old cookie</span>
+00082
+00083 <a class="code" href="a03889.html">list&lt;CPendingUser&gt;</a>::iterator it = <a class="code" href="a05379.html#a20">PendingUsers</a>.begin();
+00084 <a class="code" href="a04558.html#a11">uint32</a> Time = CTime::getSecondsSince1970();
+00085 <span class="keywordflow">while</span> (it != <a class="code" href="a05379.html#a20">PendingUsers</a>.end ())
+00086 {
+00087 <span class="keywordflow">if</span> ((*it).Time &lt; Time - <a class="code" href="a05379.html#a27">TimeBeforeEraseCookie</a>)
+00088 {
+00089 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"LS: Removing cookie '%s' because too old"</span>, (*it).Cookie.toString().c_str());
+00090 it = <a class="code" href="a05379.html#a20">PendingUsers</a>.erase (it);
+00091 }
+00092 <span class="keywordflow">else</span>
+00093 {
+00094 it++;
+00095 }
+00096 }
+00097 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a166" doxytag="NLNET::RegistrationBroadcast" ></a><p>
+<table class="mdTable" 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 RegistrationBroadcast </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TServiceId&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>addr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06098.html#l00131">131</a> of file <a class="el" href="a06098.html">net_manager.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a06099.html#l00171">NLNET::CNetManager::ItBaseMap</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a06090.html#l00042">TServiceId</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a06098.html#l00169">NLNET::CNetManager::init()</a>.
+<p>
+<div class="fragment"><pre>00132 {
+00133 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"HNETL4: RegistrationBroadcast() of service %s-%hu"</span>, name.c_str (), (<a class="code" href="a04558.html#a9">uint16</a>)sid);
+00134
+00135 <span class="comment">// find if this new service is interesting</span>
+00136 <span class="keywordflow">for</span> (CNetManager::ItBaseMap itbm = CNetManager::_BaseMap.begin (); itbm != CNetManager::_BaseMap.end (); itbm++)
+00137 {
+00138 <span class="keywordflow">if</span> ((*itbm).second.Type == CBaseStruct::Client &amp;&amp; !(*itbm).second.NetBase[0]-&gt;connected())
+00139 {
+00140 <span class="keywordflow">if</span> (name == (*itbm).first)
+00141 {
+00142 <span class="comment">// ok! it's cool, the service is here, go and connect to him!</span>
+00143 <span class="comment">// ace warning don't work if more than one connection</span>
+00144 CNetManager::createConnection ((*itbm).second, addr[0], name);
+00145 }
+00146 }
+00147 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((*itbm).second.Type == CBaseStruct::Group)
+00148 {
+00149 <span class="comment">// ok, it's a group, try to see if it wants this!</span>
+00150 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; (*itbm).second.ServiceNames.size (); i++)
+00151 {
+00152 <span class="keywordflow">if</span> ((*itbm).second.ServiceNames[i] == name)
+00153 {
+00154 <span class="comment">// ace warning don't work if more than one connection</span>
+00155 CNetManager::createConnection ((*itbm).second, addr[0], name);
+00156 <span class="keywordflow">break</span>;
+00157 }
+00158 }
+00159 }
+00160 }
+00161
+00162 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a114" doxytag="NLNET::sendAdminEmail" ></a><p>
+<table class="mdTable" 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 sendAdminEmail </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>...&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00612">612</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a06465.html#l00070">NLMISC_CONVERT_VARGS</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, and <a class="el" href="a05646.html#l00985">t</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00648">updateAdmin()</a>.
+<p>
+<div class="fragment"><pre>00613 {
+00614 <span class="keywordtype">char</span> *text;
+00615 <a class="code" href="a05042.html#a0">NLMISC_CONVERT_VARGS</a> (text, format, 4096);
+00616
+00617 time_t <a class="code" href="a04223.html#a627">t</a> = time (&amp;t);
+00618
+00619 string str;
+00620 str = asctime (localtime (&amp;t));
+00621 str += <span class="stringliteral">" Server "</span> + <a class="code" href="a02665.html#NLNET_1_1CInetAddresse1">CInetAddress::localHost</a>().<a class="code" href="a02665.html#NLNET_1_1CInetAddressa6">hostName</a>();
+00622 str += <span class="stringliteral">" service "</span> + IService::getInstance()-&gt;getServiceUnifiedName();
+00623 str += <span class="stringliteral">" : "</span>;
+00624 str += text;
+00625
+00626 <a class="code" href="a02918.html">CMessage</a> msgout(<span class="stringliteral">"ADMIN_EMAIL"</span>);
+00627 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (str);
+00628 <span class="keywordflow">if</span>(IService::getInstance ()-&gt;getServiceShortName()==<span class="stringliteral">"AES"</span>)
+00629 CUnifiedNetwork::getInstance ()-&gt;send (<span class="stringliteral">"AS"</span>, msgout);
+00630 <span class="keywordflow">else</span>
+00631 CUnifiedNetwork::getInstance ()-&gt;send (<span class="stringliteral">"AES"</span>, msgout);
+00632
+00633 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Forwarded email to AS with '%s'"</span>, str.c_str());
+00634 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a223" doxytag="NLNET::sendEmail" ></a><p>
+<table class="mdTable" 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 sendEmail </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>smtpServer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>to</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>subject</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>body</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>attachedFile</em> = "", </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>onlyCheck</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Send an email <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>smtpServer</em>&nbsp;</td><td>must be a smtp email server. </td></tr>
+ <tr><td valign=top><em>from</em>&nbsp;</td><td>must be a valid email address. If empty, create a fake email address with anonymous&lt;ipaddress&gt;.com </td></tr>
+ <tr><td valign=top><em>to</em>&nbsp;</td><td>must be a valid email address. </td></tr>
+ <tr><td valign=top><em>subject</em>&nbsp;</td><td>subject of the email. Can be empty. </td></tr>
+ <tr><td valign=top><em>body</em>&nbsp;</td><td>body of the email. Can be empty. </td></tr>
+ <tr><td valign=top><em>attachedFile</em>&nbsp;</td><td>a filename that will be send with the email. Can be empty. </td></tr>
+ <tr><td valign=top><em>onlyCheck</em>&nbsp;</td><td>If true, It'll not send the mail but only check if it could be send. </td></tr>
+ </table>
+</dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a134" doxytag="NLNET::sendEmail" ></a><p>
+<table class="mdTable" 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 sendEmail </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>smtpServer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>to</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>subject</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>body</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>attachedFile</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>onlyCheck</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05670.html#l00128">128</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2103_0">NLNET::CSock::close()</a>, <a class="el" href="a06487.html#l00080">NLNET::CTcpSock::connect()</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">NLNET::CSock::connected()</a>, <a class="el" href="a05670.html#l00040">DefaultFrom</a>, <a class="el" href="a05670.html#l00040">DefaultSMTPServer</a>, <a class="el" href="a05670.html#l00040">DefaultTo</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05670.html#l00086">sendEMailCommand()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05670.html#l00061">uuencode()</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00129 {
+00130 <span class="keywordtype">bool</span> ok = <span class="keyword">false</span>;
+00131 CTcpSock sock;
+00132 <a class="code" href="a04558.html#a15">uint</a> i;
+00133
+00134 string formatedBody;
+00135 string formatedFrom;
+00136 string formatedTo;
+00137 string formatedSMTPServer;
+00138
+00139 <span class="keywordflow">try</span>
+00140 {
+00141
+00142 <span class="keywordflow">if</span> (smtpServer.empty())
+00143 {
+00144 <span class="keywordflow">if</span>(<a class="code" href="a05379.html#a13">DefaultSMTPServer</a>.empty())
+00145 {
+00146 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: Can't send email because no SMTPServer was provided"</span>);
+00147 <span class="keywordflow">goto</span> end;
+00148 }
+00149 <span class="keywordflow">else</span>
+00150 {
+00151 formatedSMTPServer = <a class="code" href="a05379.html#a13">DefaultSMTPServer</a>;
+00152 }
+00153 }
+00154 <span class="keywordflow">else</span>
+00155 {
+00156 formatedSMTPServer = smtpServer;
+00157 }
+00158
+00159 sock.connect(<a class="code" href="a02665.html">CInetAddress</a>(formatedSMTPServer, 25));
+00160
+00161 <span class="keywordflow">if</span> (!sock.connected())
+00162 {
+00163 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: Can't connect to email server %s"</span>, formatedSMTPServer.c_str());
+00164 <span class="keywordflow">goto</span> end;
+00165 }
+00166
+00167 <span class="keywordflow">if</span> (to.empty())
+00168 {
+00169 <span class="keywordflow">if</span>(<a class="code" href="a05379.html#a15">DefaultTo</a>.empty())
+00170 {
+00171 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: Can't send email because no To was provided"</span>);
+00172 <span class="keywordflow">goto</span> end;
+00173 }
+00174 <span class="keywordflow">else</span>
+00175 {
+00176 formatedTo = <a class="code" href="a05379.html#a15">DefaultTo</a>;
+00177 }
+00178 }
+00179 <span class="keywordflow">else</span>
+00180 {
+00181 formatedTo = to;
+00182 }
+00183
+00184 <span class="keywordflow">if</span>(<a class="code" href="a05333.html#a132">from</a>.empty())
+00185 {
+00186 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a14">DefaultFrom</a>.empty())
+00187 {
+00188 formatedFrom = <a class="code" href="a02665.html#NLNET_1_1CInetAddresse1">CInetAddress::localHost</a>().<a class="code" href="a02665.html#NLNET_1_1CInetAddressa6">hostName</a>();
+00189 formatedFrom += <span class="stringliteral">"@gnu.org"</span>;
+00190 }
+00191 <span class="keywordflow">else</span>
+00192 {
+00193 formatedFrom = <a class="code" href="a05379.html#a14">DefaultFrom</a>;
+00194 }
+00195 }
+00196 <span class="keywordflow">else</span>
+00197 {
+00198 formatedFrom = <a class="code" href="a05333.html#a132">from</a>;
+00199 }
+00200
+00201 <span class="comment">// we must skip the first line</span>
+00202 formatedBody = <span class="stringliteral">"\r\n"</span>;
+00203
+00204 <span class="comment">// replace \n with \r\n</span>
+00205 <span class="keywordflow">for</span> (i = 0; i &lt; body.size(); i++)
+00206 {
+00207 <span class="keywordflow">if</span> (body[i] == <span class="charliteral">'\n'</span> &amp;&amp; i &gt; 0 &amp;&amp; body[i-1] != <span class="charliteral">'\r'</span>)
+00208 {
+00209 formatedBody += <span class="charliteral">'\r'</span>;
+00210 }
+00211 formatedBody += body[i];
+00212 }
+00213
+00214 <span class="comment">// add attachment if any</span>
+00215 <span class="keywordflow">if</span> (!attachedFile.empty())
+00216 {
+00217 string ext = CFile::getExtension(attachedFile);
+00218
+00219 string mimepart;
+00220
+00221 <span class="comment">// mime header and main mail text</span>
+00222
+00223 mimepart += <span class="stringliteral">"Mime-Version: 1.0\r\n"</span>;
+00224 mimepart += <span class="stringliteral">"Content-Type: multipart/mixed;\r\n"</span>;
+00225 mimepart += <span class="stringliteral">" boundary=\"Multipart_nel\"\r\n"</span>;
+00226 mimepart += <span class="stringliteral">"\r\n"</span>;
+00227 mimepart += <span class="stringliteral">"This is a multi-part message in MIME format.\r\n"</span>;
+00228 mimepart += <span class="stringliteral">"\r\n"</span>;
+00229 mimepart += <span class="stringliteral">"--Multipart_nel\r\n"</span>;
+00230 mimepart += <span class="stringliteral">"Content-Type: text/plain; charset=us-ascii\r\n"</span>;
+00231 mimepart += <span class="stringliteral">"Content-Transfer-Encoding: 7bit\r\n"</span>;
+00232
+00233 formatedBody = mimepart + formatedBody;
+00234
+00235 <span class="comment">// mime attachment</span>
+00236
+00237 formatedBody += <span class="stringliteral">"--Multipart_nel\r\n"</span>;
+00238 formatedBody += <span class="stringliteral">"Content-Disposition: attachment;\r\n"</span>;
+00239
+00240 <span class="keywordflow">if</span>(<a class="code" href="a05378.html#a273">strlwr</a>(ext) == <span class="stringliteral">"tga"</span>)
+00241 {
+00242 formatedBody += <span class="stringliteral">"Content-Type: image/x-targa;\r\n"</span>;
+00243 }
+00244 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a05378.html#a273">strlwr</a>(ext) == <span class="stringliteral">"bmp"</span>)
+00245 {
+00246 formatedBody += <span class="stringliteral">"Content-Type: image/bmp;\r\n"</span>;
+00247 }
+00248 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a05378.html#a273">strlwr</a>(ext) == <span class="stringliteral">"png"</span>)
+00249 {
+00250 formatedBody += <span class="stringliteral">"Content-Type: image/png;\r\n"</span>;
+00251 }
+00252 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a05378.html#a273">strlwr</a>(ext) == <span class="stringliteral">"jpg"</span> || <a class="code" href="a05378.html#a273">strlwr</a>(ext) == <span class="stringliteral">"jpeg"</span>)
+00253 {
+00254 formatedBody += <span class="stringliteral">"Content-Type: image/jpeg;\r\n"</span>;
+00255 }
+00256 <span class="keywordflow">else</span>
+00257 {
+00258 formatedBody += <span class="stringliteral">"Content-Type: text/plain; charset=us-ascii\r\n"</span>;
+00259 }
+00260
+00261 formatedBody += <span class="stringliteral">" name=\""</span>+CFile::getFilename(attachedFile)+<span class="stringliteral">"\"\r\n"</span>;
+00262 formatedBody += <span class="stringliteral">"Content-Transfer-Encoding: base64\r\n"</span>;
+00263 formatedBody += <span class="stringliteral">" filename=\""</span>+CFile::getFilename(attachedFile)+<span class="stringliteral">"\"\r\n"</span>;
+00264 <span class="comment">// empty line to say that it s the end of the header</span>
+00265 formatedBody += <span class="stringliteral">"\r\n"</span>;
+00266
+00267 <span class="keyword">static</span> <span class="keyword">const</span> size_t src_buf_size = 45;<span class="comment">// This *MUST* be a multiple of 3</span>
+00268 <span class="keyword">static</span> <span class="keyword">const</span> size_t dst_buf_size = 4 * ((src_buf_size + 2) / 3);
+00269 size_t write_size = dst_buf_size;
+00270 <span class="keywordtype">char</span> src_buf[src_buf_size + 1];
+00271 <span class="keywordtype">char</span> dst_buf[dst_buf_size + 1];
+00272 size_t <a class="code" href="a04223.html#a587">size</a>;
+00273
+00274 FILE *src_stream = fopen (attachedFile.c_str(), <span class="stringliteral">"rb"</span>);
+00275 <span class="keywordflow">if</span> (src_stream == NULL)
+00276 {
+00277 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: Can't attach file '%s' to the email because the file can't be open"</span>, attachedFile.c_str());
+00278 }
+00279 <span class="keywordflow">else</span>
+00280 {
+00281 <span class="keywordflow">while</span> ((<a class="code" href="a04223.html#a587">size</a> = fread(src_buf, 1, src_buf_size, src_stream)) &gt; 0)
+00282 {
+00283 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a587">size</a> != src_buf_size)
+00284 {
+00285 <span class="comment">/* write_size is always 60 until the last line */</span>
+00286 write_size=(4 * ((<a class="code" href="a04223.html#a587">size</a> + 2) / 3));
+00287 <span class="comment">/* pad with 0s so we can just encode extra bits */</span>
+00288 memset(&amp;src_buf[size], 0, src_buf_size - size);
+00289 }
+00290 <span class="comment">/* Encode the buffer we just read in */</span>
+00291 <a class="code" href="a05379.html#a132">uuencode</a>(src_buf, dst_buf, size);
+00292
+00293 formatedBody += dst_buf;
+00294 formatedBody += <span class="stringliteral">"\r\n"</span>;
+00295 }
+00296 fclose (src_stream);
+00297 }
+00298 formatedBody += <span class="stringliteral">"--Multipart_nel--"</span>;
+00299 }
+00300
+00301 <span class="comment">// debug, display what we send into a file</span>
+00302 <span class="comment">// { FILE *fp = fopen (CFile::findNewFile("mail.txt").c_str(), "wb");</span>
+00303 <span class="comment">// fwrite (formatedBody.c_str(), 1, formatedBody.size(), fp);</span>
+00304 <span class="comment">// fclose (fp); }</span>
+00305
+00306 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">""</span>, 220)) <span class="keywordflow">goto</span> end;
+00307
+00308 <span class="keywordflow">if</span>(onlyCheck)
+00309 {
+00310 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"HELO localhost"</span>)) <span class="keywordflow">goto</span> end;
+00311 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"MAIL FROM: "</span> + formatedFrom)) <span class="keywordflow">goto</span> end;
+00312 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"RCPT TO: "</span> + formatedTo)) <span class="keywordflow">goto</span> end;
+00313 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"QUIT"</span>, 221)) <span class="keywordflow">goto</span> end;
+00314
+00315 ok = <span class="keyword">true</span>;
+00316 }
+00317 <span class="keywordflow">else</span>
+00318 {
+00319 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"HELO localhost"</span>)) <span class="keywordflow">goto</span> end;
+00320 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"MAIL FROM: "</span> + formatedFrom)) <span class="keywordflow">goto</span> end;
+00321 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"RCPT TO: "</span> + formatedTo)) <span class="keywordflow">goto</span> end;
+00322 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"DATA"</span>, 354)) <span class="keywordflow">goto</span> end;
+00323
+00324 string <a class="code" href="a04223.html#a589">buffer</a> =
+00325 <span class="stringliteral">"From: "</span> + formatedFrom + <span class="stringliteral">"\r\n"</span>
+00326 <span class="stringliteral">"To: "</span> + formatedTo + <span class="stringliteral">"\r\n"</span>
+00327 <span class="stringliteral">"Subject: "</span> + subject + <span class="stringliteral">"\r\n"</span>
+00328 + formatedBody + <span class="stringliteral">"\r\n."</span>;
+00329
+00330 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, buffer)) <span class="keywordflow">goto</span> end;
+00331 <span class="keywordflow">if</span>(!<a class="code" href="a05379.html#a133">sendEMailCommand</a> (sock, <span class="stringliteral">"QUIT"</span>, 221)) <span class="keywordflow">goto</span> end;
+00332
+00333 ok = <span class="keyword">true</span>;
+00334 }
+00335 }
+00336 <span class="keywordflow">catch</span> (<a class="code" href="a02482.html">Exception</a> &amp;e)
+00337 {
+00338 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: Can't send email: %s"</span>, e.what());
+00339 <span class="keywordflow">goto</span> end;
+00340 }
+00341
+00342 end:
+00343 <span class="keywordflow">if</span> (sock.connected())
+00344 sock.close ();
+00345
+00346 <span class="keywordflow">return</span> ok;
+00347 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a133" doxytag="NLNET::sendEMailCommand" ></a><p>
+<table class="mdTable" 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 sendEMailCommand </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">CTcpSock &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>sock</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>command</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>code</em> = 250</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05670.html#l00086">86</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00385">NLNET::CInetAddress::asString()</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a02444.html#NLNET_1_1CTcpSockz2105_1">NLNET::CSock::receive()</a>, <a class="el" href="a06405.html#l00238">NLNET::CSock::remoteAddr()</a>, <a class="el" href="a05646.html#l01119">res</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2107_0">NLNET::CSock::send()</a>, <a class="el" href="a05646.html#l00645">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="a05670.html#l00128">sendEmail()</a>.
+<p>
+<div class="fragment"><pre>00087 {
+00088 string <a class="code" href="a04223.html#a589">buffer</a> = command + <span class="stringliteral">"\r\n"</span>;
+00089 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a587">size</a> = <a class="code" href="a04223.html#a589">buffer</a>.size();
+00090 <span class="keywordflow">if</span>(!command.empty())
+00091 {
+00092 <span class="keywordflow">if</span> (sock.send ((<a class="code" href="a04558.html#a7">uint8</a> *)<a class="code" href="a04223.html#a589">buffer</a>.c_str(), <a class="code" href="a04223.html#a587">size</a>) != CSock::Ok)
+00093 {
+00094 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: Can't send data to the server"</span>);
+00095 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00096 }
+00097 }
+00098
+00099 string <a class="code" href="a04223.html#a643">res</a>;
+00100 <span class="keywordtype">char</span> c;
+00101 <span class="keywordflow">while</span> (<span class="keyword">true</span>)
+00102 {
+00103 <a class="code" href="a04223.html#a587">size</a> = 1;
+00104
+00105 <span class="keywordflow">if</span> (sock.receive((<a class="code" href="a04558.html#a7">uint8</a>*)&amp;c, size, <span class="keyword">false</span>) == CSock::Ok)
+00106 {
+00107 <a class="code" href="a04223.html#a643">res</a> += c;
+00108 <span class="keywordflow">if</span> (c == <span class="charliteral">'\n'</span>)
+00109 {
+00110 <a class="code" href="a04558.html#a11">uint32</a> c = atoi (<a class="code" href="a04223.html#a643">res</a>.c_str());
+00111 <span class="keywordflow">if</span> (c != code)
+00112 {
+00113 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: EMail command '%s' returned '%s' instead of code %d on sock %s"</span>, command.substr(0, 20).c_str(), <a class="code" href="a04223.html#a643">res</a>.substr(0, <a class="code" href="a04223.html#a643">res</a>.size()-2).c_str(), code, sock.remoteAddr().asString().c_str());
+00114 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00115 }
+00116 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00117 }
+00118 }
+00119 <span class="keywordflow">else</span>
+00120 {
+00121 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"EMAIL: EMail connection closed before end of line, command '%s' returned '%s' on sock %s (code %d)"</span>, command.substr(0, 20).c_str(), <a class="code" href="a04223.html#a643">res</a>.c_str(), sock.remoteAddr().asString().c_str(), code);
+00122 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00123 }
+00124 }
+00125 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a221" doxytag="NLNET::serviceGetView" ></a><p>
+<table class="mdTable" 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 serviceGetView </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>rid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rawvarpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::vector&lt; std::pair&lt; std::vector&lt; std::string &gt;, std::vector&lt; std::string &gt; &gt; &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>answer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>async</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a113" doxytag="NLNET::serviceGetView" ></a><p>
+<table class="mdTable" 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 serviceGetView </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>rid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rawvarpath</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>vector&lt; pair&lt; vector&lt; string &gt;, vector&lt; string &gt; &gt; &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>answer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>async</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00386">386</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00115">NLMISC::CLog::addDisplayer()</a>, <a class="el" href="a05391.html#l00275">addRequestAnswer()</a>, <a class="el" href="a05391.html#l00221">addRequestWaitingNb()</a>, <a class="el" href="a05977.html#l00062">NLMISC::CMemDisplayer::clear()</a>, <a class="el" href="a06668.html#l00042">CVarPath::Destination</a>, <a class="el" href="a06668.html#l00049">CVarPath::empty()</a>, <a class="el" href="a06667.html#l00201">CVarPath::isFinal()</a>, <a class="el" href="a05391.html#l00378">isRemoteCommand()</a>, <a class="el" href="a05977.html#l00058">NLMISC::CMemDisplayer::lockStrings()</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05391.html#l00082">RemoteClientCallback</a>, <a class="el" href="a05976.html#l00323">NLMISC::CMemDisplayer::setParam()</a>, <a class="el" href="a05538.html#l02935">size</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05977.html#l00060">NLMISC::CMemDisplayer::unlockStrings()</a>, <a class="el" href="a05646.html#l01132">value</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00112">cbServGetView()</a>, and <a class="el" href="a05391.html#l00892">NLMISC_COMMAND()</a>.
+<p>
+<div class="fragment"><pre>00387 {
+00388 string str;
+00389 CLog logDisplayVars;
+00390 <a class="code" href="a02750.html">CLightMemDisplayer</a> mdDisplayVars;
+00391 logDisplayVars.addDisplayer (&amp;mdDisplayVars);
+00392 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera4">setParam</a> (1024);
+00393
+00394 <a class="code" href="a03653.html">CVarPath</a> varpath(rawvarpath);
+00395
+00396 <span class="keywordflow">if</span> (varpath.<a class="code" href="a03653.html#CVarPatha3">empty</a>())
+00397 <span class="keywordflow">return</span>;
+00398
+00399 <span class="keywordflow">if</span> (varpath.<a class="code" href="a03653.html#CVarPatha4">isFinal</a>())
+00400 {
+00401 vector&lt;string&gt; vara, vala;
+00402
+00403 <span class="comment">// add default row</span>
+00404 vara.push_back (<span class="stringliteral">"service"</span>);
+00405 vala.push_back (IService::getInstance ()-&gt;getServiceUnifiedName());
+00406
+00407 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size (); j++)
+00408 {
+00409 string cmd = varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[j].first;
+00410
+00411 <span class="comment">// replace = with space to execute the command</span>
+00412 <a class="code" href="a04558.html#a15">uint</a> eqpos = cmd.find(<span class="stringliteral">"="</span>);
+00413 <span class="keywordflow">if</span> (eqpos != string::npos)
+00414 {
+00415 cmd[eqpos] = <span class="charliteral">' '</span>;
+00416 vara.push_back(cmd.substr(0, eqpos));
+00417 }
+00418 <span class="keywordflow">else</span>
+00419 vara.push_back(cmd);
+00420
+00421 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera0">clear</a> ();
+00422 ICommand::execute(cmd, logDisplayVars, !ICommand::isCommand(cmd));
+00423 <span class="keyword">const</span> std::deque&lt;std::string&gt; &amp;strs = mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera3">lockStrings</a>();
+00424
+00425 <span class="keywordflow">if</span> (ICommand::isCommand(cmd))
+00426 {
+00427 <span class="comment">// we want the log of the command</span>
+00428 <span class="keywordflow">if</span> (j == 0)
+00429 {
+00430 vara.clear ();
+00431 vara.push_back (<span class="stringliteral">"__log"</span>);
+00432 vala.clear ();
+00433 }
+00434
+00435 vala.push_back (<span class="stringliteral">"----- Result from "</span>+IService::getInstance()-&gt;getServiceUnifiedName()+<span class="stringliteral">" of command '"</span>+cmd+<span class="stringliteral">"'\n"</span>);
+00436 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k &lt; strs.size(); k++)
+00437 {
+00438 vala.push_back (strs[k]);
+00439 }
+00440 }
+00441 <span class="keywordflow">else</span>
+00442 {
+00443
+00444 <span class="keywordflow">if</span> (strs.size()&gt;0)
+00445 {
+00446 str = strs[0].substr(0,strs[0].<a class="code" href="a04115.html#a94">size</a>()-1);
+00447 <span class="comment">// replace all spaces into udnerscore because space is a reserved char</span>
+00448 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; str.size(); i++) <span class="keywordflow">if</span> (str[i] == <span class="charliteral">' '</span>) str[i] = <span class="charliteral">'_'</span>;
+00449
+00450 <span class="comment">/*</span>
+00451 <span class="comment"> uint32 pos = strs[0].find("=");</span>
+00452 <span class="comment"> if(pos != string::npos &amp;&amp; pos + 2 &lt; strs[0].size())</span>
+00453 <span class="comment"> {</span>
+00454 <span class="comment"> uint32 pos2 = string::npos;</span>
+00455 <span class="comment"> if(strs[0][strs[0].size()-1] == '\n')</span>
+00456 <span class="comment"> pos2 = strs[0].size() - pos - 2 - 1;</span>
+00457 <span class="comment"> </span>
+00458 <span class="comment"> str = strs[0].substr (pos+2, pos2);</span>
+00459 <span class="comment"> </span>
+00460 <span class="comment"> // replace all spaces into udnerscore because space is a reserved char</span>
+00461 <span class="comment"> for (uint i = 0; i &lt; str.size(); i++) if (str[i] == ' ') str[i] = '_';</span>
+00462 <span class="comment"> }</span>
+00463 <span class="comment"> else</span>
+00464 <span class="comment"> {</span>
+00465 <span class="comment"> str = "???";</span>
+00466 <span class="comment"> }*/</span>
+00467 }
+00468 <span class="keywordflow">else</span>
+00469 {
+00470 str = <span class="stringliteral">"???"</span>;
+00471 }
+00472 vala.push_back (str);
+00473 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Add to result view '%s' = '%s'"</span>, varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[j].first.c_str(), str.c_str());
+00474 }
+00475 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera5">unlockStrings</a>();
+00476 }
+00477
+00478 <span class="keywordflow">if</span> (!async)
+00479 answer.push_back (make_pair(vara, vala));
+00480 <span class="keywordflow">else</span>
+00481 {
+00482 <a class="code" href="a05379.html#a107">addRequestWaitingNb</a> (rid);
+00483 <a class="code" href="a05379.html#a109">addRequestAnswer</a> (rid, vara, vala);
+00484 }
+00485 }
+00486 <span class="keywordflow">else</span>
+00487 {
+00488 <span class="comment">// there s an entity in the varpath, manage this case</span>
+00489
+00490 vector&lt;string&gt; *vara=0, *vala=0;
+00491
+00492 <span class="comment">// varpath.Destination contains the entity number</span>
+00493 <span class="comment">// subvarpath.Destination contains the command name</span>
+00494
+00495 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size (); i++)
+00496 {
+00497 <a class="code" href="a03653.html">CVarPath</a> subvarpath(varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[i].second);
+00498
+00499 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; subvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size (); j++)
+00500 {
+00501 <span class="comment">// set the variable name</span>
+00502 string cmd = subvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[j].first;
+00503
+00504 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a112">isRemoteCommand</a>(cmd))
+00505 {
+00506 <span class="keywordflow">if</span> (async &amp;&amp; <a class="code" href="a05379.html#a0">RemoteClientCallback</a> != 0)
+00507 {
+00508 <span class="comment">// ok we have to send the request to another side, just send and wait</span>
+00509 <a class="code" href="a05379.html#a107">addRequestWaitingNb</a> (rid);
+00510 <a class="code" href="a05379.html#a0">RemoteClientCallback</a> (rid, cmd, varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[i].first);
+00511 }
+00512 }
+00513 <span class="keywordflow">else</span>
+00514 {
+00515 <span class="comment">// replace = with space to execute the command</span>
+00516 <a class="code" href="a04558.html#a15">uint</a> eqpos = cmd.find(<span class="stringliteral">"="</span>);
+00517 <span class="keywordflow">if</span> (eqpos != string::npos)
+00518 {
+00519 cmd[eqpos] = <span class="charliteral">' '</span>;
+00520 <span class="comment">// add the entity</span>
+00521 cmd.insert(eqpos, <span class="stringliteral">" "</span>+varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[i].first);
+00522 }
+00523 <span class="keywordflow">else</span>
+00524 {
+00525 <span class="comment">// add the entity</span>
+00526 cmd += <span class="stringliteral">" "</span>+varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[i].first;
+00527 }
+00528
+00529 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera0">clear</a> ();
+00530 ICommand::execute(cmd, logDisplayVars, <span class="keyword">true</span>);
+00531 <span class="keyword">const</span> std::deque&lt;std::string&gt; &amp;strs = mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera3">lockStrings</a>();
+00532 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> k = 0; k &lt; strs.size(); k++)
+00533 {
+00534 <span class="keyword">const</span> string &amp;str = strs[k];
+00535
+00536 <a class="code" href="a04558.html#a11">uint32</a> pos = str.find(<span class="stringliteral">" "</span>);
+00537 <span class="keywordflow">if</span>(pos == string::npos)
+00538 <span class="keywordflow">continue</span>;
+00539
+00540 string entity = str.substr(0, pos);
+00541 string <a class="code" href="a04223.html#a658">value</a> = str.substr(pos+1, str.size()-pos-2);
+00542 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> u = 0; u &lt; <a class="code" href="a04223.html#a658">value</a>.size(); u++) <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a658">value</a>[u] == <span class="charliteral">' '</span>) <a class="code" href="a04223.html#a658">value</a>[u] = <span class="charliteral">'_'</span>;
+00543
+00544 <span class="comment">// look in the array if we already have something about this entity</span>
+00545
+00546 <span class="keywordflow">if</span> (!async)
+00547 {
+00548 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a573">y</a>;
+00549 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a573">y</a> = 0; <a class="code" href="a04223.html#a573">y</a> &lt; answer.size(); <a class="code" href="a04223.html#a573">y</a>++)
+00550 {
+00551 <span class="keywordflow">if</span> (answer[<a class="code" href="a04223.html#a573">y</a>].second[1] == entity)
+00552 {
+00553 <span class="comment">// ok we found it, just push_back new stuff</span>
+00554 vara = &amp;(answer[<a class="code" href="a04223.html#a573">y</a>].first);
+00555 vala = &amp;(answer[<a class="code" href="a04223.html#a573">y</a>].second);
+00556 <span class="keywordflow">break</span>;
+00557 }
+00558 }
+00559 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a573">y</a> == answer.size ())
+00560 {
+00561 answer.push_back (make_pair(vector&lt;string&gt;(), vector&lt;string&gt;()));
+00562
+00563 vara = &amp;(answer[answer.size()-1].first);
+00564 vala = &amp;(answer[answer.size()-1].second);
+00565
+00566 <span class="comment">// don't add service if we want an entity</span>
+00567 <span class="comment">// todo when we work on entity, we don't need service name and server so we should remove them and collapse all var for the same entity</span>
+00568 vara-&gt;push_back (<span class="stringliteral">"service"</span>);
+00569 string name = IService::getInstance ()-&gt;getServiceUnifiedName();
+00570 vala-&gt;push_back (name);
+00571
+00572 <span class="comment">// add default row</span>
+00573 vara-&gt;push_back (<span class="stringliteral">"entity"</span>);
+00574 vala-&gt;push_back (entity);
+00575 }
+00576
+00577 vara-&gt;push_back (cmd.substr(0, cmd.find(<span class="stringliteral">" "</span>)));
+00578 vala-&gt;push_back (value);
+00579 }
+00580 <span class="keywordflow">else</span>
+00581 {
+00582 <a class="code" href="a05379.html#a107">addRequestWaitingNb</a> (rid);
+00583
+00584 vector&lt;string&gt; vara, vala;
+00585 vara.push_back (<span class="stringliteral">"service"</span>);
+00586 string name = IService::getInstance ()-&gt;getServiceUnifiedName();
+00587 vala.push_back (name);
+00588
+00589 <span class="comment">// add default row</span>
+00590 vara.push_back (<span class="stringliteral">"entity"</span>);
+00591 vala.push_back (entity);
+00592
+00593 vara.push_back (cmd.substr(0, cmd.find(<span class="stringliteral">" "</span>)));
+00594 vala.push_back (value);
+00595
+00596 <a class="code" href="a05379.html#a109">addRequestAnswer</a> (rid, vara, vala);
+00597 }
+00598 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Add to result view for entity '%s', '%s' = '%s'"</span>, varpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[i].first.c_str(), subvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[j].first.c_str(), str.c_str());
+00599 }
+00600 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera5">unlockStrings</a>();
+00601 }
+00602 }
+00603 }
+00604 }
+00605 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a135" doxytag="NLNET::setDefaultEmailParams" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::setDefaultEmailParams </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>smtpServer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>to</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If you call this function, the default from (when from is "") used in the sendEmail will be the one you set by this function
+<p>
+Definition at line <a class="el" href="a05670.html#l00349">349</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+References <a class="el" href="a05670.html#l00040">DefaultFrom</a>, <a class="el" href="a05670.html#l00040">DefaultSMTPServer</a>, <a class="el" href="a05670.html#l00040">DefaultTo</a>, and <a class="el" href="a06756.html#l00873">from</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00350 {
+00351 <a class="code" href="a05379.html#a13">DefaultSMTPServer</a> = smtpServer;
+00352 <a class="code" href="a05379.html#a14">DefaultFrom</a> = <a class="code" href="a05333.html#a132">from</a>;
+00353 <a class="code" href="a05379.html#a15">DefaultTo</a> = to;
+00354 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a220" doxytag="NLNET::setInformations" ></a><p>
+<table class="mdTable" 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 setInformations </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>alarms</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; std::string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>graphupdate</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a117" doxytag="NLNET::setInformations" ></a><p>
+<table class="mdTable" 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 setInformations </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const vector&lt; string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>alarms</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; string &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>graphupdate</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00797">797</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05391.html#l00084">Alarms</a>, <a class="el" href="a06668.html#l00042">CVarPath::Destination</a>, <a class="el" href="a05391.html#l00086">GraphUpdates</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00100">cbInfo()</a>.
+<p>
+<div class="fragment"><pre>00798 {
+00799 <a class="code" href="a04558.html#a15">uint</a> i;
+00800
+00801 <span class="comment">// add only commands that I understand</span>
+00802 <a class="code" href="a05379.html#a1">Alarms</a>.clear ();
+00803 <span class="keywordflow">for</span> (i = 0; i &lt; alarms.size(); i+=3)
+00804 {
+00805 <a class="code" href="a03653.html">CVarPath</a> shardvarpath (alarms[i]);
+00806 <span class="keywordflow">if</span>(shardvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size() == 0 || shardvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second.empty())
+00807 <span class="keywordflow">continue</span>;
+00808 <a class="code" href="a03653.html">CVarPath</a> servervarpath (shardvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second);
+00809 <span class="keywordflow">if</span>(servervarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size() == 0 || servervarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second.empty())
+00810 <span class="keywordflow">continue</span>;
+00811 <a class="code" href="a03653.html">CVarPath</a> servicevarpath (servervarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second);
+00812 <span class="keywordflow">if</span>(servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size() == 0 || servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second.empty())
+00813 <span class="keywordflow">continue</span>;
+00814
+00815 string name = servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second;
+00816
+00817 <span class="keywordflow">if</span> (IService::getInstance()-&gt;getServiceUnifiedName().find(servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].first) != string::npos &amp;&amp; ICommand::exists(name))
+00818 {
+00819 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Adding alarm '%s' limit %d order %s (varpath '%s')"</span>, name.c_str(), atoi(alarms[i+1].c_str()), alarms[i+2].c_str(), alarms[i].c_str());
+00820 <a class="code" href="a05379.html#a1">Alarms</a>.push_back(<a class="code" href="a02193.html">CAlarm</a>(name, atoi(alarms[i+1].c_str()), alarms[i+2]==<span class="stringliteral">"gt"</span>));
+00821 }
+00822 <span class="keywordflow">else</span>
+00823 {
+00824 <span class="keywordflow">if</span> (IService::getInstance()-&gt;getServiceUnifiedName().find(servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].first) == string::npos)
+00825 {
+00826 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Skipping alarm '%s' limit %d order %s (varpath '%s') (not for my service, i'm '%s')"</span>, name.c_str(), atoi(alarms[i+1].c_str()), alarms[i+2].c_str(), alarms[i].c_str(), IService::getInstance()-&gt;getServiceUnifiedName().c_str());
+00827 }
+00828 <span class="keywordflow">else</span>
+00829 {
+00830 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Skipping alarm '%s' limit %d order %s (varpath '%s') (var not exist)"</span>, name.c_str(), atoi(alarms[i+1].c_str()), alarms[i+2].c_str(), alarms[i].c_str());
+00831 }
+00832 }
+00833 }
+00834
+00835 <span class="comment">// do the same with graph update</span>
+00836 <a class="code" href="a05379.html#a2">GraphUpdates</a>.clear ();
+00837 <span class="keywordflow">for</span> (i = 0; i &lt; graphupdate.size(); i+=2)
+00838 {
+00839 <a class="code" href="a03653.html">CVarPath</a> shardvarpath (graphupdate[i]);
+00840 <span class="keywordflow">if</span>(shardvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size() == 0 || shardvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second.empty())
+00841 <span class="keywordflow">continue</span>;
+00842 <a class="code" href="a03653.html">CVarPath</a> servervarpath (shardvarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second);
+00843 <span class="keywordflow">if</span>(servervarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size() == 0 || servervarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second.empty())
+00844 <span class="keywordflow">continue</span>;
+00845 <a class="code" href="a03653.html">CVarPath</a> servicevarpath (servervarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second);
+00846 <span class="keywordflow">if</span>(servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>.size() == 0 || servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second.empty())
+00847 <span class="keywordflow">continue</span>;
+00848
+00849 string VarName = servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].second;
+00850 string ServiceName = servicevarpath.<a class="code" href="a03653.html#CVarPatho0">Destination</a>[0].first;
+00851
+00852 <span class="keywordflow">if</span> (ICommand::exists(VarName) &amp;&amp; (ServiceName == <span class="stringliteral">"*"</span> || IService::getInstance()-&gt;getServiceShortName() == ServiceName))
+00853 {
+00854 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Adding graphupdate '%s' update %d (varpath '%s')"</span>, VarName.c_str(), atoi(graphupdate[i+1].c_str()), graphupdate[i].c_str());
+00855 <a class="code" href="a05379.html#a2">GraphUpdates</a>.push_back(<a class="code" href="a02601.html">CGraphUpdate</a>(VarName, atoi(graphupdate[i+1].c_str())));
+00856 }
+00857 <span class="keywordflow">else</span>
+00858 {
+00859 <span class="keywordflow">if</span> (IService::getInstance()-&gt;getServiceShortName() != ServiceName)
+00860 {
+00861 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Skipping graphupdate '%s' limit %d (varpath '%s') (not for my service, i'm '%s')"</span>, VarName.c_str(), atoi(graphupdate[i+1].c_str()), graphupdate[i].c_str(), IService::getInstance()-&gt;getServiceUnifiedName().c_str());
+00862 }
+00863 <span class="keywordflow">else</span>
+00864 {
+00865 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: Skipping graphupdate '%s' limit %d (varpath '%s') (var not exist)"</span>, VarName.c_str(), atoi(graphupdate[i+1].c_str()), graphupdate[i].c_str());
+00866 }
+00867 }
+00868 }
+00869 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a148" doxytag="NLNET::setListenAddress" ></a><p>
+<table class="mdTable" 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 setListenAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>la</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00244">244</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00397">NLNET::CInetAddress::asIPString()</a>, <a class="el" href="a05962.html#l00054">ListenAddr</a>, <a class="el" href="a05513.html#l00238">NLNET::CBufServer::listenAddress()</a>, <a class="el" href="a05962.html#l00063">ModeTcp</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05962.html#l00053">Server</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00259">cfcbListenAddress()</a>, and <a class="el" href="a05962.html#l00295">NLNET::CLoginServer::init()</a>.
+<p>
+<div class="fragment"><pre>00245 {
+00246 <span class="comment">// if the var is empty or not found, take it from the listenAddress()</span>
+00247 <span class="keywordflow">if</span> (la.empty() &amp;&amp; <a class="code" href="a05379.html#a26">ModeTcp</a> &amp;&amp; <a class="code" href="a05379.html#a21">Server</a> != NULL)
+00248 {
+00249 <a class="code" href="a05379.html#a22">ListenAddr</a> = <a class="code" href="a05379.html#a21">Server</a>-&gt;<a class="code" href="a02302.html#NLNET_1_1CCallbackServera24">listenAddress</a> ().<a class="code" href="a02665.html#NLNET_1_1CInetAddressa0">asIPString</a>();
+00250 }
+00251 <span class="keywordflow">else</span>
+00252 {
+00253 <a class="code" href="a05379.html#a22">ListenAddr</a> = la;
+00254 }
+00255
+00256 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"LS: Listen Address that will be send to client is now '%s'"</span>, <a class="code" href="a05379.html#a22">ListenAddr</a>.c_str());
+00257 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a106" doxytag="NLNET::setRemoteClientCallback" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::setRemoteClientCallback </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05379.html#a73">TRemoteClientCallback</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cb</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00211">211</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05391.html#l00082">RemoteClientCallback</a>, and <a class="el" href="a05392.html#l00066">TRemoteClientCallback</a>.
+<p>
+<div class="fragment"><pre>00212 {
+00213 <a class="code" href="a05379.html#a0">RemoteClientCallback</a> = cb;
+00214 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a173" doxytag="NLNET::sigHandler" ></a><p>
+<table class="mdTable" 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 sigHandler </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>Sig</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00164">164</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00117">ExitSignalAsked</a>, <a class="el" href="a05586.html#l00093">NLMISC::getThreadId()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06364.html#l00164">sigHandler()</a>, <a class="el" href="a06364.html#l00126">SignalisedThread</a>, and <a class="el" href="a06364.html#l00092">SignalName</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00211">initSignal()</a>, and <a class="el" href="a06364.html#l00164">sigHandler()</a>.
+<p>
+<div class="fragment"><pre>00165 {
+00166 <span class="comment">// redirect the signal for the next time</span>
+00167 signal(Sig, sigHandler);
+00168
+00169 <span class="comment">// find the signal</span>
+00170 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; (<span class="keywordtype">int</span>)(<span class="keyword">sizeof</span>(<a class="code" href="a05379.html#a44">Signal</a>)/<span class="keyword">sizeof</span>(<a class="code" href="a05379.html#a44">Signal</a>[0])); i++)
+00171 {
+00172 <span class="keywordflow">if</span> (Sig == <a class="code" href="a05379.html#a44">Signal</a>[i])
+00173 {
+00174 <span class="keywordflow">if</span> (<a class="code" href="a05378.html#a257">getThreadId</a> () != <a class="code" href="a05379.html#a49">SignalisedThread</a>)
+00175 {
+00176 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"SERVICE: Not the main thread received the signal (%s, %d), ignore it"</span>, SignalName[i],Sig);
+00177 <span class="keywordflow">return</span>;
+00178 }
+00179 <span class="keywordflow">else</span>
+00180 {
+00181 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: Signal %s (%d) received"</span>, SignalName[i], Sig);
+00182 <span class="keywordflow">switch</span> (Sig)
+00183 {
+00184 <span class="keywordflow">case</span> SIGABRT :
+00185 <span class="keywordflow">case</span> SIGILL :
+00186 <span class="keywordflow">case</span> SIGINT :
+00187 <span class="keywordflow">case</span> SIGSEGV :
+00188 <span class="keywordflow">case</span> SIGTERM :
+00189 <span class="comment">// you should not call a function and system function like printf in a SigHandle because</span>
+00190 <span class="comment">// signal-handler routines are usually called asynchronously when an interrupt occurs.</span>
+00191 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a48">ExitSignalAsked</a> == 0)
+00192 {
+00193 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: Receive a signal that said that i must exit"</span>);
+00194 <a class="code" href="a05379.html#a48">ExitSignalAsked</a> = Sig;
+00195 <span class="keywordflow">return</span>;
+00196 }
+00197 <span class="keywordflow">else</span>
+00198 {
+00199 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"SERVICE: Signal already received, launch the brutal exit"</span>);
+00200 exit (EXIT_FAILURE);
+00201 }
+00202 <span class="keywordflow">break</span>;
+00203 }
+00204 }
+00205 }
+00206 }
+00207 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"SERVICE: Unknown signal received (%d)"</span>, Sig);
+00208 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a126" doxytag="NLNET::stringFromVectorPart" ></a><p>
+<table class="mdTable" 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 stringFromVectorPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>len</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05514.html#l00106">106</a> of file <a class="el" href="a05514.html">buf_sock.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00235">len</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00107 {
+00108 <a class="code" href="a04199.html#a8">nlassertex</a>( pos+len &lt;= <a class="code" href="a04223.html#a576">v</a>.size(), (<span class="stringliteral">"pos=%u len=%u size=%u"</span>, pos, <a class="code" href="a04223.html#a571">len</a>, <a class="code" href="a04223.html#a576">v</a>.size()) );
+00109
+00110 string <a class="code" href="a04223.html#a626">s</a>;
+00111 <span class="keywordflow">if</span> ( (! <a class="code" href="a04223.html#a576">v</a>.empty()) &amp;&amp; (<a class="code" href="a04223.html#a571">len</a>!=0) )
+00112 {
+00113 <span class="comment">// Copy contents</span>
+00114 <a class="code" href="a04223.html#a626">s</a>.resize( len );
+00115 memcpy( &amp;*<a class="code" href="a04223.html#a626">s</a>.begin(), &amp;*<a class="code" href="a04223.html#a576">v</a>.begin()+pos, <a class="code" href="a04223.html#a571">len</a> );
+00116
+00117 <span class="comment">// Replace '\0' characters</span>
+00118 string::iterator is;
+00119 <span class="keywordflow">for</span> ( is=<a class="code" href="a04223.html#a626">s</a>.begin(); is!=<a class="code" href="a04223.html#a626">s</a>.end(); ++is )
+00120 {
+00121 <span class="keywordflow">if</span> ( ! isprint((<a class="code" href="a04558.html#a7">uint8</a>)(*is)) || (*is) == <span class="charliteral">'%'</span> )
+00122 {
+00123 (*is) = <span class="charliteral">'?'</span>;
+00124 }
+00125 }
+00126 }
+00127
+00128 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a626">s</a>;
+00129 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a158" doxytag="NLNET::StringToEvent" ></a><p>
+<table class="mdTable" 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="a05379.html#a225">TNetworkEvent</a> NLNET::StringToEvent </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+string -&gt; TNetworkEvent
+<p>
+
+<p>
+Definition at line <a class="el" href="a06028.html#l00054">54</a> of file <a class="el" href="a06028.html">message_recorder.cpp</a>.
+<p>
+References <a class="el" href="a05379.html#a225a90">Accepting</a>, <a class="el" href="a05379.html#a225a88">Connecting</a>, <a class="el" href="a05379.html#a225a89">ConnFailing</a>, <a class="el" href="a05379.html#a225a91">Disconnecting</a>, <a class="el" href="a05379.html#a225a92">Error</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05379.html#a225a87">Receiving</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a05379.html#a225a86">Sending</a>, and <a class="el" href="a06029.html#l00049">TNetworkEvent</a>.
+<p>
+Referenced by <a class="el" href="a06029.html#l00072">NLNET::TMessageRecord::serial()</a>.
+<p>
+<div class="fragment"><pre>00055 {
+00056 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a626">s</a> == <span class="stringliteral">"RECV"</span> )
+00057 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a87">Receiving</a>;
+00058 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a626">s</a> == <span class="stringliteral">"SEND"</span> )
+00059 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a86">Sending</a>;
+00060 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a626">s</a> == <span class="stringliteral">"DISC"</span> )
+00061 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a91">Disconnecting</a>;
+00062 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a626">s</a> == <span class="stringliteral">"ACCP"</span> )
+00063 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a90">Accepting</a>;
+00064 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a626">s</a> == <span class="stringliteral">"CONN"</span> )
+00065 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a88">Connecting</a>;
+00066 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a626">s</a> == <span class="stringliteral">"CNFL"</span> )
+00067 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a89">ConnFailing</a>;
+00068 <span class="keywordflow">else</span>
+00069 {
+00070 <a class="code" href="a04199.html#a12">nlstop</a>;
+00071 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a225a92">Error</a>;
+00072 }
+00073 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a139" doxytag="NLNET::stringToInternalIPAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLNET::stringToInternalIPAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>addr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Take a internet dot string and convert it in an uint32 internal format for example "128.64.32.16" -&gt; 0xF0804020.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00522">522</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01759">NLNET::CUnifiedNetwork::addNetworkAssociation()</a>.
+<p>
+<div class="fragment"><pre>00523 {
+00524 <span class="keywordflow">return</span> inet_addr( <a class="code" href="a04223.html#a657">addr</a>.c_str() );
+00525 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a108" doxytag="NLNET::subRequestWaitingNb" ></a><p>
+<table class="mdTable" 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 subRequestWaitingNb </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rid</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00237">237</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05391.html#l00091">Requests</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00238 {
+00239 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0 ; i &lt; <a class="code" href="a05379.html#a4">Requests</a>.size (); i++)
+00240 {
+00241 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a4">Requests</a>[i].Id == rid)
+00242 {
+00243 <a class="code" href="a05379.html#a4">Requests</a>[i].NbWaiting--;
+00244 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"ADMIN: ++ i %d rid %d NbWaiting- %d NbReceived %d"</span>, i, Requests[i].Id, Requests[i].NbWaiting, Requests[i].NbReceived);
+00245 <span class="keywordflow">return</span>;
+00246 }
+00247 }
+00248 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: subRequestWaitingNb: can't find the rid %d"</span>, rid);
+00249 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a193" doxytag="NLNET::typeToString" ></a><p>
+<table class="mdTable" 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 typeToString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">CTransportClass::TProp&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>type</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06580.html#l00077">77</a> of file <a class="el" href="a06580.html">transport_class.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00244">type</a>.
+<p>
+Referenced by <a class="el" href="a06580.html#l00279">cbTCReceiveOtherSideClass()</a>.
+<p>
+<div class="fragment"><pre>00078 {
+00079 string conv[] = {
+00080 <span class="stringliteral">"PropUInt8"</span>, <span class="stringliteral">"PropUInt16"</span>, <span class="stringliteral">"PropUInt32"</span>, <span class="stringliteral">"PropUInt64"</span>,
+00081 <span class="stringliteral">"PropSInt8"</span>, <span class="stringliteral">"PropSInt16"</span>, <span class="stringliteral">"PropSInt32"</span>, <span class="stringliteral">"PropSInt64"</span>,
+00082 <span class="stringliteral">"PropBool"</span>, <span class="stringliteral">"PropFloat"</span>, <span class="stringliteral">"PropDouble"</span>, <span class="stringliteral">"PropString"</span>, <span class="stringliteral">"PropDataSetRow"</span>, <span class="stringliteral">"PropSheetId"</span>, <span class="stringliteral">"PropUKN"</span> };
+00083 <span class="comment">// "PropBool", "PropFloat", "PropDouble", "PropString", "PropDataSetRow", "PropEntityId", "PropSheetId", "PropUKN" };</span>
+00084
+00085 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a> &gt; CTransportClass::PropUKN)
+00086 <span class="keywordflow">return</span> <span class="stringliteral">"&lt;InvalidType&gt;"</span>;
+00087 <span class="keywordflow">return</span> conv[<a class="code" href="a04223.html#a581">type</a>];
+00088 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a201" doxytag="NLNET::uncbConnection" ></a><p>
+<table class="mdTable" 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 uncbConnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00172">172</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06645.html#l00042">AppIdDeadConnection</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, and <a class="el" href="a05511.html#l00042">TSockId</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>.
+<p>
+<div class="fragment"><pre>00173 {
+00174 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: + connec '%s'"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString().c_str());
+00175
+00176 <a class="code" href="a05333.html#a132">from</a>-&gt;setAppId (AppIdDeadConnection);
+00177 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a202" doxytag="NLNET::uncbDisconnection" ></a><p>
+<table class="mdTable" 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 uncbDisconnection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>arg</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00179">179</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00427">NLNET::CUnifiedNetwork::_UsedConnection</a>, <a class="el" href="a06645.html#l00051">allstuffs</a>, <a class="el" href="a06645.html#l00042">AppIdDeadConnection</a>, <a class="el" href="a06645.html#l00047">AUTOCHECK_DISPLAY</a>, <a class="el" href="a06646.html#l00316">NLNET::CUnifiedNetwork::CUnifiedConnection::AutoRetry</a>, <a class="el" href="a06645.html#l01797">NLNET::CUnifiedNetwork::callServiceDownCallback()</a>, <a class="el" href="a06646.html#l00324">NLNET::CUnifiedNetwork::CUnifiedConnection::Connection</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a06645.html#l01498">NLNET::CUnifiedNetwork::getUnifiedConnection()</a>, <a class="el" href="a06646.html#l00314">NLNET::CUnifiedNetwork::CUnifiedConnection::IsExternal</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a06645.html#l01727">NLNET::CUnifiedNetwork::removeNamedCnx()</a>, <a class="el" href="a06646.html#l00354">NLNET::CUnifiedNetwork::CUnifiedConnection::reset()</a>, <a class="el" href="a06646.html#l00310">NLNET::CUnifiedNetwork::CUnifiedConnection::ServiceId</a>, <a class="el" href="a06646.html#l00308">NLNET::CUnifiedNetwork::CUnifiedConnection::ServiceName</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, and <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>.
+<p>
+<div class="fragment"><pre>00180 {
+00181 <span class="keywordflow">if</span>(<a class="code" href="a05333.html#a132">from</a>-&gt;appId () == <a class="code" href="a05379.html#a63">AppIdDeadConnection</a>)
+00182 {
+00183 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: - connec '%s'"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString().c_str());
+00184 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"-connect dead conenction"</span>);
+00185 }
+00186 <span class="keywordflow">else</span>
+00187 {
+00188 CUnifiedNetwork *uni = CUnifiedNetwork::getInstance();
+00189 <a class="code" href="a04558.html#a9">uint16</a> sid = (<a class="code" href="a04558.html#a9">uint16</a>)<a class="code" href="a05333.html#a132">from</a>-&gt;appId();
+00190 CUnifiedNetwork::CUnifiedConnection *uc = uni-&gt;getUnifiedConnection (sid);
+00191 <span class="keywordflow">if</span> (uc == 0)
+00192 {
+00193 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: - connec '%s' sid %hu"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString().c_str(), sid);
+00194 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"-connect '%s' %hu"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString ().c_str (), sid);
+00195 }
+00196 <span class="keywordflow">else</span>
+00197 {
+00198 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: - connec '%s' %s-%hu"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString().c_str(), uc-&gt;ServiceName.c_str (), sid);
+00199 <a class="code" href="a05379.html#a65">allstuffs</a> += <span class="stringliteral">"-connect "</span>+uc-&gt;ServiceName+<span class="stringliteral">"-"</span>+<a class="code" href="a05378.html#a244">toString</a>(sid)+<span class="stringliteral">"\n"</span>;
+00200 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"-connect %s-%hu"</span>, uc-&gt;ServiceName.c_str (), (<a class="code" href="a04558.html#a9">uint16</a>)(uc-&gt;ServiceId));
+00201
+00202 <span class="keywordflow">if</span> (uc-&gt;IsExternal)
+00203 {
+00204 <span class="keywordflow">if</span> (!uc-&gt;AutoRetry)
+00205 {
+00206 <span class="comment">// If it s a external service with no auto retry, remove the connection</span>
+00207
+00208 <span class="comment">// call the user callback</span>
+00209 uni-&gt;callServiceDownCallback(uc-&gt;ServiceName, uc-&gt;ServiceId);
+00210
+00211 <span class="comment">/*CUnifiedNetwork::TNameMappedCallback::iterator it2 = uni-&gt;_DownCallbacks.find(uc-&gt;ServiceName);</span>
+00212 <span class="comment"></span>
+00213 <span class="comment"> if (it2 != uni-&gt;_DownCallbacks.end())</span>
+00214 <span class="comment"> {</span>
+00215 <span class="comment"> // call it</span>
+00216 <span class="comment"> TUnifiedNetCallback cb = (*it2).second.first;</span>
+00217 <span class="comment"> cb(uc-&gt;ServiceName, uc-&gt;ServiceId, (*it2).second.second);</span>
+00218 <span class="comment"> }</span>
+00219 <span class="comment"></span>
+00220 <span class="comment"> for (uint c = 0; c &lt; uni-&gt;_DownUniCallback.size (); c++)</span>
+00221 <span class="comment"> {</span>
+00222 <span class="comment"> if (uni-&gt;_DownUniCallback[c].first != NULL)</span>
+00223 <span class="comment"> uni-&gt;_DownUniCallback[c].first(uc-&gt;ServiceName, uc-&gt;ServiceId, uni-&gt;_DownUniCallback[c].second);</span>
+00224 <span class="comment"> }*/</span>
+00225
+00226 uni-&gt;removeNamedCnx (uc-&gt;ServiceName, uc-&gt;ServiceId);
+00227
+00228 <span class="comment">// remove the _UsedConnection</span>
+00229 <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;
+00230 <span class="keywordflow">for</span> (vector&lt;uint16&gt;::iterator it = uni-&gt;_UsedConnection.begin (); it != uni-&gt;_UsedConnection.end(); it++)
+00231 {
+00232 <span class="keywordflow">if</span> (*it == uc-&gt;ServiceId)
+00233 {
+00234 found = <span class="keyword">true</span>;
+00235 uni-&gt;_UsedConnection.erase (it);
+00236 <span class="keywordflow">break</span>;
+00237 }
+00238 }
+00239 <span class="keywordflow">if</span> (!found) <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: can't find the sid %hu in the _UsedConnection"</span>, uc-&gt;ServiceId);
+00240
+00241 uc-&gt;reset ();
+00242 }
+00243 }
+00244 <span class="keywordflow">else</span>
+00245 {
+00246 <span class="comment">// reset the connection</span>
+00247 <a class="code" href="a04558.html#a15">uint</a> i;
+00248 <span class="keywordflow">for</span> (i = 0; i &lt; uc-&gt;Connection.size (); i++)
+00249 {
+00250 <span class="keywordflow">if</span> (uc-&gt;Connection[i].valid() &amp;&amp; uc-&gt;Connection[i].CbNetBase-&gt;getSockId(uc-&gt;Connection[i].HostId) == <a class="code" href="a05333.html#a132">from</a>)
+00251 {
+00252 <span class="keywordflow">if</span> (uc-&gt;Connection[i].IsServerConnection)
+00253 {
+00254 <span class="comment">// we have to remove the stuffs now because HostId will not be accessible later</span>
+00255 uc-&gt;Connection[i].reset();
+00256 }
+00257 <span class="keywordflow">else</span>
+00258 {
+00259 <span class="comment">// if it s a client, we can't delete now because the callback client is currently in use</span>
+00260 <span class="comment">// only disconnect</span>
+00261 <span class="keywordflow">if</span>(uc-&gt;Connection[i].CbNetBase-&gt;connected ())
+00262 {
+00263 uc-&gt;Connection[i].CbNetBase-&gt;disconnect (uc-&gt;Connection[i].HostId);
+00264 }
+00265 }
+00266 <span class="keywordflow">break</span>;
+00267 }
+00268 }
+00269 <span class="keywordflow">if</span> (i == uc-&gt;Connection.size ())
+00270 {
+00271 <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: received a disconnection from a service but the connection is not in my list!"</span>);
+00272 }
+00273 }
+00274 }
+00275
+00276 <a class="code" href="a05333.html#a132">from</a>-&gt;setAppId (AppIdDeadConnection);
+00277 }
+00278 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a204" doxytag="NLNET::uncbMsgProcessing" ></a><p>
+<table class="mdTable" 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 uncbMsgProcessing </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00406">406</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00454">NLNET::CUnifiedNetwork::_Callbacks</a>, <a class="el" href="a06645.html#l00042">AppIdDeadConnection</a>, <a class="el" href="a06645.html#l00047">AUTOCHECK_DISPLAY</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a06026.html#l00411">NLNET::CMessage::getName()</a>, <a class="el" href="a06645.html#l01498">NLNET::CUnifiedNetwork::getUnifiedConnection()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06646.html#l00308">NLNET::CUnifiedNetwork::CUnifiedConnection::ServiceName</a>, <a class="el" href="a06645.html#l00044">TotalCallbackCalled</a>, <a class="el" href="a06646.html#l00330">NLNET::CUnifiedNetwork::CUnifiedConnection::TotalCallbackCalled</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, and <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>.
+<p>
+<div class="fragment"><pre>00407 {
+00408 <span class="keywordflow">if</span> (<a class="code" href="a05333.html#a132">from</a>-&gt;appId() == <a class="code" href="a05379.html#a63">AppIdDeadConnection</a>)
+00409 {
+00410 <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: Receive a message from a dead connection"</span>);
+00411 <span class="keywordflow">return</span>;
+00412 }
+00413
+00414 CUnifiedNetwork *uni = CUnifiedNetwork::getInstance();
+00415 <a class="code" href="a04558.html#a9">uint16</a> sid = (<a class="code" href="a04558.html#a9">uint16</a>)<a class="code" href="a05333.html#a132">from</a>-&gt;appId();
+00416 CUnifiedNetwork::TMsgMappedCallback::iterator itcb;
+00417
+00418 itcb = uni-&gt;_Callbacks.find(msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a>());
+00419 <span class="keywordflow">if</span> (itcb == uni-&gt;_Callbacks.end())
+00420 {
+00421 <span class="comment">// the callback doesn't exist</span>
+00422 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"HNETL5: Can't find callback '%s' called by service %hu"</span>, msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a>().c_str(), sid);
+00423 }
+00424 <span class="keywordflow">else</span>
+00425 {
+00426 CUnifiedNetwork::CUnifiedConnection *uc = uni-&gt;getUnifiedConnection (sid);
+00427
+00428 <span class="keywordflow">if</span> (uc == 0)
+00429 {
+00430 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"HNETL5: Received a message from a service %hu that is not ready (bad appid? 0x%"</span>NL_I64<span class="stringliteral">"X)"</span>, sid, <a class="code" href="a05333.html#a132">from</a>-&gt;appId ());
+00431 <span class="keywordflow">return</span>;
+00432 }
+00433 <span class="keywordflow">if</span>((*itcb).second == 0)
+00434 {
+00435 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"HNETL5: Received message %s from a service %hu but the associated callback is NULL"</span>, msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a> ().c_str(), sid);
+00436 <span class="keywordflow">return</span>;
+00437 }
+00438
+00439 {
+00440 <span class="keyword">static</span> map&lt;string, CHTimer&gt; timers;
+00441 map&lt;string, CHTimer&gt;::iterator it;
+00442
+00443 {
+00444 <a class="code" href="a04365.html#a4">H_AUTO</a>(L5UCHTimerOverhead);
+00445 string callbackName = <span class="stringliteral">"USRCB_"</span> + msgin.<a class="code" href="a02918.html#NLNET_1_1CMessagea16">getName</a>();
+00446 it = timers.find(callbackName);
+00447 <span class="keywordflow">if</span>(it == timers.end())
+00448 {
+00449 it = timers.insert(make_pair(callbackName, CHTimer(NULL))).first;
+00450 (*it).second.setName((*it).first.c_str());
+00451 }
+00452 }
+00453
+00454 {
+00455 <a class="code" href="a04365.html#a4">H_AUTO</a>(L5UserCallback);
+00456
+00457 (*it).second.before();
+00458 (*itcb).second (msgin, uc-&gt;ServiceName, sid);
+00459 (*it).second.after();
+00460 }
+00461 }
+00462
+00463 uc-&gt;TotalCallbackCalled++;
+00464 <a class="code" href="a05379.html#a64">TotalCallbackCalled</a>++;
+00465 }
+00466 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a203" doxytag="NLNET::uncbServiceIdentification" ></a><p>
+<table class="mdTable" 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 uncbServiceIdentification </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02918.html">CMessage</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>msgin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TSockId&nbsp;</td>
+ <td class="mdname" nowrap> <em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>CCallbackNetBase &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>netbase</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00284">284</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00478">NLNET::CUnifiedNetwork::_DefaultNetwork</a>, <a class="el" href="a06646.html#l00424">NLNET::CUnifiedNetwork::_IdCnx</a>, <a class="el" href="a06646.html#l00475">NLNET::CUnifiedNetwork::_NetworkAssociations</a>, <a class="el" href="a06646.html#l00427">NLNET::CUnifiedNetwork::_UsedConnection</a>, <a class="el" href="a06645.html#l01700">NLNET::CUnifiedNetwork::addNamedCnx()</a>, <a class="el" href="a06645.html#l00051">allstuffs</a>, <a class="el" href="a06645.html#l00042">AppIdDeadConnection</a>, <a class="el" href="a06645.html#l00047">AUTOCHECK_DISPLAY</a>, <a class="el" href="a06645.html#l01768">NLNET::CUnifiedNetwork::callServiceUpCallback()</a>, <a class="el" href="a06646.html#l00324">NLNET::CUnifiedNetwork::CUnifiedConnection::Connection</a>, <a class="el" href="a05527.html#l00138">NLNET::CCallbackNetBase::disconnect()</a>, <a class="el" href="a06646.html#l00322">NLNET::CUnifiedNetwork::CUnifiedConnection::ExtAddress</a>, <a class="el" href="a06756.html#l00873">from</a>, <a class="el" href="a05526.html#l00443">NLNET::CCallbackNetBase::hostAddress()</a>, <a class="el" href="a05981.html#l00107">NL_I64</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00416">nlstop</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, <a class="el" href="a05511.html#l00042">TSockId</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a05981.html#l00096">uint8</a>, and <a class="el" href="a05810.html#l00509">vectorCInetAddressToString()</a>.
+<p>
+<div class="fragment"><pre>00285 {
+00286 string inSName;
+00287 <a class="code" href="a04558.html#a9">uint16</a> inSid;
+00288
+00289 <span class="keywordflow">if</span> (<a class="code" href="a05333.html#a132">from</a>-&gt;appId () != <a class="code" href="a05379.html#a63">AppIdDeadConnection</a>)
+00290 <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: received a connec ident from an unknown connection 0x%"</span>NL_I64<span class="stringliteral">"X"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;appId ());
+00291
+00292 <span class="comment">// recover the service name and id</span>
+00293 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(inSName);
+00294 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>(inSid);
+00295 <a class="code" href="a04558.html#a7">uint8</a> pos;
+00296 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (pos);
+00297 <span class="keywordtype">bool</span> isExternal;
+00298 msgin.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (isExternal);
+00299
+00300 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: + connec ident '%s' %s-%hu pos %hu ext %d"</span>, <a class="code" href="a05333.html#a132">from</a>-&gt;asString().c_str(), inSName.c_str(), inSid, (<a class="code" href="a04558.html#a9">uint16</a>)pos, (<a class="code" href="a04558.html#a7">uint8</a>)isExternal);
+00301
+00302 <a class="code" href="a05379.html#a65">allstuffs</a> += <span class="stringliteral">"+rconnect "</span>+inSName+<span class="stringliteral">"-"</span>+<a class="code" href="a05378.html#a244">toString</a>(inSid)+<span class="stringliteral">" pos "</span>+<a class="code" href="a05378.html#a244">toString</a>((<a class="code" href="a04558.html#a9">uint16</a>)pos)+<span class="stringliteral">"\n"</span>;
+00303 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"+rconnect %s-%hu pos %hu"</span>, inSName.c_str (), (<a class="code" href="a04558.html#a9">uint16</a>)inSid, (<a class="code" href="a04558.html#a9">uint16</a>)pos);
+00304
+00305 <span class="keywordflow">if</span>(isExternal)
+00306 {
+00307 <a class="code" href="a04199.html#a6">nlassert</a> (pos == 0);
+00308 }
+00309
+00310 <span class="keywordflow">if</span> (inSid == 0)
+00311 {
+00312 <span class="keywordflow">if</span> (isExternal)
+00313 {
+00314 inSid = CUnifiedNetwork::getInstance ()-&gt;_ExtSId++;
+00315 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"HNETL5: Received a connection from a service with a SId 0, we give him the SId %d"</span>, inSid);
+00316 }
+00317 <span class="keywordflow">else</span>
+00318 {
+00319 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"HNETL5: Received a connection from a service with a SId 0 and wasn't external, disconnecting it"</span>);
+00320 netbase.disconnect();
+00321 <span class="keywordflow">return</span>;
+00322 }
+00323 }
+00324
+00325 <a class="code" href="a05333.html#a132">from</a>-&gt;setAppId(inSid);
+00326
+00327 <span class="comment">// add a new connection to the list</span>
+00328 CUnifiedNetwork *uni= CUnifiedNetwork::getInstance();
+00329
+00330 <span class="keywordflow">if</span>(inSid &gt;= uni-&gt;_IdCnx.size ())
+00331 {
+00332 uni-&gt;_IdCnx.resize (inSid+1);
+00333 }
+00334
+00335 <span class="keywordflow">switch</span>(uni-&gt;_IdCnx[inSid].State)
+00336 {
+00337 <span class="keywordflow">case</span> CUnifiedNetwork::CUnifiedConnection::NotUsed: <span class="comment">// add the new unified connection</span>
+00338 uni-&gt;_IdCnx[inSid] = CUnifiedNetwork::CUnifiedConnection(inSName, inSid, isExternal);
+00339 uni-&gt;_UsedConnection.push_back (inSid);
+00340 <span class="keywordflow">break</span>;
+00341 <span class="keywordflow">default</span>:
+00342 <span class="keywordflow">break</span>;
+00343 }
+00344
+00345 <span class="keywordflow">if</span> (uni-&gt;_IdCnx[inSid].IsExternal != isExternal)
+00346 {
+00347 <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: Receive a connection that is not totally external %d %d"</span>, uni-&gt;_IdCnx[inSid].IsExternal, isExternal);
+00348 <span class="keywordflow">return</span>;
+00349 }
+00350
+00351 <span class="keywordtype">bool</span> FirstConnection = (uni-&gt;_IdCnx[inSid].Connection.size () == 0);
+00352
+00353 <span class="comment">// add the connection to the already inserted unified connection</span>
+00354 <span class="keywordflow">if</span> (pos &gt;= uni-&gt;_IdCnx[inSid].Connection.size ())
+00355 uni-&gt;_IdCnx[inSid].Connection.resize(pos+1);
+00356 uni-&gt;_IdCnx[inSid].Connection[pos] = CUnifiedNetwork::CUnifiedConnection::TConnection(&amp;netbase, from);
+00357
+00358 <span class="comment">// If the connection is external, we'll never receive the ExtAddress by the naming service, so add it manually</span>
+00359 <span class="keywordflow">if</span> (isExternal)
+00360 {
+00361 uni-&gt;_IdCnx[inSid].ExtAddress.push_back (netbase.hostAddress (from));
+00362 uni-&gt;_IdCnx[inSid].setupNetworkAssociation (uni-&gt;_NetworkAssociations, uni-&gt;_DefaultNetwork);
+00363 }
+00364
+00365
+00366 <span class="comment">// todo ace temp to savoir comment c est possible ce cas la</span>
+00367 <span class="keywordflow">if</span> (uni-&gt;_IdCnx[inSid].Connection.size() == 3)
+00368 {
+00369 CUnifiedNetwork::CUnifiedConnection *uc = &amp;uni-&gt;_IdCnx[inSid];
+00370 <a class="code" href="a04199.html#a12">nlstop</a>;
+00371 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: ext addr %s"</span>, vectorCInetAddressToString (uc-&gt;ExtAddress).c_str ());
+00372 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; uc-&gt;Connection.size(); i++)
+00373 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: cnx %s"</span>, uc-&gt;Connection[i].HostId-&gt;asString ().c_str ());
+00374 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"HNETL5: %s"</span>, <a class="code" href="a05379.html#a65">allstuffs</a>.c_str ());
+00375 }
+00376
+00377 <span class="comment">// send the callback to the user with the first connection</span>
+00378 <span class="keywordflow">if</span> (FirstConnection)
+00379 {
+00380 <span class="comment">// insert the name in the map to be able to send message with the name</span>
+00381 uni-&gt;addNamedCnx (inSName, inSid);
+00382
+00383 uni-&gt;callServiceUpCallback (inSName, inSid);
+00384 <span class="comment">/*</span>
+00385 <span class="comment"> // now we warn the user</span>
+00386 <span class="comment"> CUnifiedNetwork::TNameMappedCallback::iterator it = uni-&gt;_UpCallbacks.find(inSName);</span>
+00387 <span class="comment"> if (it != uni-&gt;_UpCallbacks.end())</span>
+00388 <span class="comment"> {</span>
+00389 <span class="comment"> // call it</span>
+00390 <span class="comment"> for (list&lt;TCallbackArgItem&gt; it2 = (*it).second.begin(); it2 != (*it).second.end(); it2++)</span>
+00391 <span class="comment"> {</span>
+00392 <span class="comment"> TUnifiedNetCallback cb = (*it2).first;</span>
+00393 <span class="comment"> if (cb) cb(inSName, inSid, (*it2).second);</span>
+00394 <span class="comment"> }</span>
+00395 <span class="comment"> }</span>
+00396 <span class="comment"></span>
+00397 <span class="comment"> for (uint c = 0; c &lt; uni-&gt;_UpUniCallback.size (); c++)</span>
+00398 <span class="comment"> {</span>
+00399 <span class="comment"> if (uni-&gt;_UpUniCallback[c].first != NULL)</span>
+00400 <span class="comment"> uni-&gt;_UpUniCallback[c].first (inSName, inSid, uni-&gt;_UpUniCallback[c].second);</span>
+00401 <span class="comment"> }*/</span>
+00402 }
+00403 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a199" doxytag="NLNET::uNetRegistrationBroadcast" ></a><p>
+<table class="mdTable" 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 uNetRegistrationBroadcast </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TServiceId&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>addr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00058">58</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00478">NLNET::CUnifiedNetwork::_DefaultNetwork</a>, <a class="el" href="a06646.html#l00424">NLNET::CUnifiedNetwork::_IdCnx</a>, <a class="el" href="a06646.html#l00475">NLNET::CUnifiedNetwork::_NetworkAssociations</a>, <a class="el" href="a06646.html#l00448">NLNET::CUnifiedNetwork::_SId</a>, <a class="el" href="a06646.html#l00427">NLNET::CUnifiedNetwork::_UsedConnection</a>, <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a06645.html#l00051">allstuffs</a>, <a class="el" href="a06645.html#l00047">AUTOCHECK_DISPLAY</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, <a class="el" href="a06090.html#l00042">TServiceId</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05810.html#l00509">vectorCInetAddressToString()</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>.
+<p>
+<div class="fragment"><pre>00059 {
+00060 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"HNETL5: + naming %s-%hu '%s'"</span>, name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)sid, <a class="code" href="a05379.html#a138">vectorCInetAddressToString</a>(addr).c_str ());
+00061
+00062 <a class="code" href="a05379.html#a65">allstuffs</a> += <span class="stringliteral">"+naming "</span>+name+<span class="stringliteral">"-"</span>+<a class="code" href="a05378.html#a244">toString</a>(sid)+<span class="stringliteral">"\n"</span>;
+00063 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"+naming %s-%hu"</span>, name.c_str (), (<a class="code" href="a04558.html#a9">uint16</a>)sid);
+00064
+00065 CUnifiedNetwork *uni= CUnifiedNetwork::getInstance();
+00066
+00067 <span class="keywordflow">if</span> (uni-&gt;_SId == sid)
+00068 {
+00069 <a class="code" href="a05379.html#a65">allstuffs</a> += <span class="stringliteral">"itsme!!!\n"</span>;
+00070 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"itsme!!!"</span>);
+00071 <span class="comment">// it's me! don't add me!!!</span>
+00072 <span class="keywordflow">return</span>;
+00073 }
+00074
+00075 <span class="comment">// add the unified connection</span>
+00076
+00077 <span class="keywordflow">if</span>(sid &gt;= uni-&gt;_IdCnx.size ())
+00078 uni-&gt;_IdCnx.resize (sid+1);
+00079
+00080 <span class="keywordflow">if</span> (uni-&gt;_IdCnx[sid].State == CUnifiedNetwork::CUnifiedConnection::NotUsed)
+00081 {
+00082 uni-&gt;_IdCnx[sid] = CUnifiedNetwork::CUnifiedConnection(name, sid, <span class="keyword">false</span>);
+00083 uni-&gt;_UsedConnection.push_back (sid);
+00084 }
+00085
+00086 <span class="keywordflow">if</span> (!uni-&gt;_IdCnx[sid].ExtAddress.empty ()) <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: %s-%hu already inserted in the table with '%s'"</span>, name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)sid, <a class="code" href="a05379.html#a138">vectorCInetAddressToString</a> (uni-&gt;_IdCnx[sid].ExtAddress).c_str ());
+00087
+00088
+00089 <span class="comment">// set the list of external addresses</span>
+00090
+00091 <a class="code" href="a04199.html#a6">nlassert</a> (!<a class="code" href="a04223.html#a657">addr</a>.empty());
+00092
+00093 uni-&gt;_IdCnx[sid].ExtAddress = <a class="code" href="a04223.html#a657">addr</a>;
+00094
+00095 <span class="comment">// associate nid with ext address</span>
+00096 uni-&gt;_IdCnx[sid].setupNetworkAssociation (uni-&gt;_NetworkAssociations, uni-&gt;_DefaultNetwork);
+00097 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a200" doxytag="NLNET::uNetUnregistrationBroadcast" ></a><p>
+<table class="mdTable" 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 uNetUnregistrationBroadcast </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TServiceId&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>addr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00100">100</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+References <a class="el" href="a06646.html#l00427">NLNET::CUnifiedNetwork::_UsedConnection</a>, <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a06645.html#l00051">allstuffs</a>, <a class="el" href="a06645.html#l00042">AppIdDeadConnection</a>, <a class="el" href="a06645.html#l00047">AUTOCHECK_DISPLAY</a>, <a class="el" href="a06645.html#l01797">NLNET::CUnifiedNetwork::callServiceDownCallback()</a>, <a class="el" href="a06646.html#l00324">NLNET::CUnifiedNetwork::CUnifiedConnection::Connection</a>, <a class="el" href="a06645.html#l01498">NLNET::CUnifiedNetwork::getUnifiedConnection()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a06645.html#l01727">NLNET::CUnifiedNetwork::removeNamedCnx()</a>, <a class="el" href="a06646.html#l00354">NLNET::CUnifiedNetwork::CUnifiedConnection::reset()</a>, <a class="el" href="a06646.html#l00310">NLNET::CUnifiedNetwork::CUnifiedConnection::ServiceId</a>, <a class="el" href="a06646.html#l00308">NLNET::CUnifiedNetwork::CUnifiedConnection::ServiceName</a>, <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>, <a class="el" href="a06090.html#l00042">TServiceId</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05810.html#l00509">vectorCInetAddressToString()</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>.
+<p>
+<div class="fragment"><pre>00101 {
+00102 <a class="code" href="a04199.html#a0">nldebug</a> (<span class="stringliteral">"HNETL5: - naming %s-%hu '%s'"</span>, name.c_str(), (<a class="code" href="a04558.html#a9">uint16</a>)sid, <a class="code" href="a05379.html#a138">vectorCInetAddressToString</a> (addr).c_str ());
+00103
+00104 <a class="code" href="a05379.html#a65">allstuffs</a> += <span class="stringliteral">"-naming "</span>+name+<span class="stringliteral">"-"</span>+<a class="code" href="a05378.html#a244">toString</a>(sid)+<span class="stringliteral">"\n"</span>;
+00105 <a class="code" href="a05373.html#a4">test</a>.displayNL (<span class="stringliteral">"-naming %s-%hu"</span>, name.c_str (), (<a class="code" href="a04558.html#a9">uint16</a>)sid);
+00106
+00107 <span class="comment">// get the service connection</span>
+00108 CUnifiedNetwork *uni = CUnifiedNetwork::getInstance();
+00109
+00110 CUnifiedNetwork::CUnifiedConnection *uc = uni-&gt;getUnifiedConnection (sid);
+00111 <span class="keywordflow">if</span> (uc == 0) <span class="keywordflow">return</span>; <span class="comment">// should never happen, the getUnifiedConnection() will generate a AUTOCHECK_DISPLAY</span>
+00112
+00113 <span class="comment">// call the user callback</span>
+00114
+00115 uni-&gt;callServiceDownCallback(uc-&gt;ServiceName, uc-&gt;ServiceId);
+00116
+00117 <span class="comment">/*</span>
+00118 <span class="comment"> CUnifiedNetwork::TNameMappedCallback::iterator it2 = uni-&gt;_DownCallbacks.find(uc-&gt;ServiceName);</span>
+00119 <span class="comment"></span>
+00120 <span class="comment"> if (it2 != uni-&gt;_DownCallbacks.end())</span>
+00121 <span class="comment"> {</span>
+00122 <span class="comment"> // call it</span>
+00123 <span class="comment"> TUnifiedNetCallback cb = (*it2).second.first;</span>
+00124 <span class="comment"> cb(uc-&gt;ServiceName, uc-&gt;ServiceId, (*it2).second.second);</span>
+00125 <span class="comment"> }</span>
+00126 <span class="comment"></span>
+00127 <span class="comment"> for (uint c = 0; c &lt; uni-&gt;_DownUniCallback.size (); c++)</span>
+00128 <span class="comment"> {</span>
+00129 <span class="comment"> if (uni-&gt;_DownUniCallback[c].first != NULL)</span>
+00130 <span class="comment"> uni-&gt;_DownUniCallback[c].first(uc-&gt;ServiceName, uc-&gt;ServiceId, uni-&gt;_DownUniCallback[c].second);</span>
+00131 <span class="comment"> }*/</span>
+00132
+00133 <span class="keywordflow">if</span>(!uc-&gt;Connection.empty ())
+00134 {
+00135 <span class="comment">// set all connection to dead, now, all messages received on this socket will be ignored and closed</span>
+00136 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; uc-&gt;Connection.size (); ++i)
+00137 {
+00138 <span class="keywordflow">if</span> (uc-&gt;Connection[i].valid())
+00139 uc-&gt;Connection[i].setAppId (AppIdDeadConnection);
+00140 }
+00141
+00142 <span class="comment">//</span>
+00143 <span class="comment">// It's the first connection that added the _NamedCnx so if there s no connection, no need to</span>
+00144 <span class="comment">// remove entry in _NamedCnx</span>
+00145 <span class="comment">//</span>
+00146
+00147 uni-&gt;removeNamedCnx (uc-&gt;ServiceName, uc-&gt;ServiceId);
+00148 }
+00149
+00150 <span class="comment">// remove the _UsedConnection</span>
+00151 <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;
+00152 <span class="keywordflow">for</span> (vector&lt;uint16&gt;::iterator it = uni-&gt;_UsedConnection.begin (); it != uni-&gt;_UsedConnection.end(); it++)
+00153 {
+00154 <span class="keywordflow">if</span> (*it == uc-&gt;ServiceId)
+00155 {
+00156 found = <span class="keyword">true</span>;
+00157 uni-&gt;_UsedConnection.erase (it);
+00158 <span class="keywordflow">break</span>;
+00159 }
+00160 }
+00161 <span class="keywordflow">if</span> (!found) <a class="code" href="a05222.html#a0">AUTOCHECK_DISPLAY</a> (<span class="stringliteral">"HNETL5: can't find the sid %hu in the _UsedConnection"</span>, uc-&gt;ServiceId);
+00162
+00163 <span class="comment">// reset the unified connection</span>
+00164 uc-&gt;reset ();
+00165 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a167" doxytag="NLNET::UnregistrationBroadcast" ></a><p>
+<table class="mdTable" 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 UnregistrationBroadcast </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>TServiceId&nbsp;</td>
+ <td class="mdname" nowrap> <em>sid</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>addr</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06098.html#l00164">164</a> of file <a class="el" href="a06098.html">net_manager.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a06090.html#l00042">TServiceId</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a06098.html#l00169">NLNET::CNetManager::init()</a>.
+<p>
+<div class="fragment"><pre>00165 {
+00166 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"HNETL4: UnregistrationBroadcast() of service %s-%hu"</span>, name.c_str (), (<a class="code" href="a04558.html#a9">uint16</a>)sid);
+00167 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a116" doxytag="NLNET::updateAdmin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::updateAdmin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00648">648</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+References <a class="el" href="a05943.html#l00115">NLMISC::CLog::addDisplayer()</a>, <a class="el" href="a05391.html#l00089">AlarmCheckDelay</a>, <a class="el" href="a05391.html#l00084">Alarms</a>, <a class="el" href="a05391.html#l00310">cleanRequest()</a>, <a class="el" href="a05977.html#l00062">NLMISC::CMemDisplayer::clear()</a>, <a class="el" href="a05391.html#l00086">GraphUpdates</a>, <a class="el" href="a05586.html#l00422">NLMISC::humanReadableToBytes()</a>, <a class="el" href="a05977.html#l00058">NLMISC::CMemDisplayer::lockStrings()</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05391.html#l00612">sendAdminEmail()</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05538.html#l02935">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="a05977.html#l00060">NLMISC::CMemDisplayer::unlockStrings()</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>.
+<p>
+<div class="fragment"><pre>00649 {
+00650 string str;
+00651 CLog logDisplayVars;
+00652 <a class="code" href="a02750.html">CLightMemDisplayer</a> mdDisplayVars;
+00653 logDisplayVars.addDisplayer (&amp;mdDisplayVars);
+00654
+00655 <a class="code" href="a04558.html#a11">uint32</a> CurrentTime = CTime::getSecondsSince1970();
+00656
+00657
+00658 <span class="comment">//</span>
+00659 <span class="comment">// check admin requests</span>
+00660 <span class="comment">//</span>
+00661
+00662 <a class="code" href="a05379.html#a111">cleanRequest</a> ();
+00663
+00664
+00665 <span class="comment">//</span>
+00666 <span class="comment">// Check graph updates</span>
+00667 <span class="comment">//</span>
+00668
+00669 <span class="keyword">static</span> <a class="code" href="a04558.html#a11">uint32</a> lastGraphUpdateCheck = 0;
+00670
+00671 <span class="keywordflow">if</span> (CurrentTime &gt;= lastGraphUpdateCheck+1)
+00672 {
+00673 lastGraphUpdateCheck = CurrentTime;
+00674
+00675 <a class="code" href="a02918.html">CMessage</a> msgout (<span class="stringliteral">"GRAPH_UPDATE"</span>);
+00676 <span class="keywordtype">bool</span> empty = <span class="keyword">true</span>;
+00677 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j = 0; j &lt; <a class="code" href="a05379.html#a2">GraphUpdates</a>.size(); j++)
+00678 {
+00679 <span class="keywordflow">if</span> (CurrentTime &gt;= <a class="code" href="a05379.html#a2">GraphUpdates</a>[j].LastUpdate + <a class="code" href="a05379.html#a2">GraphUpdates</a>[j].Update)
+00680 {
+00681 <span class="comment">// have to send a new update for this var</span>
+00682 ICommand::execute(GraphUpdates[j].Name, logDisplayVars, <span class="keyword">true</span>, <span class="keyword">false</span>);
+00683 <span class="keyword">const</span> std::deque&lt;std::string&gt; &amp;strs = mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera3">lockStrings</a>();
+00684 <a class="code" href="a04558.html#a10">sint32</a> val;
+00685 <span class="keywordflow">if</span> (strs.size() != 1)
+00686 {
+00687 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: The graph update command execution not return exactly 1 line but %d"</span>, strs.size());
+00688 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; strs.size(); i++)
+00689 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: line %d: '%s'"</span>, i, strs[i].c_str());
+00690 val = 0;
+00691 }
+00692 <span class="keywordflow">else</span>
+00693 {
+00694 val = atoi(strs[0].c_str());
+00695 }
+00696 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera5">unlockStrings</a> ();
+00697 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera0">clear</a> ();
+00698
+00699 string name = IService::getInstance()-&gt;getServiceAliasName();
+00700 <span class="keywordflow">if</span> (name.empty())
+00701 name = IService::getInstance()-&gt;getServiceShortName();
+00702
+00703 <span class="keywordflow">if</span>(empty)
+00704 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (CurrentTime);
+00705
+00706 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (name);
+00707 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (GraphUpdates[j].Name);
+00708 msgout.<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a> (val);
+00709
+00710 empty = <span class="keyword">false</span>;
+00711
+00712 <a class="code" href="a05379.html#a2">GraphUpdates</a>[j].LastUpdate = CurrentTime;
+00713 }
+00714 }
+00715
+00716 <span class="keywordflow">if</span>(!empty)
+00717 {
+00718 <span class="keywordflow">if</span>(IService::getInstance ()-&gt;getServiceShortName()==<span class="stringliteral">"AES"</span>)
+00719 CUnifiedNetwork::getInstance ()-&gt;send (<span class="stringliteral">"AS"</span>, msgout);
+00720 <span class="keywordflow">else</span>
+00721 CUnifiedNetwork::getInstance ()-&gt;send (<span class="stringliteral">"AES"</span>, msgout);
+00722 }
+00723 }
+00724
+00725
+00726 <span class="comment">//</span>
+00727 <span class="comment">// Check alarms</span>
+00728 <span class="comment">//</span>
+00729
+00730 <span class="keyword">static</span> <a class="code" href="a04558.html#a11">uint32</a> lastAlarmsCheck = 0;
+00731
+00732 <span class="keywordflow">if</span> (CurrentTime &gt;= lastAlarmsCheck+<a class="code" href="a05379.html#a3">AlarmCheckDelay</a>)
+00733 {
+00734 lastAlarmsCheck = CTime::getSecondsSince1970();
+00735
+00736 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; <a class="code" href="a05379.html#a1">Alarms</a>.size(); )
+00737 {
+00738 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera0">clear</a> ();
+00739 ICommand::execute(Alarms[i].Name, logDisplayVars, <span class="keyword">true</span>, <span class="keyword">false</span>);
+00740 <span class="keyword">const</span> std::deque&lt;std::string&gt; &amp;strs = mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera3">lockStrings</a>();
+00741
+00742 <span class="keywordflow">if</span> (strs.size()&gt;0)
+00743 {
+00744 str = strs[0].substr(0,strs[0].<a class="code" href="a04115.html#a94">size</a>()-1);
+00745 }
+00746 <span class="keywordflow">else</span>
+00747 {
+00748 str = <span class="stringliteral">"???"</span>;
+00749 }
+00750
+00751 mdDisplayVars.<a class="code" href="a02751.html#NLMISC_1_1CMemDisplayera5">unlockStrings</a>();
+00752
+00753 <span class="keywordflow">if</span> (str == <span class="stringliteral">"???"</span>)
+00754 {
+00755 <span class="comment">// variable doesn't exist, remove it from alarms</span>
+00756 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"ADMIN: Alarm problem: variable '%s' returns ??? instead of a good value"</span>, Alarms[i].Name.c_str());
+00757 <a class="code" href="a05379.html#a1">Alarms</a>.erase (<a class="code" href="a05379.html#a1">Alarms</a>.begin()+i);
+00758 }
+00759 <span class="keywordflow">else</span>
+00760 {
+00761 <span class="comment">// compare the value</span>
+00762 <a class="code" href="a04558.html#a11">uint32</a> err = <a class="code" href="a05379.html#a1">Alarms</a>[i].Limit;
+00763 <a class="code" href="a04558.html#a11">uint32</a> val = <a class="code" href="a05378.html#a267">humanReadableToBytes</a>(str);
+00764 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a1">Alarms</a>[i].GT &amp;&amp; val &gt;= err)
+00765 {
+00766 <span class="keywordflow">if</span> (!<a class="code" href="a05379.html#a1">Alarms</a>[i].Activated)
+00767 {
+00768 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: VARIABLE TOO BIG '%s' %u &gt;= %u"</span>, Alarms[i].Name.c_str(), val, err);
+00769 <a class="code" href="a05379.html#a1">Alarms</a>[i].Activated = <span class="keyword">true</span>;
+00770 <a class="code" href="a05379.html#a114">sendAdminEmail</a> (<span class="stringliteral">"Alarm: Variable %s is %u that is greater or equal than the limit %u"</span>, Alarms[i].Name.c_str(), val, err);
+00771 }
+00772 }
+00773 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="a05379.html#a1">Alarms</a>[i].GT &amp;&amp; val &lt;= err)
+00774 {
+00775 <span class="keywordflow">if</span> (!<a class="code" href="a05379.html#a1">Alarms</a>[i].Activated)
+00776 {
+00777 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: VARIABLE TOO LOW '%s' %u &lt;= %u"</span>, Alarms[i].Name.c_str(), val, err);
+00778 <a class="code" href="a05379.html#a1">Alarms</a>[i].Activated = <span class="keyword">true</span>;
+00779 <a class="code" href="a05379.html#a114">sendAdminEmail</a> (<span class="stringliteral">"Alarm: Variable %s is %u that is lower or equal than the limit %u"</span>, Alarms[i].Name.c_str(), val, err);
+00780 }
+00781 }
+00782 <span class="keywordflow">else</span>
+00783 {
+00784 <span class="keywordflow">if</span> (<a class="code" href="a05379.html#a1">Alarms</a>[i].Activated)
+00785 {
+00786 <a class="code" href="a04199.html#a1">nlinfo</a> (<span class="stringliteral">"ADMIN: variable is ok '%s' %u %s %u"</span>, Alarms[i].Name.c_str(), val, (<a class="code" href="a05379.html#a1">Alarms</a>[i].GT?<span class="stringliteral">"&lt;"</span>:<span class="stringliteral">"&gt;"</span>), err);
+00787 <a class="code" href="a05379.html#a1">Alarms</a>[i].Activated = <span class="keyword">false</span>;
+00788 }
+00789 }
+00790
+00791 i++;
+00792 }
+00793 }
+00794 }
+00795 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a172" doxytag="NLNET::UpdateAssertionThreadTimeout" ></a><p>
+<table class="mdTable" 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="a03646.html">CVariable</a>&lt;<a class="el" href="a04558.html#a11">uint32</a>&gt; UpdateAssertionThreadTimeout </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">"UpdateAssertionThreadTimeout"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"in&nbsp;</td>
+ <td class="mdname" nowrap> <em>millisecond</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>timeout before thread assertion"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>0&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>0&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>true&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>UpdateAssertionThreadTimeoutCB&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a171" doxytag="NLNET::UpdateAssertionThreadTimeoutCB" ></a><p>
+<table class="mdTable" 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 UpdateAssertionThreadTimeoutCB </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03648.html">IVariable</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>var</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00155">155</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+References <a class="el" href="a06364.html#l00154">MyTAT</a>, <a class="el" href="a06554.html#l00110">CTimeoutAssertionThread::timeout()</a>, and <a class="el" href="a03648.html#NLMISC_1_1IVariablea4">NLMISC::IVariable::toString()</a>.
+<p>
+<div class="fragment"><pre>00155 { <a class="code" href="a05379.html#a56">MyTAT</a>.<a class="code" href="a03537.html#CTimeoutAssertionThreada6">timeout</a>(atoi(var.<a class="code" href="a03648.html#NLMISC_1_1IVariablea4">toString</a>().c_str())); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a120" doxytag="NLNET::updateStatCounter" ></a><p>
+<table class="mdTable" 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#a13">uint64</a> updateStatCounter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a13">uint64</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>counter</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a13">uint64</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>newvalue</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00350">350</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00361">NLNET::CBufClient::newBytesDownloaded()</a>, and <a class="el" href="a05506.html#l00370">NLNET::CBufClient::newBytesUploaded()</a>.
+<p>
+<div class="fragment"><pre>00351 {
+00352 <a class="code" href="a04558.html#a13">uint64</a> result = newvalue - counter;
+00353 counter = newvalue;
+00354 <span class="keywordflow">return</span> result;
+00355 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a168" doxytag="NLNET::UserSpeedLoop" ></a><p>
+<table class="mdTable" 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="a03646.html">CVariable</a>&lt;<a class="el" href="a04558.html#a10">sint32</a>&gt; UserSpeedLoop </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">"UserSpeedLoop"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>"duration of the last network loop(<a class="el" href="a04223.html#a647">in</a> ms)"&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>10&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>false&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a132" doxytag="NLNET::uuencode" ></a><p>
+<table class="mdTable" 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 uuencode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>store</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const int&nbsp;</td>
+ <td class="mdname" nowrap> <em>length</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05670.html#l00061">61</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00977">s</a>, and <a class="el" href="a05670.html#l00043">tbl</a>.
+<p>
+Referenced by <a class="el" href="a05670.html#l00128">sendEmail()</a>.
+<p>
+<div class="fragment"><pre>00062 {
+00063 <span class="keywordtype">int</span> i;
+00064 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *p = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)store;
+00065 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *us = (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)<a class="code" href="a04223.html#a626">s</a>;
+00066
+00067 <span class="comment">/* Transform the 3x8 bits to 4x6 bits, as required by base64. */</span>
+00068 <span class="keywordflow">for</span> (i = 0; i &lt; length; i += 3) {
+00069 *p++ = <a class="code" href="a05379.html#a16">tbl</a>[us[0] &gt;&gt; 2];
+00070 *p++ = <a class="code" href="a05379.html#a16">tbl</a>[((us[0] &amp; 3) &lt;&lt; 4) + (us[1] &gt;&gt; 4)];
+00071 *p++ = <a class="code" href="a05379.html#a16">tbl</a>[((us[1] &amp; 0xf) &lt;&lt; 2) + (us[2] &gt;&gt; 6)];
+00072 *p++ = <a class="code" href="a05379.html#a16">tbl</a>[us[2] &amp; 0x3f];
+00073 us += 3;
+00074 }
+00075 <span class="comment">/* Pad the result if necessary... */</span>
+00076 <span class="keywordflow">if</span> (i == length + 1) {
+00077 *(p - 1) = <a class="code" href="a05379.html#a16">tbl</a>[64];
+00078 }
+00079 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i == length + 2) {
+00080 *(p - 1) = *(p - 2) = <a class="code" href="a05379.html#a16">tbl</a>[64];
+00081 }
+00082 <span class="comment">/* ...and zero-terminate it. */</span>
+00083 *p = <span class="charliteral">'\0'</span>;
+00084 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a138" doxytag="NLNET::vectorCInetAddressToString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::vectorCInetAddressToString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>addrs</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00509">509</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, <a class="el" href="a06089.html#l00119">cbRegisterBroadcast()</a>, <a class="el" href="a06645.html#l00284">uncbServiceIdentification()</a>, <a class="el" href="a06645.html#l00058">uNetRegistrationBroadcast()</a>, and <a class="el" href="a06645.html#l00100">uNetUnregistrationBroadcast()</a>.
+<p>
+<div class="fragment"><pre>00510 {
+00511 string str;
+00512
+00513 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i = 0; i &lt; addrs.size(); i++)
+00514 {
+00515 <span class="keywordflow">if</span> (i != 0)
+00516 str += <span class="stringliteral">" "</span>;
+00517 str += addrs[i].asString().c_str ();
+00518 }
+00519 <span class="keywordflow">return</span> str;
+00520 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a33" doxytag="NLNET::_RegistrationBroadcastCallback" ></a><p>
+<table class="mdTable" 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="a05379.html#a94">TBroadcastCallback</a> <a class="el" href="a05379.html#a33">NLNET::_RegistrationBroadcastCallback</a> = NULL<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00055">55</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00119">cbRegisterBroadcast()</a>, and <a class="el" href="a06089.html#l00066">NLNET::CNamingClient::setRegistrationBroadcastCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a34" doxytag="NLNET::_UnregistrationBroadcastCallback" ></a><p>
+<table class="mdTable" 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="a05379.html#a94">TBroadcastCallback</a> <a class="el" href="a05379.html#a34">NLNET::_UnregistrationBroadcastCallback</a> = NULL<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00056">56</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00178">cbUnregisterBroadcast()</a>, and <a class="el" href="a06089.html#l00071">NLNET::CNamingClient::setUnregistrationBroadcastCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a23" doxytag="NLNET::AcceptInvalidCookie" ></a><p>
+<table class="mdTable" 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="a05379.html#a23">NLNET::AcceptInvalidCookie</a> = false<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00056">56</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00181">cbShardValidation()</a>, and <a class="el" href="a05962.html#l00272">cfcbAcceptInvalidCookie()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="NLNET::AlarmCheckDelay" ></a><p>
+<table class="mdTable" 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#a11">uint32</a> <a class="el" href="a05379.html#a3">NLNET::AlarmCheckDelay</a> = 5
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00089">89</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00648">updateAdmin()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="NLNET::Alarms" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt; <a class="el" href="a02193.html">CAlarm</a> &gt; <a class="el" href="a05379.html#a1">NLNET::Alarms</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00084">84</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00875">NLMISC_COMMAND()</a>, <a class="el" href="a05391.html#l00797">setInformations()</a>, and <a class="el" href="a05391.html#l00648">updateAdmin()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a65" doxytag="NLNET::allstuffs" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a65">NLNET::allstuffs</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00051">51</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l01700">NLNET::CUnifiedNetwork::addNamedCnx()</a>, <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, <a class="el" href="a06645.html#l01727">NLNET::CUnifiedNetwork::removeNamedCnx()</a>, <a class="el" href="a06645.html#l00179">uncbDisconnection()</a>, <a class="el" href="a06645.html#l00284">uncbServiceIdentification()</a>, <a class="el" href="a06645.html#l00058">uNetRegistrationBroadcast()</a>, and <a class="el" href="a06645.html#l00100">uNetUnregistrationBroadcast()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a63" doxytag="NLNET::AppIdDeadConnection" ></a><p>
+<table class="mdTable" 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#a13">uint64</a> <a class="el" href="a05379.html#a63">NLNET::AppIdDeadConnection</a> = 0xDEAD<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00042">42</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00172">uncbConnection()</a>, <a class="el" href="a06645.html#l00179">uncbDisconnection()</a>, <a class="el" href="a06645.html#l00406">uncbMsgProcessing()</a>, <a class="el" href="a06645.html#l00284">uncbServiceIdentification()</a>, and <a class="el" href="a06645.html#l00100">uNetUnregistrationBroadcast()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a60" doxytag="NLNET::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="a04558.html#a7">uint8</a> <a class="el" href="a05379.html#a60">NLNET::buffer</a>[10000]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06641.html#l00236">236</a> of file <a class="el" href="a06641.html">udp_sim_sock.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a59" doxytag="NLNET::BufferizedInPackets" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> queue&lt;<a class="el" href="a02300.html">CBufferizedOutPacket</a>*&gt; <a class="el" href="a05379.html#a59">NLNET::BufferizedInPackets</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06641.html#l00093">93</a> of file <a class="el" href="a06641.html">udp_sim_sock.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00238">NLNET::CUdpSimSock::dataAvailable()</a>, and <a class="el" href="a06641.html#l00269">NLNET::CUdpSimSock::receive()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a58" doxytag="NLNET::BufferizedOutPackets" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> queue&lt;<a class="el" href="a02300.html">CBufferizedOutPacket</a>*&gt; <a class="el" href="a05379.html#a58">NLNET::BufferizedOutPackets</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06641.html#l00092">92</a> of file <a class="el" href="a06641.html">udp_sim_sock.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06641.html#l00115">NLNET::CUdpSimSock::sendUDP()</a>, and <a class="el" href="a06641.html#l00171">NLNET::CUdpSimSock::updateBufferizedPackets()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a57" doxytag="NLNET::builtinServiceCallbacks" ></a><p>
+<table class="mdTable" 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="a03917.html">TUnifiedCallbackItem</a> <a class="el" href="a05379.html#a57">NLNET::builtinServiceCallbacks</a>[]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"R_SH_ID"</span>, <a class="code" href="a05379.html#a176">cbReceiveShardId</a> },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06364.html#l00266">266</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="NLNET::CallbackArray" ></a><p>
+<table class="mdTable" 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="a03917.html">TUnifiedCallbackItem</a> <a class="el" href="a05379.html#a6">NLNET::CallbackArray</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"INFO"</span>, cbInfo },
+ { <span class="stringliteral">"GET_VIEW"</span>, cbServGetView },
+ { <span class="stringliteral">"STOPS"</span>, cbStopService },
+ { <span class="stringliteral">"EXEC_COMMAND"</span>, cbExecCommand },
+ { <span class="stringliteral">"ADMIN_PING"</span>, cbAdminPing },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06580.html#l00316">316</a> of file <a class="el" href="a06580.html">transport_class.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06580.html#l00330">NLNET::CTransportClass::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a12" doxytag="NLNET::cbnbMessageAssociationArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a12">NLNET::cbnbMessageAssociationArray</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"AA"</span>, <a class="code" href="a05379.html#a129">cbnbMessageAskAssociations</a> },
+ { <span class="stringliteral">"RA"</span>, <a class="code" href="a05379.html#a128">cbnbMessageRecvAssociations</a> },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05526.html#l00117">117</a> of file <a class="el" href="a05526.html">callback_net_base.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05526.html#l00148">NLNET::CCallbackNetBase::CCallbackNetBase()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a31" doxytag="NLNET::ClientCallbackArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a31">NLNET::ClientCallbackArray</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"SV"</span>, <a class="code" href="a05379.html#a146">cbShardValidation</a> },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05962.html#l00239">239</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a11" doxytag="NLNET::ClientMessageAssociationArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a11">NLNET::ClientMessageAssociationArray</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"RAA"</span>, cbcMessageRecvAllAssociations },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05524.html#l00050">50</a> of file <a class="el" href="a05524.html">callback_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05524.html#l00059">NLNET::CCallbackClient::CCallbackClient()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a51" doxytag="NLNET::commandDisplayer" ></a><p>
+<table class="mdTable" 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="a02985.html">CNetDisplayer</a> <a class="el" href="a05379.html#a51">NLNET::commandDisplayer</a>(false)<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a52" doxytag="NLNET::CompilationDate" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a52">NLNET::CompilationDate</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00132">132</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a55" doxytag="NLNET::CompilationMode" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a55">NLNET::CompilationMode</a> = "???"
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00146">146</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l01454">NLMISC_COMMAND()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a14" doxytag="NLNET::DefaultFrom" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a14">NLNET::DefaultFrom</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05670.html#l00040">40</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05670.html#l00128">sendEmail()</a>, and <a class="el" href="a05670.html#l00349">setDefaultEmailParams()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a13" doxytag="NLNET::DefaultSMTPServer" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a13">NLNET::DefaultSMTPServer</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05670.html#l00040">40</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05670.html#l00128">sendEmail()</a>, and <a class="el" href="a05670.html#l00349">setDefaultEmailParams()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a15" doxytag="NLNET::DefaultTo" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a15">NLNET::DefaultTo</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05670.html#l00040">40</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05670.html#l00128">sendEmail()</a>, and <a class="el" href="a05670.html#l00349">setDefaultEmailParams()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a24" doxytag="NLNET::DefaultUserPriv" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a24">NLNET::DefaultUserPriv</a> = ""<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00058">58</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00264">cfcbDefaultUserPriv()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a25" doxytag="NLNET::DisconnectClientCallback" ></a><p>
+<table class="mdTable" 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="a05379.html#a85">TDisconnectClientCallback</a> <a class="el" href="a05379.html#a25">NLNET::DisconnectClientCallback</a> = NULL<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00060">60</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00142">cbWSDisconnectClient()</a>, and <a class="el" href="a05962.html#l00353">NLNET::CLoginServer::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a47" doxytag="NLNET::EmptyCallbackArray" ></a><p>
+<table class="mdTable" 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="a03917.html">TUnifiedCallbackItem</a> <a class="el" href="a05379.html#a47">NLNET::EmptyCallbackArray</a> = { { "", NULL } }
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00112">112</a> of file <a class="el" href="a06364.html">service.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a48" doxytag="NLNET::ExitSignalAsked" ></a><p>
+<table class="mdTable" 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#a14">sint</a> <a class="el" href="a05379.html#a48">NLNET::ExitSignalAsked</a> = 0<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00117">117</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l01333">NLNET::IService::exit()</a>, <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>, <a class="el" href="a06364.html#l01414">NLMISC_COMMAND()</a>, <a class="el" href="a06364.html#l01520">NLMISC_DYNVARIABLE()</a>, and <a class="el" href="a06364.html#l00164">sigHandler()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a50" doxytag="NLNET::fd" ></a><p>
+<table class="mdTable" 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="a02525.html">CFileDisplayer</a> <a class="el" href="a05379.html#a50">NLNET::fd</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00038">38</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a19" doxytag="NLNET::FESCallbackArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a19">NLNET::FESCallbackArray</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"SV"</span>, <a class="code" href="a05379.html#a141">cbShardValidate</a> },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05958.html#l00058">58</a> of file <a class="el" href="a05958.html">login_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05958.html#l00063">NLNET::CLoginClient::connectToShard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a71" doxytag="NLNET::GetClientUniversalTime" ></a><p>
+<table class="mdTable" 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="a05379.html#a71">NLNET::GetClientUniversalTime</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00293">293</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06650.html#l00296">cbClientGetUniversalTime()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a72" doxytag="NLNET::GetClientUniversalTimeUniTime" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> TTime <a class="el" href="a05379.html#a72">NLNET::GetClientUniversalTimeUniTime</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00294">294</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06650.html#l00296">cbClientGetUniversalTime()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a67" doxytag="NLNET::GetUniversalTime" ></a><p>
+<table class="mdTable" 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="a05379.html#a67">NLNET::GetUniversalTime</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00134">134</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06650.html#l00139">cbGetUniversalTime()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a68" doxytag="NLNET::GetUniversalTimeSecondsSince1970" ></a><p>
+<table class="mdTable" 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="a05379.html#a68">NLNET::GetUniversalTimeSecondsSince1970</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00135">135</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06650.html#l00139">cbGetUniversalTime()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a69" doxytag="NLNET::GetUniversalTimeUniTime" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> TTime <a class="el" href="a05379.html#a69">NLNET::GetUniversalTimeUniTime</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06650.html#l00136">136</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06650.html#l00139">cbGetUniversalTime()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="NLNET::GraphUpdates" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt; <a class="el" href="a02601.html">CGraphUpdate</a> &gt; <a class="el" href="a05379.html#a2">NLNET::GraphUpdates</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00086">86</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00875">NLMISC_COMMAND()</a>, <a class="el" href="a05391.html#l00797">setInformations()</a>, and <a class="el" href="a05391.html#l00648">updateAdmin()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a75" doxytag="NLNET::InvalidSockId" ></a><p>
+<table class="mdTable" 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="a02303.html">TSockId</a> <a class="el" href="a05379.html#a75">NLNET::InvalidSockId</a> = (<a class="el" href="a02303.html">TSockId</a>) NULL<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00044">44</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a53" doxytag="NLNET::LaunchingDate" ></a><p>
+<table class="mdTable" 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="a05379.html#a53">NLNET::LaunchingDate</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00133">133</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>, and <a class="el" href="a06364.html#l01370">NLMISC_DYNVARIABLE()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a22" doxytag="NLNET::ListenAddr" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a22">NLNET::ListenAddr</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00054">54</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00100">cbWSChooseShard()</a>, <a class="el" href="a05962.html#l00467">NLMISC_DYNVARIABLE()</a>, and <a class="el" href="a05962.html#l00244">setListenAddress()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a32" doxytag="NLNET::LockedSubMessageError" ></a><p>
+<table class="mdTable" 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 char * <a class="el" href="a05379.html#a32">NLNET::LockedSubMessageError</a> = "a sub message is forbidden"
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06026.html#l00041">41</a> of file <a class="el" href="a06026.html">message.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06026.html#l00398">NLNET::CMessage::clear()</a>, <a class="el" href="a06027.html#l00198">NLNET::CMessage::invert()</a>, and <a class="el" href="a06026.html#l00118">NLNET::CMessage::operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a42" doxytag="NLNET::LOG_CBINDEX" ></a><p>
+<table class="mdTable" 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#a8">sint16</a> <a class="el" href="a05379.html#a42">NLNET::LOG_CBINDEX</a> = 0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06094.html#l00042">42</a> of file <a class="el" href="a06094.html">net_displayer.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a26" doxytag="NLNET::ModeTcp" ></a><p>
+<table class="mdTable" 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="a05379.html#a26">NLNET::ModeTcp</a> = 0<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00063">63</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00181">cbShardValidation()</a>, <a class="el" href="a05962.html#l00142">cbWSDisconnectClient()</a>, <a class="el" href="a05962.html#l00413">NLNET::CLoginServer::clientDisconnected()</a>, <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>, <a class="el" href="a05962.html#l00431">NLMISC_COMMAND()</a>, and <a class="el" href="a05962.html#l00244">setListenAddress()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a56" doxytag="NLNET::MyTAT" ></a><p>
+<table class="mdTable" 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="a03537.html">CTimeoutAssertionThread</a> <a class="el" href="a05379.html#a56">NLNET::MyTAT</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00154">154</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>, and <a class="el" href="a06364.html#l00155">UpdateAssertionThreadTimeoutCB()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a41" doxytag="NLNET::NamingClientCallbackArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a41">NLNET::NamingClientCallbackArray</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"RG"</span>, cbRegister },
+ { <span class="stringliteral">"QP"</span>, cbQueryPort },
+
+ { <span class="stringliteral">"RGB"</span>, <a class="code" href="a05379.html#a161">cbRegisterBroadcast</a> },
+ { <span class="stringliteral">"UNB"</span>, <a class="code" href="a05379.html#a162">cbUnregisterBroadcast</a> }
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06089.html#l00230">230</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00239">NLNET::CNamingClient::connect()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="NLNET::NbClientReceiveTask" ></a><p>
+<table class="mdTable" 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="a05379.html#a7">NLNET::NbClientReceiveTask</a> = 0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00047">47</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00437">NLNET::CClientReceiveTask::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="NLNET::NbNetworkTask" ></a><p>
+<table class="mdTable" 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="a05379.html#a8">NLNET::NbNetworkTask</a> = 0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05510.html#l00036">36</a> of file <a class="el" href="a05510.html">buf_net_base.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00987">NLNET::CServerReceiveTask::run()</a>, <a class="el" href="a05512.html#l00779">NLNET::CListenTask::run()</a>, and <a class="el" href="a05506.html#l00437">NLNET::CClientReceiveTask::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a9" doxytag="NLNET::NbServerListenTask" ></a><p>
+<table class="mdTable" 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="a05379.html#a9">NLNET::NbServerListenTask</a> = 0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05512.html#l00048">48</a> of file <a class="el" href="a05512.html">buf_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00779">NLNET::CListenTask::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a10" doxytag="NLNET::NbServerReceiveTask" ></a><p>
+<table class="mdTable" 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="a05379.html#a10">NLNET::NbServerReceiveTask</a> = 0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05512.html#l00049">49</a> of file <a class="el" href="a05512.html">buf_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00987">NLNET::CServerReceiveTask::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a54" doxytag="NLNET::NbUserUpdate" ></a><p>
+<table class="mdTable" 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="a05379.html#a54">NLNET::NbUserUpdate</a> = 0<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00135">135</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a46" doxytag="NLNET::NegFiltersNames" ></a><p>
+<table class="mdTable" 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 char* <a class="el" href="a05379.html#a46">NLNET::NegFiltersNames</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <span class="stringliteral">"NegFiltersDebug"</span>,
+ <span class="stringliteral">"NegFiltersInfo"</span>,
+ <span class="stringliteral">"NegFiltersWarning"</span>,
+ <span class="stringliteral">"NegFiltersAssert"</span>,
+ <span class="stringliteral">"NegFiltersError"</span>,
+ 0
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06364.html#l00097">97</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a43" doxytag="NLNET::NetLog" ></a><p>
+<table class="mdTable" 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="a02986.html">CNetLog</a> <a class="el" href="a05379.html#a43">NLNET::NetLog</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06096.html#l00056">56</a> of file <a class="el" href="a06096.html">net_log.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a29" doxytag="NLNET::NewClientCallback" ></a><p>
+<table class="mdTable" 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="a05379.html#a84">TNewClientCallback</a> <a class="el" href="a05379.html#a29">NLNET::NewClientCallback</a> = NULL
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00071">71</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00181">cbShardValidation()</a>, and <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a96" doxytag="NLNET::PacsCallbackArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a96">NLNET::PacsCallbackArray</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"PACS_ASW"</span>, cbPacsAnswer }
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06138.html#l00572">572</a> of file <a class="el" href="a06138.html">pacs_client.h</a>.
+<p>
+Referenced by <a class="el" href="a06138.html#l00577">NLNET::CPacsClient::connect()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a20" doxytag="NLNET::PendingUsers" ></a><p>
+<table class="mdTable" 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="a03889.html">list</a>&lt;<a class="el" href="a03077.html">CPendingUser</a>&gt; <a class="el" href="a05379.html#a20">NLNET::PendingUsers</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00051">51</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00100">cbWSChooseShard()</a>, <a class="el" href="a05962.html#l00452">NLMISC_COMMAND()</a>, and <a class="el" href="a05962.html#l00079">refreshPendingList()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a39" doxytag="NLNET::QueryPort" ></a><p>
+<table class="mdTable" 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="a05379.html#a39">NLNET::QueryPort</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00106">106</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00109">cbQueryPort()</a>, and <a class="el" href="a06089.html#l00411">NLNET::CNamingClient::queryServicePort()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a40" doxytag="NLNET::QueryPortPort" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a05379.html#a40">NLNET::QueryPortPort</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00107">107</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00109">cbQueryPort()</a>, and <a class="el" href="a06089.html#l00411">NLNET::CNamingClient::queryServicePort()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a38" doxytag="NLNET::Reason" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a38">NLNET::Reason</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00083">83</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00085">cbRegister()</a>, and <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a35" doxytag="NLNET::Registered" ></a><p>
+<table class="mdTable" 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="a05379.html#a35">NLNET::Registered</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00080">80</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00085">cbRegister()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, and <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a37" doxytag="NLNET::RegisteredSID" ></a><p>
+<table class="mdTable" 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="a05379.html#a93">TServiceId</a>* <a class="el" href="a05379.html#a37">NLNET::RegisteredSID</a> = NULL<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00082">82</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00085">cbRegister()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, and <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a36" doxytag="NLNET::RegisteredSuccess" ></a><p>
+<table class="mdTable" 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="a05379.html#a36">NLNET::RegisteredSuccess</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06089.html#l00081">81</a> of file <a class="el" href="a06089.html">naming_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06089.html#l00085">cbRegister()</a>, <a class="el" href="a06089.html#l00302">NLNET::CNamingClient::registerService()</a>, and <a class="el" href="a06089.html#l00340">NLNET::CNamingClient::registerServiceWithSId()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a0" doxytag="NLNET::RemoteClientCallback" ></a><p>
+<table class="mdTable" 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="a05379.html#a73">TRemoteClientCallback</a> <a class="el" href="a05379.html#a0">NLNET::RemoteClientCallback</a> = 0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00082">82</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00386">serviceGetView()</a>, and <a class="el" href="a05391.html#l00211">setRemoteClientCallback()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="NLNET::Requests" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> vector&lt;<a class="el" href="a03327.html">CRequest</a>&gt; <a class="el" href="a05379.html#a4">NLNET::Requests</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00091">91</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00275">addRequestAnswer()</a>, <a class="el" href="a05391.html#l00221">addRequestWaitingNb()</a>, <a class="el" href="a05391.html#l00112">cbServGetView()</a>, <a class="el" href="a05391.html#l00310">cleanRequest()</a>, <a class="el" href="a05391.html#l00298">emptyRequest()</a>, and <a class="el" href="a05391.html#l00237">subRequestWaitingNb()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="NLNET::RequestTimeout" ></a><p>
+<table class="mdTable" 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="a05379.html#a5">NLNET::RequestTimeout</a> = 4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05391.html#l00093">93</a> of file <a class="el" href="a05391.html">admin.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05391.html#l00310">cleanRequest()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a21" doxytag="NLNET::Server" ></a><p>
+<table class="mdTable" 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="a02307.html">CCallbackServer</a>* <a class="el" href="a05379.html#a21">NLNET::Server</a> = NULL<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00053">53</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00181">cbShardValidation()</a>, <a class="el" href="a05962.html#l00142">cbWSDisconnectClient()</a>, <a class="el" href="a05962.html#l00230">ClientConnection()</a>, <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>, <a class="el" href="a05962.html#l00467">NLMISC_DYNVARIABLE()</a>, and <a class="el" href="a05962.html#l00244">setListenAddress()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a70" doxytag="NLNET::ServerTimeServiceCallbackArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a70">NLNET::ServerTimeServiceCallbackArray</a>[]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"AUT"</span>, cbServerAskUniversalTime },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06650.html#l00275">275</a> of file <a class="el" href="a06650.html">unitime.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06650.html#l00280">NLNET::_CUniTime::installServer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a17" doxytag="NLNET::ShardValidate" ></a><p>
+<table class="mdTable" 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="a05379.html#a17">NLNET::ShardValidate</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05958.html#l00046">46</a> of file <a class="el" href="a05958.html">login_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05958.html#l00048">cbShardValidate()</a>, and <a class="el" href="a05958.html#l00063">NLNET::CLoginClient::connectToShard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a18" doxytag="NLNET::ShardValidateReason" ></a><p>
+<table class="mdTable" 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 <a class="el" href="a05379.html#a18">NLNET::ShardValidateReason</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05958.html#l00047">47</a> of file <a class="el" href="a05958.html">login_client.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05958.html#l00048">cbShardValidate()</a>, and <a class="el" href="a05958.html#l00063">NLNET::CLoginClient::connectToShard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a44" doxytag="NLNET::Signal" ></a><p>
+<table class="mdTable" 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#a14">sint</a> <a class="el" href="a05379.html#a44">NLNET::Signal</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre> {
+ SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06364.html#l00088">88</a> of file <a class="el" href="a06364.html">service.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a49" doxytag="NLNET::SignalisedThread" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a05379.html#a49">NLNET::SignalisedThread</a><code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06364.html#l00126">126</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00211">initSignal()</a>, and <a class="el" href="a06364.html#l00164">sigHandler()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a45" doxytag="NLNET::SignalName" ></a><p>
+<table class="mdTable" 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 char* <a class="el" href="a05379.html#a45">NLNET::SignalName</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ <span class="stringliteral">"SIGABRT"</span>, <span class="stringliteral">"SIGFPE"</span>, <span class="stringliteral">"SIGILL"</span>, <span class="stringliteral">"SIGINT"</span>, <span class="stringliteral">"SIGSEGV"</span>, <span class="stringliteral">"SIGTERM"</span>
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06364.html#l00092">92</a> of file <a class="el" href="a06364.html">service.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06364.html#l00164">sigHandler()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a16" doxytag="NLNET::tbl" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char <a class="el" href="a05379.html#a16">NLNET::tbl</a>[65]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre> {
+ <span class="charliteral">'A'</span>, <span class="charliteral">'B'</span>, <span class="charliteral">'C'</span>, <span class="charliteral">'D'</span>, <span class="charliteral">'E'</span>, <span class="charliteral">'F'</span>, <span class="charliteral">'G'</span>, <span class="charliteral">'H'</span>,
+ <span class="charliteral">'I'</span>, <span class="charliteral">'J'</span>, <span class="charliteral">'K'</span>, <span class="charliteral">'L'</span>, <span class="charliteral">'M'</span>, <span class="charliteral">'N'</span>, <span class="charliteral">'O'</span>, <span class="charliteral">'P'</span>,
+ <span class="charliteral">'Q'</span>, <span class="charliteral">'R'</span>, <span class="charliteral">'S'</span>, <span class="charliteral">'T'</span>, <span class="charliteral">'U'</span>, <span class="charliteral">'V'</span>, <span class="charliteral">'W'</span>, <span class="charliteral">'X'</span>,
+ <span class="charliteral">'Y'</span>, <span class="charliteral">'Z'</span>, <span class="charliteral">'a'</span>, <span class="charliteral">'b'</span>, <span class="charliteral">'c'</span>, <span class="charliteral">'d'</span>, <span class="charliteral">'e'</span>, <span class="charliteral">'f'</span>,
+ <span class="charliteral">'g'</span>, <span class="charliteral">'h'</span>, <span class="charliteral">'i'</span>, <span class="charliteral">'j'</span>, <span class="charliteral">'k'</span>, <span class="charliteral">'l'</span>, <span class="charliteral">'m'</span>, <span class="charliteral">'n'</span>,
+ <span class="charliteral">'o'</span>, <span class="charliteral">'p'</span>, <span class="charliteral">'q'</span>, <span class="charliteral">'r'</span>, <span class="charliteral">'s'</span>, <span class="charliteral">'t'</span>, <span class="charliteral">'u'</span>, <span class="charliteral">'v'</span>,
+ <span class="charliteral">'w'</span>, <span class="charliteral">'x'</span>, <span class="charliteral">'y'</span>, <span class="charliteral">'z'</span>, <span class="charliteral">'0'</span>, <span class="charliteral">'1'</span>, <span class="charliteral">'2'</span>, <span class="charliteral">'3'</span>,
+ <span class="charliteral">'4'</span>, <span class="charliteral">'5'</span>, <span class="charliteral">'6'</span>, <span class="charliteral">'7'</span>, <span class="charliteral">'8'</span>, <span class="charliteral">'9'</span>, <span class="charliteral">'+'</span>, <span class="charliteral">'/'</span>,
+ <span class="charliteral">'='</span>
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05670.html#l00043">43</a> of file <a class="el" href="a05670.html">email.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05670.html#l00061">uuencode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a61" doxytag="NLNET::test" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> CLog <a class="el" href="a05379.html#a61">NLNET::test</a>(CLog::LOG_INFO)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="a62" doxytag="NLNET::ThreadCreator" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a05379.html#a62">NLNET::ThreadCreator</a> = 0<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00040">40</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00653">NLNET::CUnifiedNetwork::addService()</a>, <a class="el" href="a06645.html#l00566">NLNET::CUnifiedNetwork::connect()</a>, <a class="el" href="a06645.html#l01335">NLNET::CUnifiedNetwork::getNetBase()</a>, <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>, <a class="el" href="a06645.html#l00599">NLNET::CUnifiedNetwork::release()</a>, <a class="el" href="a06645.html#l01091">NLNET::CUnifiedNetwork::send()</a>, <a class="el" href="a06645.html#l01160">NLNET::CUnifiedNetwork::sendAll()</a>, and <a class="el" href="a06645.html#l00857">NLNET::CUnifiedNetwork::update()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a27" doxytag="NLNET::TimeBeforeEraseCookie" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a05379.html#a27">NLNET::TimeBeforeEraseCookie</a> = 120<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00066">66</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00280">cfcbTimeBeforeEraseCookie()</a>, and <a class="el" href="a05962.html#l00079">refreshPendingList()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a64" doxytag="NLNET::TotalCallbackCalled" ></a><p>
+<table class="mdTable" 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="a05379.html#a64">NLNET::TotalCallbackCalled</a> = 0<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06645.html#l00044">44</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00406">uncbMsgProcessing()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a66" doxytag="NLNET::unServerCbArray" ></a><p>
+<table class="mdTable" 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="a03900.html">TCallbackItem</a> <a class="el" href="a05379.html#a66">NLNET::unServerCbArray</a>[]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"UN_SIDENT"</span>, <a class="code" href="a05379.html#a203">uncbServiceIdentification</a> }
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a06645.html#l00469">469</a> of file <a class="el" href="a06645.html">unified_network.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a28" doxytag="NLNET::UserIdSockAssociations" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> map&lt;<a class="el" href="a04558.html#a11">uint32</a>, <a class="el" href="a02303.html">TSockId</a>&gt; <a class="el" href="a05379.html#a28">NLNET::UserIdSockAssociations</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+contains the correspondance between userid and the sockid
+<p>
+
+<p>
+Definition at line <a class="el" href="a05962.html#l00069">69</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00181">cbShardValidation()</a>, <a class="el" href="a05962.html#l00142">cbWSDisconnectClient()</a>, <a class="el" href="a05962.html#l00413">NLNET::CLoginServer::clientDisconnected()</a>, and <a class="el" href="a05962.html#l00431">NLMISC_COMMAND()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a30" doxytag="NLNET::WSCallbackArray" ></a><p>
+<table class="mdTable" 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="a03917.html">TUnifiedCallbackItem</a> <a class="el" href="a05379.html#a30">NLNET::WSCallbackArray</a>[]<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ { <span class="stringliteral">"CS"</span>, <a class="code" href="a05379.html#a144">cbWSChooseShard</a> },
+ { <span class="stringliteral">"DC"</span>, <a class="code" href="a05379.html#a145">cbWSDisconnectClient</a> },
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="a05962.html#l00169">169</a> of file <a class="el" href="a05962.html">login_server.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00408">NLNET::CLoginServer::connectToWS()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:51:09 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>