diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02352.html | 419 |
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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLNET::CClientReceiveTask Class Reference</h1><code>#include <<a class="el" href="a05507.html">buf_client.h</a>></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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaska0">bufSock</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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> </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"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02187.html#NLMISC_1_1IRunnablePosa0">getName</a> (std::string &result) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaska3">run</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaska4">sockId</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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> </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> * </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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a></td></tr> + +</table> +<hr><h2>Constructor & 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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02295.html">CBufClient</a> * </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> * </td> + <td class="mdname" nowrap> <em>bufsock</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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->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">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>result</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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>->Sock->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->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>->Sock->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>->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->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>->fillEventTypeOnly(); +00461 +00462 <span class="comment">// Push message into receive queue</span> +00463 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr0">_Client</a>->pushMessageIntoReceiveQueue( <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaskr1">_NBBufSock</a>->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()->receive( (uint8*)&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 > _Client->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->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<uint8> buffer;</span> +00486 <span class="comment"> buffer.resize(len+1);</span> +00487 <span class="comment"></span> +00488 <span class="comment"> sock()->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->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->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->asString().c_str() );</span> +00500 <span class="comment"> }</span> +00501 <span class="comment"> */</span> +00502 } +00503 <span class="keywordflow">catch</span> ( ESocketConnectionClosed& ) +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>()->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& ) +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>()->asString().c_str() ); +00512 <a class="code" href="a02352.html#NLNET_1_1CClientReceiveTaska4">sockId</a>()->Sock->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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> + + </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> + + </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> + + </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> |