aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02295.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02295.html')
-rw-r--r--docs/doxygen/nel/a02295.html2041
1 files changed, 2041 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02295.html b/docs/doxygen/nel/a02295.html
new file mode 100644
index 00000000..b8adaafc
--- /dev/null
+++ b/docs/doxygen/nel/a02295.html
@@ -0,0 +1,2041 @@
+<!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::CBufClient class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLNET::CBufClient Class Reference</h1><code>#include &lt;<a class="el" href="a05507.html">buf_client.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLNET::CBufClient:
+<p><center><img src="a02295.png" usemap="#NLNET::CBufClient_map" border="0" alt=""></center>
+<map name="NLNET::CBufClient_map">
+<area href="a02296.html" alt="NLNET::CBufNetBase" shape="rect" coords="0,0,148,24">
+<area href="a02305.html" alt="NLNET::CCallbackClient" shape="rect" coords="0,112,148,136">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Client class for layer 1<p>
+Active connection with packet scheme and buffering. The provided buffers are sent raw (no endianness conversion). By default, the size time trigger is disabled, the time trigger is set to 20 ms.<p>
+Where do the methods take place: <a class="el" href="a02295.html#NLNET_1_1CBufClienta20">send()</a> -&gt; send buffer -&gt; <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta42">update()</a>, <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta14">flush()</a>, <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta3">bytesUploaded()</a>, <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta30">newBytesUploaded()</a><p>
+<a class="el" href="a02295.html#NLNET_1_1CCallbackClienta31">receive()</a>, &lt;- receive buffer &lt;- receive thread, <a class="el" href="a02295.html#NLNET_1_1CBufClienta5">dataAvailable()</a>, <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta2">bytesDownloaded()</a>, <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta29">newBytesDownloaded()</a> disconnection callback <p>
+<dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00093">93</a> of file <a class="el" href="a05507.html">buf_client.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServerw7">TEventType</a> { <a class="el" href="a02296.html#NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw10">User</a> = 'U',
+<a class="el" href="a02296.html#NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw0">Connection</a> = 'C',
+<a class="el" href="a02296.html#NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw1">Disconnection</a> = 'D'
+ }</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type of incoming events (max 256). <a href="#NLNET_1_1CCallbackServerw7">More...</a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></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="a02295.html#NLNET_1_1CCallbackClienta2">bytesDownloaded</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes downloaded (read or still in the receive buffer) since the latest connection. <a href="#NLNET_1_1CCallbackClienta2"></a><br><br></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="a02295.html#NLNET_1_1CCallbackClienta3">bytesUploaded</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes uploaded (flushed) since the latest connection. <a href="#NLNET_1_1CCallbackClienta3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CBufClienta2">CBufClient</a> (bool nodelay=true, bool replaymode=false)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. Set nodelay to true to disable the Nagle buffering algorithm (see <a class="el" href="a02445.html">CTcpSock</a> documentation). <a href="#NLNET_1_1CBufClienta2"></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="a02295.html#NLNET_1_1CBufClienta3">connect</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;<a class="el" href="a04223.html#a657">addr</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Connects to the specified host. <a href="#NLNET_1_1CBufClienta3"></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="a02295.html#NLNET_1_1CBufClienta4">connected</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CBufClienta5">dataAvailable</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta7">disconnect</a> (bool quick=false)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CBufServera5">displayReceiveQueueStat</a> (<a class="el" href="a02813.html">NLMISC::CLog</a> *log=<a class="el" href="a05378.html#a12">NLMISC::InfoLog</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta11">displaySendQueueStat</a> (<a class="el" href="a02813.html">NLMISC::CLog</a> *log=<a class="el" href="a05378.html#a12">NLMISC::InfoLog</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CBufClienta9">displayThreadStat</a> (<a class="el" href="a02813.html">NLMISC::CLog</a> *log)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta14">flush</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="a02296.html#NLNET_1_1CBufServera9">getReceiveQueueSize</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size of the receive queue (mutexed). <a href="#NLNET_1_1CBufServera9"></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="a02295.html#NLNET_1_1CCallbackClienta19">getSendQueueSize</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02303.html">TSockId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta24">id</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the id of the connection. <a href="#NLNET_1_1CCallbackClienta24"></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="a02296.html#NLNET_1_1CCallbackServera25">maxExpectedBlockSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the max size of the received messages (default: 2^31-1). <a href="#NLNET_1_1CCallbackServera25"></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="a02296.html#NLNET_1_1CCallbackServera26">maxSentBlockSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the max size of the sent messages (default: 2^31-1). <a href="#NLNET_1_1CCallbackServera26"></a><br><br></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="a02295.html#NLNET_1_1CCallbackClienta29">newBytesDownloaded</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes downloaded since the previous call to this method. <a href="#NLNET_1_1CCallbackClienta29"></a><br><br></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="a02295.html#NLNET_1_1CCallbackClienta30">newBytesUploaded</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes uploaded since the previous call to this method. <a href="#NLNET_1_1CCallbackClienta30"></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="a02295.html#NLNET_1_1CCallbackClienta31">receive</a> (<a class="el" href="a02271.html">NLMISC::CMemStream</a> &amp;<a class="el" href="a04223.html#a589">buffer</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta32">remoteAddress</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the address of the remote host. <a href="#NLNET_1_1CCallbackClienta32"></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="a02295.html#NLNET_1_1CBufClienta20">send</a> (const <a class="el" href="a02271.html">NLMISC::CMemStream</a> &amp;<a class="el" href="a04223.html#a589">buffer</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CBufServera22">setDisconnectionCallback</a> (<a class="el" href="a05379.html#a76">TNetCallback</a> cb, void *arg)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets callback for detecting a disconnection (or NULL to disable callback). <a href="#NLNET_1_1CBufServera22"></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="a02296.html#NLNET_1_1CCallbackServera35">setMaxExpectedBlockSize</a> (<a class="el" href="a04558.html#a10">sint32</a> limit)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServera36">setMaxSentBlockSize</a> (<a class="el" href="a04558.html#a10">sint32</a> limit)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta40">setSizeFlushTrigger</a> (<a class="el" href="a04558.html#a10">sint32</a> <a class="el" href="a04223.html#a587">size</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta41">setTimeFlushTrigger</a> (<a class="el" href="a04558.html#a10">sint32</a> ms)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClienta42">update</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update the network (call this method evenly). <a href="#NLNET_1_1CCallbackClienta42"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CBufClienta27">~CBufClient</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLNET_1_1CBufClienta27"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServerb2">argOfDisconnectionCallback</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the argument of the disconnection callback. <a href="#NLNET_1_1CCallbackServerb2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>volatile bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServerb6">dataAvailableFlag</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return _DataAvailable. <a href="#NLNET_1_1CCallbackServerb6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a76">TNetCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServerb7">disconnectionCallback</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the disconnection callback. <a href="#NLNET_1_1CCallbackServerb7"></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="a02296.html#NLNET_1_1CCallbackServerb12">pushMessageIntoReceiveQueue</a> (const <a class="el" href="a04558.html#a7">uint8</a> *<a class="el" href="a04223.html#a589">buffer</a>, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a587">size</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServerb13">pushMessageIntoReceiveQueue</a> (const std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;<a class="el" href="a04223.html#a589">buffer</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Push message into receive queue (mutexed). <a href="#NLNET_1_1CCallbackServerb13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05379.html#a78">CSynchronizedFIFO</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02296.html#NLNET_1_1CCallbackServerb14">receiveQueue</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Access to the receive queue. <a href="#NLNET_1_1CCallbackServerb14"></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="a02296.html#NLNET_1_1CCallbackServerb16">setDataAvailableFlag</a> (bool da)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets _DataAvailable. <a href="#NLNET_1_1CCallbackServerb16"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02991.html">CNonBlockingBufSock</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send buffer and connection. <a href="#NLNET_1_1CCallbackClientp0"></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="a02295.html#NLNET_1_1CCallbackClientp9">_NoDelay</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True when the Nagle algorithm must be disabled (TCP_NODELAY). <a href="#NLNET_1_1CCallbackClientp9"></a><br><br></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="a02295.html#NLNET_1_1CCallbackClientp11">_PrevBytesDownloaded</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Previous number of bytes downloaded. <a href="#NLNET_1_1CCallbackClientp11"></a><br><br></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="a02295.html#NLNET_1_1CCallbackClientp12">_PrevBytesUploaded</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Previous number of bytes uploaded. <a href="#NLNET_1_1CCallbackClientp12"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02352.html">CClientReceiveTask</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CBufClientr0">_RecvTask</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Receive task. <a href="#NLNET_1_1CBufClientr0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03880.html">NLMISC::IThread</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Receive thread. <a href="#NLNET_1_1CBufClientr1"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Friends</h2></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#NLNET_1_1CCallbackClientn0">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="a02296.html#NLNET_1_1CCallbackServern4">NLNET::CBufSock</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLNET_1_1CCallbackServerw7" doxytag="NLNET::CBufClient::TEventType" ></a><p>
+<table class="mdTable" 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="a02296.html#NLNET_1_1CCallbackServerw7">NLNET::CBufNetBase::TEventType</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Type of incoming events (max 256).
+<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="NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw10" doxytag="User" ></a>User</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw0" doxytag="Connection" ></a>Connection</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw1" doxytag="Disconnection" ></a>Disconnection</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00079">79</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+<div class="fragment"><pre>00079 { <a class="code" href="a02296.html#NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw10">User</a> = <span class="charliteral">'U'</span>, <a class="code" href="a02296.html#NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw0">Connection</a> = <span class="charliteral">'C'</span>, <a class="code" href="a02296.html#NLNET_1_1CCallbackServerw7NLNET_1_1CCallbackServerw1">Disconnection</a> = <span class="charliteral">'D'</span> };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLNET_1_1CBufClienta2" doxytag="NLNET::CBufClient::CBufClient" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CBufClient::CBufClient </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>nodelay</em> = true, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>replaymode</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>
+Constructor. Set nodelay to true to disable the Nagle buffering algorithm (see <a class="el" href="a02445.html">CTcpSock</a> documentation).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00057">57</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05507.html#l00228">_RecvTask</a>, <a class="el" href="a05507.html#l00203">CClientReceiveTask</a>, and <a class="el" href="a05515.html#l00040">nlnettrace</a>.
+<p>
+<div class="fragment"><pre>00057 :
+00058 <a class="code" href="a02296.html#NLNET_1_1CBufNetBaseb1">CBufNetBase</a>(),
+00059 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp9">_NoDelay</a>( nodelay ),
+00060 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp11">_PrevBytesDownloaded</a>( 0 ),
+00061 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp12">_PrevBytesUploaded</a>( 0 ),
+00062 <a class="code" href="a02295.html#NLNET_1_1CBufClientr0">_RecvTask</a>( NULL ),
+00063 <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a>( NULL )
+00064 <span class="comment">/*_PrevBytesReceived( 0 ),</span>
+00065 <span class="comment"> _PrevBytesSent( 0 )*/</span>
+00066 {
+00067 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CBufClient::CBufClient"</span> ); <span class="comment">// don't define a global object</span>
+00068
+00069 <span class="keywordflow">if</span> ( replaymode )
+00070 {
+00071 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a> = <span class="keyword">new</span> CNonBlockingBufSock( <span class="keyword">new</span> CDummyTcpSock() ); <span class="comment">// CHANGED: non-blocking client connection</span>
+00072 }
+00073 <span class="keywordflow">else</span>
+00074 {
+00075 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a> = <span class="keyword">new</span> CNonBlockingBufSock(); <span class="comment">// CHANGED: non-blocking client connection</span>
+00076 <a class="code" href="a02295.html#NLNET_1_1CBufClientr0">_RecvTask</a> = <span class="keyword">new</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientn0">CClientReceiveTask</a>( <span class="keyword">this</span>, _BufSock );
+00077 }
+00078 }
+
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClienta27" doxytag="NLNET::CBufClient::~CBufClient" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CBufClient::~<a class="el" href="a02295.html">CBufClient</a> </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> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Destructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00397">397</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05507.html#l00228">_RecvTask</a>, <a class="el" href="a05507.html#l00231">_RecvThread</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">NLNET::CSock::connected()</a>, <a class="el" href="a05515.html#l00237">NLNET::CBufSock::connectedState()</a>, <a class="el" href="a05506.html#l00318">disconnect()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05515.html#l00040">nlnettrace</a>, <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>, and <a class="el" href="a03880.html#NLMISC_1_1IThreada6">NLMISC::IThread::wait()</a>.
+<p>
+<div class="fragment"><pre>00398 {
+00399 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CBufClient::~CBufClient"</span> );
+00400
+00401 <span class="comment">// Disconnect if not done</span>
+00402 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;connected() )
+00403 {
+00404 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;connectedState() );
+00405
+00406 <a class="code" href="a02295.html#NLNET_1_1CCallbackClienta7">disconnect</a>( <span class="keyword">true</span> );
+00407 }
+00408
+00409 <span class="comment">// Clean thread termination</span>
+00410 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a> != NULL )
+00411 {
+00412 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL1: Waiting for the end of the receive thread..."</span> );
+00413 <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a>-&gt;<a class="code" href="a03880.html#NLMISC_1_1IThreada6">wait</a>();
+00414 }
+00415
+00416 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CBufClientr0">_RecvTask</a> != NULL )
+00417 <span class="keyword">delete</span> <a class="code" href="a02295.html#NLNET_1_1CBufClientr0">_RecvTask</a>;
+00418
+00419 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a> != NULL )
+00420 <span class="keyword">delete</span> <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a>;
+00421
+00422 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a> != NULL )
+00423 <span class="keyword">delete</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>;
+00424
+00425 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"Exiting CBufClient::~CBufClient"</span> );
+00426 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CCallbackServerb2" doxytag="NLNET::CBufClient::argOfDisconnectionCallback" ></a><p>
+<table class="mdTable" 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::CBufNetBase::argOfDisconnectionCallback </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the argument of the disconnection callback.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00160">160</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00220">NLNET::CBufNetBase::_DisconnectionCbArg</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, and <a class="el" href="a05506.html#l00140">dataAvailable()</a>.
+<p>
+<div class="fragment"><pre>00160 { <span class="keywordflow">return</span> _DisconnectionCbArg; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta2" doxytag="NLNET::CBufClient::bytesDownloaded" ></a><p>
+<table class="mdTable" 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> NLNET::CBufClient::bytesDownloaded </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of bytes downloaded (read or still in the receive buffer) since the latest connection.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00172">172</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a06405.html#l00249">NLNET::CSock::bytesReceived()</a>, <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00361">newBytesDownloaded()</a>.
+<p>
+<div class="fragment"><pre>00172 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;bytesReceived(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta3" doxytag="NLNET::CBufClient::bytesUploaded" ></a><p>
+<table class="mdTable" 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> NLNET::CBufClient::bytesUploaded </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of bytes uploaded (flushed) since the latest connection.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00175">175</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a06405.html#l00252">NLNET::CSock::bytesSent()</a>, <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>, and <a class="el" href="a05981.html#l00102">uint64</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00370">newBytesUploaded()</a>.
+<p>
+<div class="fragment"><pre>00175 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;bytesSent(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClienta3" doxytag="NLNET::CBufClient::connect" ></a><p>
+<table class="mdTable" 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::CBufClient::connect </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="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>
+Connects to the specified host.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClienta5">NLNET::CCallbackClient</a>.
+<p>
+Definition at line <a class="el" href="a05506.html#l00085">85</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05507.html#l00209">_NoDelay</a>, <a class="el" href="a05507.html#l00212">_PrevBytesDownloaded</a>, <a class="el" href="a05507.html#l00215">_PrevBytesUploaded</a>, <a class="el" href="a05507.html#l00228">_RecvTask</a>, <a class="el" href="a05507.html#l00231">_RecvThread</a>, <a class="el" href="a05646.html#l01127">addr</a>, <a class="el" href="a05514.html#l00295">NLNET::CBufSock::connect()</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">NLNET::CSock::connected()</a>, <a class="el" href="a05511.html#l00135">NLNET::CBufNetBase::maxExpectedBlockSize()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05515.html#l00040">nlnettrace</a>, <a class="el" href="a05515.html#l00289">NLNET::CNonBlockingBufSock::setMaxExpectedBlockSize()</a>, <a class="el" href="a05515.html#l00286">NLNET::CNonBlockingBufSock::setNonBlocking()</a>, <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>, and <a class="el" href="a03880.html#NLMISC_1_1IThreada4">NLMISC::IThread::start()</a>.
+<p>
+<div class="fragment"><pre>00086 {
+00087 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CBufClient::connect"</span> );
+00088 <a class="code" href="a04199.html#a6">nlassert</a>( ! <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;connected() );
+00089 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;setMaxExpectedBlockSize( <a class="code" href="a02296.html#NLNET_1_1CCallbackServera25">maxExpectedBlockSize</a>() );
+00090 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;connect( addr, _NoDelay, <span class="keyword">true</span> );
+00091 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;setNonBlocking(); <span class="comment">// ADDED: non-blocking client connection</span>
+00092 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp11">_PrevBytesDownloaded</a> = 0;
+00093 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp12">_PrevBytesUploaded</a> = 0;
+00094 <span class="comment">/*_PrevBytesReceived = 0;</span>
+00095 <span class="comment"> _PrevBytesSent = 0;*/</span>
+00096
+00097 <span class="comment">// Allow reconnection</span>
+00098 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a> != NULL )
+00099 {
+00100 <span class="keyword">delete</span> <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a>;
+00101 }
+00102
+00103 <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a> = IThread::create( _RecvTask );
+00104 <a class="code" href="a02295.html#NLNET_1_1CBufClientr1">_RecvThread</a>-&gt;<a class="code" href="a03880.html#NLMISC_1_1IThreada4">start</a>();
+00105 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClienta4" doxytag="NLNET::CBufClient::connected" ></a><p>
+<table class="mdTable" 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 NLNET::CBufClient::connected </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if the connection is still connected (changed when a disconnection event has reached the front of the receive queue, just before calling the disconnection callback if there is one)
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClienta6">NLNET::CCallbackClient</a>.
+<p>
+Definition at line <a class="el" href="a05507.html#l00166">166</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, and <a class="el" href="a05515.html#l00237">NLNET::CBufSock::connectedState()</a>.
+<p>
+<div class="fragment"><pre>00166 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;connectedState(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClienta5" doxytag="NLNET::CBufClient::dataAvailable" ></a><p>
+<table class="mdTable" 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 NLNET::CBufClient::dataAvailable </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>
+Checks if there is some data to receive. Returns false if the receive queue is empty. This is where the connection/disconnection callbacks can be called
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClientd0">NLNET::CCallbackClient</a>.
+<p>
+Definition at line <a class="el" href="a05506.html#l00140">140</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05511.html#l00160">NLNET::CBufNetBase::argOfDisconnectionCallback()</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>, <a class="el" href="a05511.html#l00206">NLNET::CBufNetBase::dataAvailableFlag()</a>, <a class="el" href="a05511.html#l00157">NLNET::CBufNetBase::disconnectionCallback()</a>, <a class="el" href="a05507.html#l00198">id()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a05511.html#l00154">NLNET::CBufNetBase::receiveQueue()</a>, <a class="el" href="a05515.html#l00234">NLNET::CBufSock::setConnectedState()</a>, <a class="el" href="a05511.html#l00203">NLNET::CBufNetBase::setDataAvailableFlag()</a>, <a class="el" href="a05586.html#l00107">NLMISC::stringFromVector()</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>00141 {
+00142 <span class="comment">// slow down the layer H_AUTO (CBufClient_dataAvailable);</span>
+00143 {
+00144 <span class="comment">/* If no data available, enter the 'while' loop and return false (1 volatile test)</span>
+00145 <span class="comment"> * If there are user data available, enter the 'while' and return true immediately (1 volatile test + 1 short locking)</span>
+00146 <span class="comment"> * If there is a disconnection event (rare), call the callback and loop</span>
+00147 <span class="comment"> */</span>
+00148 <span class="keywordflow">while</span> ( <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb6">dataAvailableFlag</a>() )
+00149 {
+00150 <span class="comment">// Because _DataAvailable is true, the receive queue is not empty at this point</span>
+00151 <a class="code" href="a04558.html#a7">uint8</a> val;
+00152 {
+00153 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;<a class="code" href="a02296.html#NLNET_1_1CCallbackServerb14">receiveQueue</a>() );
+00154 val = recvfifo.value().frontLast ();
+00155 }
+00156
+00157 <span class="comment">// Test if it the next block is a system event</span>
+00158 <span class="keywordflow">switch</span> ( val )
+00159 {
+00160
+00161 <span class="comment">// Normal message available</span>
+00162 <span class="keywordflow">case</span> CBufNetBase::User:
+00163 <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// return immediatly, do not extract the message</span>
+00164
+00165 <span class="comment">// Process disconnection event</span>
+00166 <span class="keywordflow">case</span> CBufNetBase::Disconnection:
+00167
+00168 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL1: Disconnection event"</span> );
+00169 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;setConnectedState( <span class="keyword">false</span> );
+00170
+00171 <span class="comment">// Call callback if needed</span>
+00172 <span class="keywordflow">if</span> ( <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb7">disconnectionCallback</a>() != NULL )
+00173 {
+00174 <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb7">disconnectionCallback</a>()( <a class="code" href="a02295.html#NLNET_1_1CCallbackClienta24">id</a>(), <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb2">argOfDisconnectionCallback</a>() );
+00175 }
+00176
+00177 <span class="comment">// Unlike the server version, we do not delete the CBufSock object here,</span>
+00178 <span class="comment">// it will be done in the destructor of CBufClient</span>
+00179 <span class="keywordflow">break</span>;
+00180
+00181 <span class="keywordflow">default</span>: <span class="comment">// should not occur</span>
+00182 {
+00183 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;<a class="code" href="a02296.html#NLNET_1_1CCallbackServerb14">receiveQueue</a>() );
+00184 vector&lt;uint8&gt; <a class="code" href="a04223.html#a589">buffer</a>;
+00185 recvfifo.value().front (buffer);
+00186 <a class="code" href="a04199.html#a1">nlinfo</a>( <span class="stringliteral">"LNETL1: Invalid block type: %hu (should be = %hu)"</span>, (<a class="code" href="a04558.html#a9">uint16</a>)(buffer[<a class="code" href="a04223.html#a589">buffer</a>.size()-1]), (<a class="code" href="a04558.html#a9">uint16</a>)val );
+00187 <a class="code" href="a04199.html#a1">nlinfo</a>( <span class="stringliteral">"LNETL1: Buffer (%d B): [%s]"</span>, <a class="code" href="a04223.html#a589">buffer</a>.size(), <a class="code" href="a05378.html#a258">stringFromVector</a>(buffer).c_str() );
+00188 <a class="code" href="a04199.html#a1">nlinfo</a>( <span class="stringliteral">"LNETL1: Receive queue:"</span> );
+00189 recvfifo.value().display();
+00190 <a class="code" href="a04199.html#a3">nlerror</a>( <span class="stringliteral">"LNETL1: Invalid system event type in client receive queue"</span> );
+00191 }
+00192 }
+00193 <span class="comment">// Extract system event</span>
+00194 {
+00195 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;<a class="code" href="a02296.html#NLNET_1_1CCallbackServerb14">receiveQueue</a>() );
+00196 recvfifo.value().pop();
+00197 <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb16">setDataAvailableFlag</a>( ! recvfifo.value().empty() );
+00198 }
+00199
+00200 }
+00201 <span class="comment">// _DataAvailable is false here</span>
+00202 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00203 }
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServerb6" doxytag="NLNET::CBufClient::dataAvailableFlag" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> volatile bool NLNET::CBufNetBase::dataAvailableFlag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return _DataAvailable.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00206">206</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00214">NLNET::CBufNetBase::_DataAvailable</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, and <a class="el" href="a05506.html#l00140">dataAvailable()</a>.
+<p>
+<div class="fragment"><pre>00206 { <span class="keywordflow">return</span> _DataAvailable; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta7" doxytag="NLNET::CBufClient::disconnect" ></a><p>
+<table class="mdTable" 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::CBufClient::disconnect </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>quick</em> = false </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>
+Disconnects the remote host and empties the receive queue. Before that, flushes pending data to send unless quick is true. The disconnection callback will *not* be called. Do not call if the socket is not connected.
+<p>
+Definition at line <a class="el" href="a05506.html#l00318">318</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">NLNET::CSock::connected()</a>, <a class="el" href="a05515.html#l00237">NLNET::CBufSock::connectedState()</a>, <a class="el" href="a05514.html#l00315">NLNET::CBufSock::disconnect()</a>, <a class="el" href="a05514.html#l00137">NLNET::CBufSock::flush()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05515.html#l00040">nlnettrace</a>, <a class="el" href="a05511.html#l00154">NLNET::CBufNetBase::receiveQueue()</a>, <a class="el" href="a05511.html#l00203">NLNET::CBufNetBase::setDataAvailableFlag()</a>, and <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00397">~CBufClient()</a>.
+<p>
+<div class="fragment"><pre>00319 {
+00320 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CBufClient::disconnect"</span> );
+00321
+00322 <span class="comment">// Do not allow to disconnect a socket that is not connected</span>
+00323 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;connectedState() );
+00324
+00325 <span class="comment">// When the NS tells us to remove this connection AND the connection has physically</span>
+00326 <span class="comment">// disconnected but not yet logically (i.e. disconnection event not processed yet),</span>
+00327 <span class="comment">// skip flushing and physical active disconnection</span>
+00328 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;connected() )
+00329 {
+00330 <span class="comment">// Flush sending is asked for</span>
+00331 <span class="keywordflow">if</span> ( ! quick )
+00332 {
+00333 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;flush();
+00334 }
+00335
+00336 <span class="comment">// Disconnect and prevent from advertising the disconnection</span>
+00337 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;disconnect( <span class="keyword">false</span> );
+00338 }
+00339
+00340 <span class="comment">// Empty the receive queue</span>
+00341 {
+00342 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;<a class="code" href="a02296.html#NLNET_1_1CCallbackServerb14">receiveQueue</a>() );
+00343 recvfifo.value().clear();
+00344 <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb16">setDataAvailableFlag</a>( <span class="keyword">false</span> );
+00345 }
+00346 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServerb7" doxytag="NLNET::CBufClient::disconnectionCallback" ></a><p>
+<table class="mdTable" 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#a76">TNetCallback</a> NLNET::CBufNetBase::disconnectionCallback </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the disconnection callback.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00157">157</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00217">NLNET::CBufNetBase::_DisconnectionCallback</a>, and <a class="el" href="a05511.html#l00047">NLNET::TNetCallback</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, and <a class="el" href="a05506.html#l00140">dataAvailable()</a>.
+<p>
+<div class="fragment"><pre>00157 { <span class="keywordflow">return</span> _DisconnectionCallback; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufServera5" doxytag="NLNET::CBufClient::displayReceiveQueueStat" ></a><p>
+<table class="mdTable" 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::CBufNetBase::displayReceiveQueueStat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02813.html">NLMISC::CLog</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>log</em> = <a class="el" href="a05378.html#a12">NLMISC::InfoLog</a> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClienta10">NLNET::CCallbackClient</a>, and <a class="el" href="a02307.html#NLNET_1_1CCallbackServera9">NLNET::CCallbackServer</a>.
+<p>
+Definition at line <a class="el" href="a05511.html#l00094">94</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00211">NLNET::CBufNetBase::_RecvFifo</a>, and <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>.
+<p>
+<div class="fragment"><pre>00095 {
+00096 <a class="code" href="a05379.html#a79">CFifoAccessor</a> syncfifo( &amp;_RecvFifo );
+00097 syncfifo.value().displayStats(log);
+00098 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta11" doxytag="NLNET::CBufClient::displaySendQueueStat" ></a><p>
+<table class="mdTable" 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::CBufClient::displaySendQueueStat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02813.html">NLMISC::CLog</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>log</em> = <a class="el" href="a05378.html#a12">NLMISC::InfoLog</a> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00137">137</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05508.html#l00528">NLMISC::CBufFIFO::displayStats()</a>, and <a class="el" href="a05515.html#l00240">NLNET::CBufSock::SendFifo</a>.
+<p>
+<div class="fragment"><pre>00138 {
+00139 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;SendFifo.displayStats(log);
+00140 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClienta9" doxytag="NLNET::CBufClient::displayThreadStat" ></a><p>
+<table class="mdTable" 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::CBufClient::displayThreadStat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02813.html">NLMISC::CLog</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>log</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>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClienta13">NLNET::CCallbackClient</a>.
+<p>
+Definition at line <a class="el" href="a05506.html#l00112">112</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00228">_RecvTask</a>, <a class="el" href="a05943.html#l00323">NLMISC::CLog::displayNL()</a>, and <a class="el" href="a05507.html#l00061">NLNET::CClientReceiveTask::NbLoop</a>.
+<p>
+<div class="fragment"><pre>00113 {
+00114 log-&gt;<a class="code" href="a02813.html#NLNET_1_1CNetLoga7">displayNL</a> (<span class="stringliteral">"client thread %p nbloop %d"</span>, _RecvTask, <a class="code" href="a02295.html#NLNET_1_1CBufClientr0">_RecvTask</a>-&gt;NbLoop);
+00115 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta14" doxytag="NLNET::CBufClient::flush" ></a><p>
+<table class="mdTable" 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 NLNET::CBufClient::flush </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Force to send all data pending in the send queue. <dl compact><dt><b>Returns:</b></dt><dd>False if an error has occured (e.g. the remote host is disconnected). To retrieve the reason of the error, call <a class="el" href="a02444.html#NLNET_1_1CUdpSocke1">CSock::getLastError()</a> and/or <a class="el" href="a02444.html#NLNET_1_1CUdpSocke0">CSock::errorString()</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00158">158</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, and <a class="el" href="a05514.html#l00137">NLNET::CBufSock::flush()</a>.
+<p>
+<div class="fragment"><pre>00158 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;flush(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufServera9" doxytag="NLNET::CBufClient::getReceiveQueueSize" ></a><p>
+<table class="mdTable" 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::CBufNetBase::getReceiveQueueSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the size of the receive queue (mutexed).
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClienta18">NLNET::CCallbackClient</a>, and <a class="el" href="a02307.html#NLNET_1_1CCallbackServera15">NLNET::CCallbackServer</a>.
+<p>
+Definition at line <a class="el" href="a05511.html#l00088">88</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00211">NLNET::CBufNetBase::_RecvFifo</a>, <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00089 {
+00090 <a class="code" href="a05379.html#a79">CFifoAccessor</a> syncfifo( &amp;_RecvFifo );
+00091 <span class="keywordflow">return</span> syncfifo.value().size();
+00092 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta19" doxytag="NLNET::CBufClient::getSendQueueSize" ></a><p>
+<table class="mdTable" 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::CBufClient::getSendQueueSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00135">135</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05515.html#l00240">NLNET::CBufSock::SendFifo</a>, <a class="el" href="a05508.html#l00410">NLMISC::CBufFIFO::size()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00135 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;SendFifo.size(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta24" doxytag="NLNET::CBufClient::id" ></a><p>
+<table class="mdTable" 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="a02303.html">TSockId</a> NLNET::CBufClient::id </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the id of the connection.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00198">198</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, and <a class="el" href="a05511.html#l00042">NLNET::TSockId</a>.
+<p>
+Referenced by <a class="el" href="a06138.html#l00577">NLNET::CPacsClient::connect()</a>, <a class="el" href="a05506.html#l00140">dataAvailable()</a>, and <a class="el" href="a05524.html#l00272">NLNET::CCallbackClient::getSockId()</a>.
+<p>
+<div class="fragment"><pre>00198 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>; <span class="comment">/*_RecvTask-&gt;sockId();*/</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServera25" doxytag="NLNET::CBufClient::maxExpectedBlockSize" ></a><p>
+<table class="mdTable" 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::CBufNetBase::maxExpectedBlockSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the max size of the received messages (default: 2^31-1).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00135">135</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00223">NLNET::CBufNetBase::_MaxExpectedBlockSize</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00085">connect()</a>, and <a class="el" href="a05512.html#l00093">NLNET::CBufServer::init()</a>.
+<p>
+<div class="fragment"><pre>00136 {
+00137 <span class="keywordflow">return</span> _MaxExpectedBlockSize;
+00138 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServera26" doxytag="NLNET::CBufClient::maxSentBlockSize" ></a><p>
+<table class="mdTable" 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::CBufNetBase::maxSentBlockSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the max size of the sent messages (default: 2^31-1).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00141">141</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00226">NLNET::CBufNetBase::_MaxSentBlockSize</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00299">NLNET::CBufServer::send()</a>, and <a class="el" href="a05506.html#l00121">send()</a>.
+<p>
+<div class="fragment"><pre>00142 {
+00143 <span class="keywordflow">return</span> _MaxSentBlockSize;
+00144 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta29" doxytag="NLNET::CBufClient::newBytesDownloaded" ></a><p>
+<table class="mdTable" 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> NLNET::CBufClient::newBytesDownloaded </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>
+Returns the number of bytes downloaded since the previous call to this method.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00361">361</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00212">_PrevBytesDownloaded</a>, <a class="el" href="a05507.html#l00172">bytesDownloaded()</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a05506.html#l00350">NLNET::updateStatCounter()</a>.
+<p>
+<div class="fragment"><pre>00362 {
+00363 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a120">updateStatCounter</a>( _PrevBytesDownloaded, <a class="code" href="a02295.html#NLNET_1_1CCallbackClienta2">bytesDownloaded</a>() );
+00364 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta30" doxytag="NLNET::CBufClient::newBytesUploaded" ></a><p>
+<table class="mdTable" 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> NLNET::CBufClient::newBytesUploaded </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>
+Returns the number of bytes uploaded since the previous call to this method.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00370">370</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00215">_PrevBytesUploaded</a>, <a class="el" href="a05507.html#l00175">bytesUploaded()</a>, <a class="el" href="a05981.html#l00102">uint64</a>, and <a class="el" href="a05506.html#l00350">NLNET::updateStatCounter()</a>.
+<p>
+<div class="fragment"><pre>00371 {
+00372 <span class="keywordflow">return</span> <a class="code" href="a05379.html#a120">updateStatCounter</a>( _PrevBytesUploaded, <a class="code" href="a02295.html#NLNET_1_1CCallbackClienta3">bytesUploaded</a>() );
+00373 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServerb12" doxytag="NLNET::CBufClient::pushMessageIntoReceiveQueue" ></a><p>
+<table class="mdTable" 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::CBufNetBase::pushMessageIntoReceiveQueue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>buffer</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>size</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00183">183</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00211">NLNET::CBufNetBase::_RecvFifo</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>, <a class="el" href="a05511.html#l00203">NLNET::CBufNetBase::setDataAvailableFlag()</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>
+<div class="fragment"><pre>00184 {
+00185 <span class="comment">//sint32 mbsize;</span>
+00186 {
+00187 <span class="comment">//nldebug( "BNB: Acquiring the receive queue... ");</span>
+00188 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;_RecvFifo );
+00189 <span class="comment">//nldebug( "BNB: Acquired, pushing the received buffer... ");</span>
+00190 recvfifo.value().push( buffer, size );
+00191 <span class="comment">//nldebug( "BNB: Pushed, releasing the receive queue..." );</span>
+00192 <span class="comment">//mbsize = recvfifo.value().size() / 1048576;</span>
+00193 <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb16">setDataAvailableFlag</a>( <span class="keyword">true</span> );
+00194 }
+00195 <span class="comment">//nldebug( "BNB: Released." );</span>
+00196 <span class="comment">/*if ( mbsize &gt; 1 )</span>
+00197 <span class="comment"> {</span>
+00198 <span class="comment"> nlwarning( "The receive queue size exceeds %d MB", mbsize );</span>
+00199 <span class="comment"> }*/</span>
+00200 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServerb13" doxytag="NLNET::CBufClient::pushMessageIntoReceiveQueue" ></a><p>
+<table class="mdTable" 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::CBufNetBase::pushMessageIntoReceiveQueue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>buffer</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Push message into receive queue (mutexed).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00164">164</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00211">NLNET::CBufNetBase::_RecvFifo</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>, and <a class="el" href="a05511.html#l00203">NLNET::CBufNetBase::setDataAvailableFlag()</a>.
+<p>
+Referenced by <a class="el" href="a05515.html#l00135">NLNET::CBufSock::advertiseSystemEvent()</a>, and <a class="el" href="a05506.html#l00437">NLNET::CClientReceiveTask::run()</a>.
+<p>
+<div class="fragment"><pre>00165 {
+00166 <span class="comment">//sint32 mbsize;</span>
+00167 {
+00168 <span class="comment">//nldebug( "BNB: Acquiring the receive queue... ");</span>
+00169 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;_RecvFifo );
+00170 <span class="comment">//nldebug( "BNB: Acquired, pushing the received buffer... ");</span>
+00171 recvfifo.value().push( buffer );
+00172 <span class="comment">//nldebug( "BNB: Pushed, releasing the receive queue..." );</span>
+00173 <span class="comment">//mbsize = recvfifo.value().size() / 1048576;</span>
+00174 <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb16">setDataAvailableFlag</a>( <span class="keyword">true</span> );
+00175 }
+00176 <span class="comment">//nldebug( "BNB: Released." );</span>
+00177 <span class="comment">//if ( mbsize &gt; 1 )</span>
+00178 <span class="comment">//{</span>
+00179 <span class="comment">// nlwarning( "The receive queue size exceeds %d MB", mbsize );</span>
+00180 <span class="comment">//}</span>
+00181 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta31" doxytag="NLNET::CBufClient::receive" ></a><p>
+<table class="mdTable" 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::CBufClient::receive </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02271.html">NLMISC::CMemStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>buffer</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>
+Receives next block of data in the specified buffer (resizes the vector) You must call <a class="el" href="a02295.html#NLNET_1_1CBufClienta5">dataAvailable()</a> before every call to <a class="el" href="a02295.html#NLNET_1_1CCallbackClienta31">receive()</a>
+<p>
+Definition at line <a class="el" href="a05506.html#l00272">272</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05511.html#l00056">NLNET::CFifoAccessor</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05515.html#l00040">nlnettrace</a>, <a class="el" href="a05511.html#l00154">NLNET::CBufNetBase::receiveQueue()</a>, and <a class="el" href="a05511.html#l00203">NLNET::CBufNetBase::setDataAvailableFlag()</a>.
+<p>
+<div class="fragment"><pre>00273 {
+00274 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CBufClient::receive"</span> );
+00275 <span class="comment">//nlassert( dataAvailable() );</span>
+00276
+00277 <span class="comment">// Extract buffer from the receive queue</span>
+00278 {
+00279 <a class="code" href="a05379.html#a79">CFifoAccessor</a> recvfifo( &amp;<a class="code" href="a02296.html#NLNET_1_1CCallbackServerb14">receiveQueue</a>() );
+00280 <a class="code" href="a04199.html#a6">nlassert</a>( ! recvfifo.value().empty() );
+00281 recvfifo.value().front( buffer );
+00282 recvfifo.value().pop();
+00283 <a class="code" href="a02296.html#NLNET_1_1CCallbackServerb16">setDataAvailableFlag</a>( ! recvfifo.value().empty() );
+00284 }
+00285
+00286 <span class="comment">// Extract event type</span>
+00287 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a04223.html#a589">buffer</a>.buffer()[<a class="code" href="a04223.html#a589">buffer</a>.size()-1] == CBufNetBase::User );
+00288 <span class="comment">//commented for optimisation nldebug( "LNETL1: Client read buffer (%d+%d B)", buffer.size(), sizeof(TSockId)+1 );</span>
+00289 <a class="code" href="a04223.html#a589">buffer</a>.resize( <a class="code" href="a04223.html#a589">buffer</a>.size()-1 );
+00290 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServerb14" doxytag="NLNET::CBufClient::receiveQueue" ></a><p>
+<table class="mdTable" 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#a78">CSynchronizedFIFO</a>&amp; NLNET::CBufNetBase::receiveQueue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Access to the receive queue.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00154">154</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00211">NLNET::CBufNetBase::_RecvFifo</a>, and <a class="el" href="a05511.html#l00053">NLNET::CSynchronizedFIFO</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, <a class="el" href="a05506.html#l00140">dataAvailable()</a>, <a class="el" href="a05506.html#l00318">disconnect()</a>, <a class="el" href="a05512.html#l00565">NLNET::CBufServer::receive()</a>, <a class="el" href="a05506.html#l00272">receive()</a>, and <a class="el" href="a05512.html#l00987">NLNET::CServerReceiveTask::run()</a>.
+<p>
+<div class="fragment"><pre>00154 { <span class="keywordflow">return</span> _RecvFifo; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta32" doxytag="NLNET::CBufClient::remoteAddress" ></a><p>
+<table class="mdTable" 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="a02665.html">CInetAddress</a>&amp; NLNET::CBufClient::remoteAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the address of the remote host.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00169">169</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a06405.html#l00238">NLNET::CSock::remoteAddr()</a>, and <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>.
+<p>
+Referenced by <a class="el" href="a05525.html#l00071">NLNET::CCallbackClient::hostAddress()</a>, and <a class="el" href="a06089.html#l00285">NLNET::CNamingClient::info()</a>.
+<p>
+<div class="fragment"><pre>00169 { <span class="keywordflow">return</span> <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;remoteAddr(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClienta20" doxytag="NLNET::CBufClient::send" ></a><p>
+<table class="mdTable" 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::CBufClient::send </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02271.html">NLMISC::CMemStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>buffer</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>
+Sends a message to the remote host (in fact the message is buffered into the send queue)
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClientd2">NLNET::CCallbackClient</a>.
+<p>
+Definition at line <a class="el" href="a05506.html#l00121">121</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05515.html#l00120">NLNET::CBufSock::advertiseDisconnection()</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05511.html#l00141">NLNET::CBufNetBase::maxSentBlockSize()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05515.html#l00040">nlnettrace</a>, and <a class="el" href="a05515.html#l00178">NLNET::CBufSock::pushBuffer()</a>.
+<p>
+<div class="fragment"><pre>00122 {
+00123 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CBufClient::send"</span> );
+00124 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a04223.html#a589">buffer</a>.length() &gt; 0 );
+00125 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a04223.html#a589">buffer</a>.length() &lt;= <a class="code" href="a02296.html#NLNET_1_1CCallbackServera26">maxSentBlockSize</a>() );
+00126
+00127 <span class="comment">// slow down the layer H_AUTO (CBufServer_send);</span>
+00128
+00129 <span class="keywordflow">if</span> ( ! <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;pushBuffer( buffer ) )
+00130 {
+00131 <span class="comment">// Disconnection event if disconnected</span>
+00132 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;advertiseDisconnection( <span class="keyword">this</span>, NULL );
+00133 }
+00134 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServerb16" doxytag="NLNET::CBufClient::setDataAvailableFlag" ></a><p>
+<table class="mdTable" 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::CBufNetBase::setDataAvailableFlag </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>da</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, protected, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets _DataAvailable.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00203">203</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00214">NLNET::CBufNetBase::_DataAvailable</a>.
+<p>
+Referenced by <a class="el" href="a05512.html#l00364">NLNET::CBufServer::dataAvailable()</a>, <a class="el" href="a05506.html#l00140">dataAvailable()</a>, <a class="el" href="a05506.html#l00318">disconnect()</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">receive()</a>, and <a class="el" href="a05512.html#l00987">NLNET::CServerReceiveTask::run()</a>.
+<p>
+<div class="fragment"><pre>00203 { _DataAvailable = da; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufServera22" doxytag="NLNET::CBufClient::setDisconnectionCallback" ></a><p>
+<table class="mdTable" 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::CBufNetBase::setDisconnectionCallback </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05379.html#a76">TNetCallback</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>cb</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> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets callback for detecting a disconnection (or NULL to disable callback).
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02305.html#NLNET_1_1CCallbackClienta36">NLNET::CCallbackClient</a>, and <a class="el" href="a02307.html#NLNET_1_1CCallbackServera34">NLNET::CCallbackServer</a>.
+<p>
+Definition at line <a class="el" href="a05511.html#l00085">85</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00217">NLNET::CBufNetBase::_DisconnectionCallback</a>, <a class="el" href="a05511.html#l00220">NLNET::CBufNetBase::_DisconnectionCbArg</a>, and <a class="el" href="a05511.html#l00047">NLNET::TNetCallback</a>.
+<p>
+<div class="fragment"><pre>00085 { _DisconnectionCallback = cb; _DisconnectionCbArg = arg; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServera35" doxytag="NLNET::CBufClient::setMaxExpectedBlockSize" ></a><p>
+<table class="mdTable" 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::CBufNetBase::setMaxExpectedBlockSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>limit</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the max size of the received messages. If receiving a message bigger than the limit, the connection will be dropped.<p>
+Default value: 1 MegaByte If you put a negative number as limit, the max size is reset to the default value. Warning: you can call this method only at initialization time, before connecting (for a client) or calling init() (for a server) !
+<p>
+Definition at line <a class="el" href="a05511.html#l00109">109</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00223">NLNET::CBufNetBase::_MaxExpectedBlockSize</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00110 {
+00111 <span class="keywordflow">if</span> ( limit &lt; 0 )
+00112 _MaxExpectedBlockSize = 1048576;
+00113 <span class="keywordflow">else</span>
+00114 _MaxExpectedBlockSize = (<a class="code" href="a04558.html#a11">uint32</a>)limit;
+00115 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServera36" doxytag="NLNET::CBufClient::setMaxSentBlockSize" ></a><p>
+<table class="mdTable" 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::CBufNetBase::setMaxSentBlockSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>limit</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the max size of the sent messages. Note: Limiting of sending not implemented, currently<p>
+Default value: 1 MegaByte If you put a negative number as limit, the max size is reset to the default value. Warning: you can call this method only at initialization time, before connecting (for a client) or calling init() (for a server) !
+<p>
+Definition at line <a class="el" href="a05511.html#l00126">126</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>.
+<p>
+References <a class="el" href="a05511.html#l00226">NLNET::CBufNetBase::_MaxSentBlockSize</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00127 {
+00128 <span class="keywordflow">if</span> ( limit &lt; 0 )
+00129 _MaxSentBlockSize = 1048576;
+00130 <span class="keywordflow">else</span>
+00131 _MaxSentBlockSize = (<a class="code" href="a04558.html#a11">uint32</a>)limit;
+00132 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta40" doxytag="NLNET::CBufClient::setSizeFlushTrigger" ></a><p>
+<table class="mdTable" 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::CBufClient::setSizeFlushTrigger </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>size</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the size flush trigger. When the size of the send queue reaches or exceeds this calue, all data in the send queue is automatically sent (-1 to disable this trigger )
+<p>
+Definition at line <a class="el" href="a05507.html#l00152">152</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05515.html#l00104">NLNET::CBufSock::setSizeFlushTrigger()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05646.html#l00645">size</a>.
+<p>
+<div class="fragment"><pre>00152 { <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;setSizeFlushTrigger( size ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta41" doxytag="NLNET::CBufClient::setTimeFlushTrigger" ></a><p>
+<table class="mdTable" 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::CBufClient::setTimeFlushTrigger </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ms</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets the time flush trigger (in millisecond). When this time is elapsed, all data in the send queue is automatically sent (-1 to disable this trigger)
+<p>
+Definition at line <a class="el" href="a05507.html#l00147">147</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05514.html#l00236">NLNET::CBufSock::setTimeFlushTrigger()</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+<div class="fragment"><pre>00147 { <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;setTimeFlushTrigger( ms ); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClienta42" doxytag="NLNET::CBufClient::update" ></a><p>
+<table class="mdTable" 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::CBufClient::update </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>
+Update the network (call this method evenly).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05506.html#l00296">296</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00206">_BufSock</a>, <a class="el" href="a05515.html#l00120">NLNET::CBufSock::advertiseDisconnection()</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2109_0">NLNET::CSock::connected()</a>, <a class="el" href="a06487.html#l00101">NLNET::CTcpSock::disconnect()</a>, <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>, and <a class="el" href="a05514.html#l00247">NLNET::CBufSock::update()</a>.
+<p>
+<div class="fragment"><pre>00297 {
+00298 <span class="comment">//nlnettrace( "CBufClient::update" );</span>
+00299
+00300 <span class="comment">// Update sending</span>
+00301 <span class="keywordtype">bool</span> sendingok = <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;update();
+00302
+00303 <span class="comment">// Disconnection event if disconnected</span>
+00304 <span class="keywordflow">if</span> ( ! ( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;connected() &amp;&amp; sendingok ) )
+00305 {
+00306 <span class="keywordflow">if</span> ( <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;connected() )
+00307 {
+00308 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;Sock-&gt;disconnect();
+00309 }
+00310 <a class="code" href="a02295.html#NLNET_1_1CCallbackClientp0">_BufSock</a>-&gt;advertiseDisconnection( <span class="keyword">this</span>, NULL );
+00311 }
+00312 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CCallbackClientn0" doxytag="NLNET::CBufClient::CClientReceiveTask" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> friend class <a class="el" href="a02352.html">CClientReceiveTask</a><code> [friend]</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="a05507.html#l00203">203</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00057">CBufClient()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackServern4" doxytag="NLNET::CBufClient::NLNET::CBufSock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> friend class <a class="el" href="a02303.html">NLNET::CBufSock</a><code> [friend, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05511.html#l00148">148</a> of file <a class="el" href="a05511.html">buf_net_base.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLNET_1_1CCallbackClientp0" doxytag="NLNET::CBufClient::_BufSock" ></a><p>
+<table class="mdTable" 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="a02991.html">CNonBlockingBufSock</a>* <a class="el" href="a02295.html#NLNET_1_1CCallbackClientp0">NLNET::CBufClient::_BufSock</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Send buffer and connection.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00206">206</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05507.html#l00172">bytesDownloaded()</a>, <a class="el" href="a05507.html#l00175">bytesUploaded()</a>, <a class="el" href="a05506.html#l00057">CBufClient()</a>, <a class="el" href="a05506.html#l00085">connect()</a>, <a class="el" href="a05507.html#l00166">connected()</a>, <a class="el" href="a05506.html#l00140">dataAvailable()</a>, <a class="el" href="a05506.html#l00318">disconnect()</a>, <a class="el" href="a05507.html#l00137">displaySendQueueStat()</a>, <a class="el" href="a05507.html#l00158">flush()</a>, <a class="el" href="a05507.html#l00135">getSendQueueSize()</a>, <a class="el" href="a05507.html#l00198">id()</a>, <a class="el" href="a05507.html#l00169">remoteAddress()</a>, <a class="el" href="a05506.html#l00121">send()</a>, <a class="el" href="a05507.html#l00152">setSizeFlushTrigger()</a>, <a class="el" href="a05507.html#l00147">setTimeFlushTrigger()</a>, <a class="el" href="a05506.html#l00296">update()</a>, and <a class="el" href="a05506.html#l00397">~CBufClient()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClientp9" doxytag="NLNET::CBufClient::_NoDelay" ></a><p>
+<table class="mdTable" 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="a02295.html#NLNET_1_1CCallbackClientp9">NLNET::CBufClient::_NoDelay</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True when the Nagle algorithm must be disabled (TCP_NODELAY).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00209">209</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00085">connect()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClientp11" doxytag="NLNET::CBufClient::_PrevBytesDownloaded" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a02295.html#NLNET_1_1CCallbackClientp11">NLNET::CBufClient::_PrevBytesDownloaded</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Previous number of bytes downloaded.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00212">212</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00085">connect()</a>, and <a class="el" href="a05506.html#l00361">newBytesDownloaded()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CCallbackClientp12" doxytag="NLNET::CBufClient::_PrevBytesUploaded" ></a><p>
+<table class="mdTable" 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> <a class="el" href="a02295.html#NLNET_1_1CCallbackClientp12">NLNET::CBufClient::_PrevBytesUploaded</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Previous number of bytes uploaded.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00215">215</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00085">connect()</a>, and <a class="el" href="a05506.html#l00370">newBytesUploaded()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClientr0" doxytag="NLNET::CBufClient::_RecvTask" ></a><p>
+<table class="mdTable" 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="a02352.html">CClientReceiveTask</a>* <a class="el" href="a02295.html#NLNET_1_1CBufClientr0">NLNET::CBufClient::_RecvTask</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Receive task.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00228">228</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00057">CBufClient()</a>, <a class="el" href="a05506.html#l00085">connect()</a>, <a class="el" href="a05506.html#l00112">displayThreadStat()</a>, and <a class="el" href="a05506.html#l00397">~CBufClient()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CBufClientr1" doxytag="NLNET::CBufClient::_RecvThread" ></a><p>
+<table class="mdTable" 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="a03880.html">NLMISC::IThread</a>* <a class="el" href="a02295.html#NLNET_1_1CBufClientr1">NLNET::CBufClient::_RecvThread</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Receive thread.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00231">231</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00085">connect()</a>, and <a class="el" href="a05506.html#l00397">~CBufClient()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05507.html">buf_client.h</a><li><a class="el" href="a05506.html">buf_client.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:52: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>