aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02352.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02352.html')
-rw-r--r--docs/doxygen/nel/a02352.html419
1 files changed, 419 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02352.html b/docs/doxygen/nel/a02352.html
new file mode 100644
index 00000000..011314c4
--- /dev/null
+++ b/docs/doxygen/nel/a02352.html
@@ -0,0 +1,419 @@
+<!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::CClientReceiveTask 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::CClientReceiveTask Class Reference</h1><code>#include &lt;<a class="el" href="a05507.html">buf_client.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLNET::CClientReceiveTask:
+<p><center><img src="a02352.png" usemap="#NLNET::CClientReceiveTask_map" border="0" alt=""></center>
+<map name="NLNET::CClientReceiveTask_map">
+<area href="a02187.html" alt="NLMISC::IRunnable" shape="rect" coords="0,0,171,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Code of receiving thread for clients
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00045">45</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 Member Functions</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="a02352.html#NLNET_1_1CClientReceiveTaska0">bufSock</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pointer to the bufsock object. <a href="#NLNET_1_1CClientReceiveTaska0"></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="a02352.html#NLNET_1_1CClientReceiveTaska1">CClientReceiveTask</a> (<a class="el" href="a02295.html">CBufClient</a> *client, <a class="el" href="a02991.html">CNonBlockingBufSock</a> *bufsock)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor (increments the reference to the object pointed to by the smart pointer sockid). <a href="#NLNET_1_1CClientReceiveTaska1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02187.html#NLMISC_1_1IRunnablePosa0">getName</a> (std::string &amp;result) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaska3">run</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Run. <a href="#NLNET_1_1CClientReceiveTaska3"></a><br><br></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="a02352.html#NLNET_1_1CClientReceiveTaska4">sockId</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the socket identifier. <a href="#NLNET_1_1CClientReceiveTaska4"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Data Fields</h2></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="a02352.html#NLNET_1_1CClientReceiveTasko0">NbLoop</a></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="a02295.html">CBufClient</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaskr0">_Client</a></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="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLNET_1_1CClientReceiveTaska1" doxytag="NLNET::CClientReceiveTask::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"> NLNET::CClientReceiveTask::CClientReceiveTask </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02295.html">CBufClient</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>client</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02991.html">CNonBlockingBufSock</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>bufsock</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor (increments the reference to the object pointed to by the smart pointer sockid).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00050">50</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00065">_Client</a>, <a class="el" href="a05507.html#l00067">_NBBufSock</a>, and <a class="el" href="a05507.html#l00061">NbLoop</a>.
+<p>
+<div class="fragment"><pre>00050 : <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTasko0">NbLoop</a>(0), <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr0">_Client</a>(client), <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>(bufsock) {} <span class="comment">// CHANGED: non-blocking client connection</span>
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CClientReceiveTaska0" doxytag="NLNET::CClientReceiveTask::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>* NLNET::CClientReceiveTask::bufSock </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>
+Returns a pointer to the bufsock object.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00056">56</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00067">_NBBufSock</a>.
+<p>
+<div class="fragment"><pre>00056 { <span class="keywordflow">return</span> <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>; } <span class="comment">// CHANGED: non-blocking client connection (previously, returned _SockId-&gt;Sock)</span>
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLMISC_1_1IRunnablePosa0" doxytag="NLNET::CClientReceiveTask::getName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLMISC::IRunnable::getName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>result</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02220.html#NL3D_1_1CAsyncFileManager3D_1_1CMeshLoada1">NL3D::CAsyncFileManager3D::CMeshLoad</a>, <a class="el" href="a02218.html#NL3D_1_1CAsyncFileManager3D_1_1CIGLoada1">NL3D::CAsyncFileManager3D::CIGLoad</a>, <a class="el" href="a02219.html#NL3D_1_1CAsyncFileManager3D_1_1CIGLoadUsera1">NL3D::CAsyncFileManager3D::CIGLoadUser</a>, <a class="el" href="a02222.html#NL3D_1_1CAsyncFileManager3D_1_1CTextureLoada1">NL3D::CAsyncFileManager3D::CTextureLoad</a>, <a class="el" href="a03752.html#NL3D_1_1CZoneLoadingTaska1">NL3D::CZoneLoadingTask</a>, <a class="el" href="a02593.html#NLPACS_1_1CGlobalRetriever_1_1CLrLoadera1">NLPACS::CGlobalRetriever::CLrLoader</a>, <a class="el" href="a02223.html#NLMISC_1_1CAsyncFileManager_1_1CFileLoada1">NLMISC::CAsyncFileManager::CFileLoad</a>, <a class="el" href="a02224.html#NLMISC_1_1CAsyncFileManager_1_1CMultipleFileLoada1">NLMISC::CAsyncFileManager::CMultipleFileLoad</a>, and <a class="el" href="a02225.html#NLMISC_1_1CAsyncFileManager_1_1CSignala1">NLMISC::CAsyncFileManager::CSignal</a>.
+<p>
+Definition at line <a class="el" href="a06535.html#l00074">74</a> of file <a class="el" href="a06535.html">thread.h</a>.
+<p>
+Referenced by <a class="el" href="a06485.html#l00061">NLMISC::CTaskManager::run()</a>.
+<p>
+<div class="fragment"><pre>00075 {
+00076 result = <span class="stringliteral">"NoName"</span>;
+00077 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CClientReceiveTaska3" doxytag="NLNET::CClientReceiveTask::run" ></a><p>
+<table class="mdTable" 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::CClientReceiveTask::run </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>
+Run.
+<p>
+
+<p>
+Implements <a class="el" href="a02187.html#NLMISC_1_1IRunnablePosa1">NLMISC::IRunnable</a>.
+<p>
+Definition at line <a class="el" href="a05506.html#l00437">437</a> of file <a class="el" href="a05506.html">buf_client.cpp</a>.
+<p>
+References <a class="el" href="a05507.html#l00065">_Client</a>, <a class="el" href="a05507.html#l00067">_NBBufSock</a>, <a class="el" href="a02444.html#NLNET_1_1CUdpSockz2105_0">NLNET::CSock::dataAvailable()</a>, <a class="el" href="a06487.html#l00101">NLNET::CTcpSock::disconnect()</a>, <a class="el" href="a05515.html#l00298">NLNET::CNonBlockingBufSock::fillEventTypeOnly()</a>, <a class="el" href="a05506.html#l00047">NLNET::NbClientReceiveTask</a>, <a class="el" href="a05507.html#l00061">NbLoop</a>, <a class="el" href="a05510.html#l00036">NLNET::NbNetworkTask</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05515.html#l00040">nlnettrace</a>, <a class="el" href="a05511.html#l00164">NLNET::CBufNetBase::pushMessageIntoReceiveQueue()</a>, <a class="el" href="a05515.html#l00308">NLNET::CNonBlockingBufSock::receivedBuffer()</a>, <a class="el" href="a05514.html#l00386">NLNET::CNonBlockingBufSock::receivePart()</a>, <a class="el" href="a06405.html#l00143">NLNET::CSock::setTimeOutValue()</a>, <a class="el" href="a05515.html#l00243">NLNET::CBufSock::Sock</a>, and <a class="el" href="a05507.html#l00059">sockId()</a>.
+<p>
+<div class="fragment"><pre>00438 {
+00439 <a class="code" href="a05379.html#a7">NbClientReceiveTask</a>++;
+00440 <a class="code" href="a05379.html#a8">NbNetworkTask</a>++;
+00441 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"CClientReceiveTask::run"</span> );
+00442
+00443 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>-&gt;Sock-&gt;setTimeOutValue( 60, 0 );
+00444
+00445 <span class="keywordtype">bool</span> connected = <span class="keyword">true</span>;
+00446 <span class="keywordflow">while</span> ( connected ) <span class="comment">// does not call _Sock-&gt;connected() to avoid mutex (not needed for client)</span>
+00447 {
+00448 <span class="keywordflow">try</span>
+00449 {
+00450 <span class="comment">// ADDED: non-blocking client connection</span>
+00451
+00452 <span class="comment">// Wait until some data are received (sleepin' select inside)</span>
+00453 <span class="keywordflow">while</span> ( ! <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>-&gt;Sock-&gt;dataAvailable() );
+00454
+00455 <span class="comment">// Process the data received</span>
+00456 <span class="keywordflow">if</span> ( <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>-&gt;receivePart( 1 ) ) <span class="comment">// 1 for the event type</span>
+00457 {
+00458 <span class="comment">//commented out for optimisation: nldebug( "LNETL1: Client %s received buffer (%u bytes)", _SockId-&gt;asString().c_str(), buffer.size()/*, stringFromVector(buffer).c_str()*/ );</span>
+00459 <span class="comment">// Add event type</span>
+00460 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>-&gt;fillEventTypeOnly();
+00461
+00462 <span class="comment">// Push message into receive queue</span>
+00463 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr0">_Client</a>-&gt;pushMessageIntoReceiveQueue( <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>-&gt;receivedBuffer() );
+00464 }
+00465
+00466 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTasko0">NbLoop</a>++;
+00467
+00468 <span class="comment">/* // OLD: blocking client connection</span>
+00469 <span class="comment"> // Receive message length (in blocking mode)</span>
+00470 <span class="comment"> TBlockSize blocklen;</span>
+00471 <span class="comment"> uint32 lenoflen = sizeof(blocklen);</span>
+00472 <span class="comment"> sock()-&gt;receive( (uint8*)&amp;blocklen, lenoflen );</span>
+00473 <span class="comment"> uint32 len = ntohl( blocklen );</span>
+00474 <span class="comment"> </span>
+00475 <span class="comment"> if ( len != 0 )</span>
+00476 <span class="comment"> {</span>
+00477 <span class="comment"> // Test size limit</span>
+00478 <span class="comment"> if ( len &gt; _Client-&gt;maxExpectedBlockSize() )</span>
+00479 <span class="comment"> {</span>
+00480 <span class="comment"> nlwarning( "LNETL1: Socket %s received length exceeding max expected, in block header... Disconnecting", _SockId-&gt;asString().c_str() );</span>
+00481 <span class="comment"> throw ESocket( "Received length exceeding max expected", false );</span>
+00482 <span class="comment"> }</span>
+00483 <span class="comment"></span>
+00484 <span class="comment"> // Receive message payload (in blocking mode)</span>
+00485 <span class="comment"> CObjectVector&lt;uint8&gt; buffer;</span>
+00486 <span class="comment"> buffer.resize(len+1);</span>
+00487 <span class="comment"></span>
+00488 <span class="comment"> sock()-&gt;receive( buffer.getPtr(), len );</span>
+00489 <span class="comment"> </span>
+00490 <span class="comment"> //commented out for optimisation: nldebug( "LNETL1: Client %s received buffer (%u bytes)", _SockId-&gt;asString().c_str(), buffer.size() );</span>
+00491 <span class="comment"> // Add event type</span>
+00492 <span class="comment"> buffer[len] = CBufNetBase::User;</span>
+00493 <span class="comment"></span>
+00494 <span class="comment"> // Push message into receive queue</span>
+00495 <span class="comment"> _Client-&gt;pushMessageIntoReceiveQueue( buffer.getPtr(), buffer.size() );</span>
+00496 <span class="comment"> }</span>
+00497 <span class="comment"> else</span>
+00498 <span class="comment"> {</span>
+00499 <span class="comment"> nlwarning( "LNETL1: Socket %s received null length in block header", _SockId-&gt;asString().c_str() );</span>
+00500 <span class="comment"> }</span>
+00501 <span class="comment"> */</span>
+00502 }
+00503 <span class="keywordflow">catch</span> ( ESocketConnectionClosed&amp; )
+00504 {
+00505 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL1: Client connection %s closed"</span>, <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaska4">sockId</a>()-&gt;asString().c_str() );
+00506 <span class="comment">// The socket went to _Connected=false when throwing the exception</span>
+00507 connected = <span class="keyword">false</span>;
+00508 }
+00509 <span class="keywordflow">catch</span> ( ESocket&amp; )
+00510 {
+00511 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL1: Client connection %s broken"</span>, <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaska4">sockId</a>()-&gt;asString().c_str() );
+00512 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaska4">sockId</a>()-&gt;Sock-&gt;disconnect();
+00513 connected = <span class="keyword">false</span>;
+00514 }
+00515 }
+00516
+00517 <a class="code" href="a04092.html#a0">nlnettrace</a>( <span class="stringliteral">"Exiting CClientReceiveTask::run()"</span> );
+00518 <a class="code" href="a05379.html#a7">NbClientReceiveTask</a>--;
+00519 <a class="code" href="a05379.html#a8">NbNetworkTask</a>--;
+00520 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CClientReceiveTaska4" doxytag="NLNET::CClientReceiveTask::sockId" ></a><p>
+<table class="mdTable" 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::CClientReceiveTask::sockId </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>
+Returns the socket identifier.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00059">59</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+References <a class="el" href="a05507.html#l00067">_NBBufSock</a>, and <a class="el" href="a05511.html#l00042">NLNET::TSockId</a>.
+<p>
+Referenced by <a class="el" href="a05506.html#l00437">run()</a>.
+<p>
+<div class="fragment"><pre>00059 { <span class="keywordflow">return</span> (<a class="code" href="a05379.html#a74">TSockId</a>)<a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLNET_1_1CClientReceiveTaskr0" doxytag="NLNET::CClientReceiveTask::_Client" ></a><p>
+<table class="mdTable" 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="a02295.html">CBufClient</a>* <a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaskr0">NLNET::CClientReceiveTask::_Client</a><code> [private]</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#l00065">65</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05507.html#l00050">CClientReceiveTask()</a>, and <a class="el" href="a05506.html#l00437">run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CClientReceiveTaskr1" doxytag="NLNET::CClientReceiveTask::_NBBufSock" ></a><p>
+<table class="mdTable" 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="a02352.html#NLNET_1_1CClientReceiveTaskr1">NLNET::CClientReceiveTask::_NBBufSock</a><code> [private]</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#l00067">67</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05507.html#l00056">bufSock()</a>, <a class="el" href="a05507.html#l00050">CClientReceiveTask()</a>, <a class="el" href="a05506.html#l00437">run()</a>, and <a class="el" href="a05507.html#l00059">sockId()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CClientReceiveTasko0" doxytag="NLNET::CClientReceiveTask::NbLoop" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02352.html#NLNET_1_1CClientReceiveTasko0">NLNET::CClientReceiveTask::NbLoop</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05507.html#l00061">61</a> of file <a class="el" href="a05507.html">buf_client.h</a>.
+<p>
+Referenced by <a class="el" href="a05507.html#l00050">CClientReceiveTask()</a>, <a class="el" href="a05506.html#l00112">NLNET::CBufClient::displayThreadStat()</a>, and <a class="el" href="a05506.html#l00437">run()</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:56:38 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>