#include <buf_client.h>
Inheritance diagram for NLNET::CBufClient:
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.
Where do the methods take place: send() -> send buffer -> update(), flush(), bytesUploaded(), newBytesUploaded()
receive(), <- receive buffer <- receive thread, dataAvailable(), bytesDownloaded(), newBytesDownloaded() disconnection callback
Nevrax France
Definition at line 93 of file buf_client.h.
Public Types | |
enum | TEventType { User = 'U', Connection = 'C', Disconnection = 'D' } |
Type of incoming events (max 256). More... | |
Public Member Functions | |
uint64 | bytesDownloaded () const |
Returns the number of bytes downloaded (read or still in the receive buffer) since the latest connection. | |
uint64 | bytesUploaded () const |
Returns the number of bytes uploaded (flushed) since the latest connection. | |
CBufClient (bool nodelay=true, bool replaymode=false) | |
Constructor. Set nodelay to true to disable the Nagle buffering algorithm (see CTcpSock documentation). | |
void | connect (const CInetAddress &addr) |
Connects to the specified host. | |
bool | connected () const |
bool | dataAvailable () |
void | disconnect (bool quick=false) |
void | displayReceiveQueueStat (NLMISC::CLog *log=NLMISC::InfoLog) |
void | displaySendQueueStat (NLMISC::CLog *log=NLMISC::InfoLog) |
void | displayThreadStat (NLMISC::CLog *log) |
bool | flush () |
uint32 | getReceiveQueueSize () |
Returns the size of the receive queue (mutexed). | |
uint32 | getSendQueueSize () const |
TSockId | id () const |
Returns the id of the connection. | |
uint32 | maxExpectedBlockSize () const |
Returns the max size of the received messages (default: 2^31-1). | |
uint32 | maxSentBlockSize () const |
Returns the max size of the sent messages (default: 2^31-1). | |
uint64 | newBytesDownloaded () |
Returns the number of bytes downloaded since the previous call to this method. | |
uint64 | newBytesUploaded () |
Returns the number of bytes uploaded since the previous call to this method. | |
void | receive (NLMISC::CMemStream &buffer) |
const CInetAddress & | remoteAddress () const |
Returns the address of the remote host. | |
void | send (const NLMISC::CMemStream &buffer) |
void | setDisconnectionCallback (TNetCallback cb, void *arg) |
Sets callback for detecting a disconnection (or NULL to disable callback). | |
void | setMaxExpectedBlockSize (sint32 limit) |
void | setMaxSentBlockSize (sint32 limit) |
void | setSizeFlushTrigger (sint32 size) |
void | setTimeFlushTrigger (sint32 ms) |
void | update () |
Update the network (call this method evenly). | |
virtual | ~CBufClient () |
Destructor. | |
Protected Member Functions | |
void * | argOfDisconnectionCallback () const |
Returns the argument of the disconnection callback. | |
volatile bool | dataAvailableFlag () const |
Return _DataAvailable. | |
TNetCallback | disconnectionCallback () const |
Returns the disconnection callback. | |
void | pushMessageIntoReceiveQueue (const uint8 *buffer, uint32 size) |
void | pushMessageIntoReceiveQueue (const std::vector< uint8 > &buffer) |
Push message into receive queue (mutexed). | |
CSynchronizedFIFO & | receiveQueue () |
Access to the receive queue. | |
void | setDataAvailableFlag (bool da) |
Sets _DataAvailable. | |
Protected Attributes | |
CNonBlockingBufSock * | _BufSock |
Send buffer and connection. | |
bool | _NoDelay |
True when the Nagle algorithm must be disabled (TCP_NODELAY). | |
uint64 | _PrevBytesDownloaded |
Previous number of bytes downloaded. | |
uint64 | _PrevBytesUploaded |
Previous number of bytes uploaded. | |
Private Attributes | |
CClientReceiveTask * | _RecvTask |
Receive task. | |
NLMISC::IThread * | _RecvThread |
Receive thread. | |
Friends | |
class | CClientReceiveTask |
class | NLNET::CBufSock |
|
Type of incoming events (max 256).
Definition at line 79 of file buf_net_base.h.
00079 { User = 'U', Connection = 'C', Disconnection = 'D' }; |
|
Constructor. Set nodelay to true to disable the Nagle buffering algorithm (see CTcpSock documentation).
Definition at line 57 of file buf_client.cpp. References _BufSock, _RecvTask, CClientReceiveTask, and nlnettrace.
00057 : 00058 CBufNetBase(), 00059 _NoDelay( nodelay ), 00060 _PrevBytesDownloaded( 0 ), 00061 _PrevBytesUploaded( 0 ), 00062 _RecvTask( NULL ), 00063 _RecvThread( NULL ) 00064 /*_PrevBytesReceived( 0 ), 00065 _PrevBytesSent( 0 )*/ 00066 { 00067 nlnettrace( "CBufClient::CBufClient" ); // don't define a global object 00068 00069 if ( replaymode ) 00070 { 00071 _BufSock = new CNonBlockingBufSock( new CDummyTcpSock() ); // CHANGED: non-blocking client connection 00072 } 00073 else 00074 { 00075 _BufSock = new CNonBlockingBufSock(); // CHANGED: non-blocking client connection 00076 _RecvTask = new CClientReceiveTask( this, _BufSock ); 00077 } 00078 } |
|
Destructor.
Definition at line 397 of file buf_client.cpp. References _BufSock, _RecvTask, _RecvThread, NLNET::CSock::connected(), NLNET::CBufSock::connectedState(), disconnect(), nlassert, nldebug, nlnettrace, NLNET::CBufSock::Sock, and NLMISC::IThread::wait().
00398 { 00399 nlnettrace( "CBufClient::~CBufClient" ); 00400 00401 // Disconnect if not done 00402 if ( _BufSock->Sock->connected() ) 00403 { 00404 nlassert( _BufSock->connectedState() ); 00405 00406 disconnect( true ); 00407 } 00408 00409 // Clean thread termination 00410 if ( _RecvThread != NULL ) 00411 { 00412 nldebug( "LNETL1: Waiting for the end of the receive thread..." ); 00413 _RecvThread->wait(); 00414 } 00415 00416 if ( _RecvTask != NULL ) 00417 delete _RecvTask; 00418 00419 if ( _RecvThread != NULL ) 00420 delete _RecvThread; 00421 00422 if ( _BufSock != NULL ) 00423 delete _BufSock; 00424 00425 nlnettrace( "Exiting CBufClient::~CBufClient" ); 00426 } |
|
Returns the argument of the disconnection callback.
Definition at line 160 of file buf_net_base.h. References NLNET::CBufNetBase::_DisconnectionCbArg. Referenced by NLNET::CBufServer::dataAvailable(), and dataAvailable().
00160 { return _DisconnectionCbArg; }
|
|
Returns the number of bytes downloaded (read or still in the receive buffer) since the latest connection.
Definition at line 172 of file buf_client.h. References _BufSock, NLNET::CSock::bytesReceived(), NLNET::CBufSock::Sock, and uint64. Referenced by newBytesDownloaded().
00172 { return _BufSock->Sock->bytesReceived(); } |
|
Returns the number of bytes uploaded (flushed) since the latest connection.
Definition at line 175 of file buf_client.h. References _BufSock, NLNET::CSock::bytesSent(), NLNET::CBufSock::Sock, and uint64. Referenced by newBytesUploaded().
00175 { return _BufSock->Sock->bytesSent(); } |
|
Connects to the specified host.
Reimplemented in NLNET::CCallbackClient. Definition at line 85 of file buf_client.cpp. References _BufSock, _NoDelay, _PrevBytesDownloaded, _PrevBytesUploaded, _RecvTask, _RecvThread, addr, NLNET::CBufSock::connect(), NLNET::CSock::connected(), NLNET::CBufNetBase::maxExpectedBlockSize(), nlassert, nlnettrace, NLNET::CNonBlockingBufSock::setMaxExpectedBlockSize(), NLNET::CNonBlockingBufSock::setNonBlocking(), NLNET::CBufSock::Sock, and NLMISC::IThread::start().
00086 { 00087 nlnettrace( "CBufClient::connect" ); 00088 nlassert( ! _BufSock->Sock->connected() ); 00089 _BufSock->setMaxExpectedBlockSize( maxExpectedBlockSize() ); 00090 _BufSock->connect( addr, _NoDelay, true ); 00091 _BufSock->setNonBlocking(); // ADDED: non-blocking client connection 00092 _PrevBytesDownloaded = 0; 00093 _PrevBytesUploaded = 0; 00094 /*_PrevBytesReceived = 0; 00095 _PrevBytesSent = 0;*/ 00096 00097 // Allow reconnection 00098 if ( _RecvThread != NULL ) 00099 { 00100 delete _RecvThread; 00101 } 00102 00103 _RecvThread = IThread::create( _RecvTask ); 00104 _RecvThread->start(); 00105 } |
|
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) Reimplemented in NLNET::CCallbackClient. Definition at line 166 of file buf_client.h. References _BufSock, and NLNET::CBufSock::connectedState().
00166 { return _BufSock->connectedState(); } |
|
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 Reimplemented in NLNET::CCallbackClient. Definition at line 140 of file buf_client.cpp. References _BufSock, NLNET::CBufNetBase::argOfDisconnectionCallback(), buffer, NLNET::CFifoAccessor, NLNET::CBufNetBase::dataAvailableFlag(), NLNET::CBufNetBase::disconnectionCallback(), id(), nldebug, nlerror, nlinfo, NLNET::CBufNetBase::receiveQueue(), NLNET::CBufSock::setConnectedState(), NLNET::CBufNetBase::setDataAvailableFlag(), NLMISC::stringFromVector(), uint16, and uint8.
00141 { 00142 // slow down the layer H_AUTO (CBufClient_dataAvailable); 00143 { 00144 /* If no data available, enter the 'while' loop and return false (1 volatile test) 00145 * If there are user data available, enter the 'while' and return true immediately (1 volatile test + 1 short locking) 00146 * If there is a disconnection event (rare), call the callback and loop 00147 */ 00148 while ( dataAvailableFlag() ) 00149 { 00150 // Because _DataAvailable is true, the receive queue is not empty at this point 00151 uint8 val; 00152 { 00153 CFifoAccessor recvfifo( &receiveQueue() ); 00154 val = recvfifo.value().frontLast (); 00155 } 00156 00157 // Test if it the next block is a system event 00158 switch ( val ) 00159 { 00160 00161 // Normal message available 00162 case CBufNetBase::User: 00163 return true; // return immediatly, do not extract the message 00164 00165 // Process disconnection event 00166 case CBufNetBase::Disconnection: 00167 00168 nldebug( "LNETL1: Disconnection event" ); 00169 _BufSock->setConnectedState( false ); 00170 00171 // Call callback if needed 00172 if ( disconnectionCallback() != NULL ) 00173 { 00174 disconnectionCallback()( id(), argOfDisconnectionCallback() ); 00175 } 00176 00177 // Unlike the server version, we do not delete the CBufSock object here, 00178 // it will be done in the destructor of CBufClient 00179 break; 00180 00181 default: // should not occur 00182 { 00183 CFifoAccessor recvfifo( &receiveQueue() ); 00184 vector<uint8> buffer; 00185 recvfifo.value().front (buffer); 00186 nlinfo( "LNETL1: Invalid block type: %hu (should be = %hu)", (uint16)(buffer[buffer.size()-1]), (uint16)val ); 00187 nlinfo( "LNETL1: Buffer (%d B): [%s]", buffer.size(), stringFromVector(buffer).c_str() ); 00188 nlinfo( "LNETL1: Receive queue:" ); 00189 recvfifo.value().display(); 00190 nlerror( "LNETL1: Invalid system event type in client receive queue" ); 00191 } 00192 } 00193 // Extract system event 00194 { 00195 CFifoAccessor recvfifo( &receiveQueue() ); 00196 recvfifo.value().pop(); 00197 setDataAvailableFlag( ! recvfifo.value().empty() ); 00198 } 00199 00200 } 00201 // _DataAvailable is false here 00202 return false; 00203 } 00204 } |
|
Return _DataAvailable.
Definition at line 206 of file buf_net_base.h. References NLNET::CBufNetBase::_DataAvailable. Referenced by NLNET::CBufServer::dataAvailable(), and dataAvailable().
00206 { return _DataAvailable; }
|
|
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. Definition at line 318 of file buf_client.cpp. References _BufSock, NLNET::CFifoAccessor, NLNET::CSock::connected(), NLNET::CBufSock::connectedState(), NLNET::CBufSock::disconnect(), NLNET::CBufSock::flush(), nlassert, nlnettrace, NLNET::CBufNetBase::receiveQueue(), NLNET::CBufNetBase::setDataAvailableFlag(), and NLNET::CBufSock::Sock. Referenced by ~CBufClient().
00319 { 00320 nlnettrace( "CBufClient::disconnect" ); 00321 00322 // Do not allow to disconnect a socket that is not connected 00323 nlassert( _BufSock->connectedState() ); 00324 00325 // When the NS tells us to remove this connection AND the connection has physically 00326 // disconnected but not yet logically (i.e. disconnection event not processed yet), 00327 // skip flushing and physical active disconnection 00328 if ( _BufSock->Sock->connected() ) 00329 { 00330 // Flush sending is asked for 00331 if ( ! quick ) 00332 { 00333 _BufSock->flush(); 00334 } 00335 00336 // Disconnect and prevent from advertising the disconnection 00337 _BufSock->disconnect( false ); 00338 } 00339 00340 // Empty the receive queue 00341 { 00342 CFifoAccessor recvfifo( &receiveQueue() ); 00343 recvfifo.value().clear(); 00344 setDataAvailableFlag( false ); 00345 } 00346 } |
|
Returns the disconnection callback.
Definition at line 157 of file buf_net_base.h. References NLNET::CBufNetBase::_DisconnectionCallback, and NLNET::TNetCallback. Referenced by NLNET::CBufServer::dataAvailable(), and dataAvailable().
00157 { return _DisconnectionCallback; }
|
|
Reimplemented in NLNET::CCallbackClient, and NLNET::CCallbackServer. Definition at line 94 of file buf_net_base.h. References NLNET::CBufNetBase::_RecvFifo, and NLNET::CFifoAccessor.
00095 { 00096 CFifoAccessor syncfifo( &_RecvFifo ); 00097 syncfifo.value().displayStats(log); 00098 } |
|
Definition at line 137 of file buf_client.h. References _BufSock, NLMISC::CBufFIFO::displayStats(), and NLNET::CBufSock::SendFifo.
00138 { 00139 _BufSock->SendFifo.displayStats(log); 00140 } |
|
Reimplemented in NLNET::CCallbackClient. Definition at line 112 of file buf_client.cpp. References _RecvTask, NLMISC::CLog::displayNL(), and NLNET::CClientReceiveTask::NbLoop.
|
|
Force to send all data pending in the send queue.
Definition at line 158 of file buf_client.h. References _BufSock, and NLNET::CBufSock::flush().
00158 { return _BufSock->flush(); } |
|
Returns the size of the receive queue (mutexed).
Reimplemented in NLNET::CCallbackClient, and NLNET::CCallbackServer. Definition at line 88 of file buf_net_base.h. References NLNET::CBufNetBase::_RecvFifo, NLNET::CFifoAccessor, and uint32.
00089 { 00090 CFifoAccessor syncfifo( &_RecvFifo ); 00091 return syncfifo.value().size(); 00092 } |
|
Definition at line 135 of file buf_client.h. References _BufSock, NLNET::CBufSock::SendFifo, NLMISC::CBufFIFO::size(), and uint32.
00135 { return _BufSock->SendFifo.size(); } |
|
Returns the id of the connection.
Definition at line 198 of file buf_client.h. References _BufSock, and NLNET::TSockId. Referenced by NLNET::CPacsClient::connect(), dataAvailable(), and NLNET::CCallbackClient::getSockId().
00198 { return _BufSock; /*_RecvTask->sockId();*/ } |
|
Returns the max size of the received messages (default: 2^31-1).
Definition at line 135 of file buf_net_base.h. References NLNET::CBufNetBase::_MaxExpectedBlockSize, and uint32. Referenced by connect(), and NLNET::CBufServer::init().
00136 {
00137 return _MaxExpectedBlockSize;
00138 }
|
|
Returns the max size of the sent messages (default: 2^31-1).
Definition at line 141 of file buf_net_base.h. References NLNET::CBufNetBase::_MaxSentBlockSize, and uint32. Referenced by NLNET::CBufServer::send(), and send().
00142 {
00143 return _MaxSentBlockSize;
00144 }
|
|
Returns the number of bytes downloaded since the previous call to this method.
Definition at line 361 of file buf_client.cpp. References _PrevBytesDownloaded, bytesDownloaded(), uint64, and NLNET::updateStatCounter().
00362 { 00363 return updateStatCounter( _PrevBytesDownloaded, bytesDownloaded() ); 00364 } |
|
Returns the number of bytes uploaded since the previous call to this method.
Definition at line 370 of file buf_client.cpp. References _PrevBytesUploaded, bytesUploaded(), uint64, and NLNET::updateStatCounter().
00371 { 00372 return updateStatCounter( _PrevBytesUploaded, bytesUploaded() ); 00373 } |
|
Definition at line 183 of file buf_net_base.h. References NLNET::CBufNetBase::_RecvFifo, buffer, NLNET::CFifoAccessor, NLNET::CBufNetBase::setDataAvailableFlag(), size, uint32, and uint8.
00184 { 00185 //sint32 mbsize; 00186 { 00187 //nldebug( "BNB: Acquiring the receive queue... "); 00188 CFifoAccessor recvfifo( &_RecvFifo ); 00189 //nldebug( "BNB: Acquired, pushing the received buffer... "); 00190 recvfifo.value().push( buffer, size ); 00191 //nldebug( "BNB: Pushed, releasing the receive queue..." ); 00192 //mbsize = recvfifo.value().size() / 1048576; 00193 setDataAvailableFlag( true ); 00194 } 00195 //nldebug( "BNB: Released." ); 00196 /*if ( mbsize > 1 ) 00197 { 00198 nlwarning( "The receive queue size exceeds %d MB", mbsize ); 00199 }*/ 00200 } |
|
Push message into receive queue (mutexed).
Definition at line 164 of file buf_net_base.h. References NLNET::CBufNetBase::_RecvFifo, buffer, NLNET::CFifoAccessor, and NLNET::CBufNetBase::setDataAvailableFlag(). Referenced by NLNET::CBufSock::advertiseSystemEvent(), and NLNET::CClientReceiveTask::run().
00165 { 00166 //sint32 mbsize; 00167 { 00168 //nldebug( "BNB: Acquiring the receive queue... "); 00169 CFifoAccessor recvfifo( &_RecvFifo ); 00170 //nldebug( "BNB: Acquired, pushing the received buffer... "); 00171 recvfifo.value().push( buffer ); 00172 //nldebug( "BNB: Pushed, releasing the receive queue..." ); 00173 //mbsize = recvfifo.value().size() / 1048576; 00174 setDataAvailableFlag( true ); 00175 } 00176 //nldebug( "BNB: Released." ); 00177 //if ( mbsize > 1 ) 00178 //{ 00179 // nlwarning( "The receive queue size exceeds %d MB", mbsize ); 00180 //} 00181 } |
|
Receives next block of data in the specified buffer (resizes the vector) You must call dataAvailable() before every call to receive() Definition at line 272 of file buf_client.cpp. References buffer, NLNET::CFifoAccessor, nlassert, nlnettrace, NLNET::CBufNetBase::receiveQueue(), and NLNET::CBufNetBase::setDataAvailableFlag().
00273 { 00274 nlnettrace( "CBufClient::receive" ); 00275 //nlassert( dataAvailable() ); 00276 00277 // Extract buffer from the receive queue 00278 { 00279 CFifoAccessor recvfifo( &receiveQueue() ); 00280 nlassert( ! recvfifo.value().empty() ); 00281 recvfifo.value().front( buffer ); 00282 recvfifo.value().pop(); 00283 setDataAvailableFlag( ! recvfifo.value().empty() ); 00284 } 00285 00286 // Extract event type 00287 nlassert( buffer.buffer()[buffer.size()-1] == CBufNetBase::User ); 00288 //commented for optimisation nldebug( "LNETL1: Client read buffer (%d+%d B)", buffer.size(), sizeof(TSockId)+1 ); 00289 buffer.resize( buffer.size()-1 ); 00290 } |
|
Access to the receive queue.
Definition at line 154 of file buf_net_base.h. References NLNET::CBufNetBase::_RecvFifo, and NLNET::CSynchronizedFIFO. Referenced by NLNET::CBufServer::dataAvailable(), dataAvailable(), disconnect(), NLNET::CBufServer::receive(), receive(), and NLNET::CServerReceiveTask::run().
00154 { return _RecvFifo; }
|
|
Returns the address of the remote host.
Definition at line 169 of file buf_client.h. References _BufSock, NLNET::CSock::remoteAddr(), and NLNET::CBufSock::Sock. Referenced by NLNET::CCallbackClient::hostAddress(), and NLNET::CNamingClient::info().
00169 { return _BufSock->Sock->remoteAddr(); } |
|
Sends a message to the remote host (in fact the message is buffered into the send queue) Reimplemented in NLNET::CCallbackClient. Definition at line 121 of file buf_client.cpp. References _BufSock, NLNET::CBufSock::advertiseDisconnection(), buffer, NLNET::CBufNetBase::maxSentBlockSize(), nlassert, nlnettrace, and NLNET::CBufSock::pushBuffer().
00122 { 00123 nlnettrace( "CBufClient::send" ); 00124 nlassert( buffer.length() > 0 ); 00125 nlassert( buffer.length() <= maxSentBlockSize() ); 00126 00127 // slow down the layer H_AUTO (CBufServer_send); 00128 00129 if ( ! _BufSock->pushBuffer( buffer ) ) 00130 { 00131 // Disconnection event if disconnected 00132 _BufSock->advertiseDisconnection( this, NULL ); 00133 } 00134 } |
|
Sets _DataAvailable.
Definition at line 203 of file buf_net_base.h. References NLNET::CBufNetBase::_DataAvailable. Referenced by NLNET::CBufServer::dataAvailable(), dataAvailable(), disconnect(), NLNET::CBufNetBase::pushMessageIntoReceiveQueue(), NLNET::CBufServer::receive(), receive(), and NLNET::CServerReceiveTask::run().
00203 { _DataAvailable = da; } |
|
Sets callback for detecting a disconnection (or NULL to disable callback).
Reimplemented in NLNET::CCallbackClient, and NLNET::CCallbackServer. Definition at line 85 of file buf_net_base.h. References NLNET::CBufNetBase::_DisconnectionCallback, NLNET::CBufNetBase::_DisconnectionCbArg, and NLNET::TNetCallback.
00085 { _DisconnectionCallback = cb; _DisconnectionCbArg = arg; } |
|
Sets the max size of the received messages. If receiving a message bigger than the limit, the connection will be dropped. 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) ! Definition at line 109 of file buf_net_base.h. References NLNET::CBufNetBase::_MaxExpectedBlockSize, sint32, and uint32.
00110 { 00111 if ( limit < 0 ) 00112 _MaxExpectedBlockSize = 1048576; 00113 else 00114 _MaxExpectedBlockSize = (uint32)limit; 00115 } |
|
Sets the max size of the sent messages. Note: Limiting of sending not implemented, currently 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) ! Definition at line 126 of file buf_net_base.h. References NLNET::CBufNetBase::_MaxSentBlockSize, sint32, and uint32.
00127 { 00128 if ( limit < 0 ) 00129 _MaxSentBlockSize = 1048576; 00130 else 00131 _MaxSentBlockSize = (uint32)limit; 00132 } |
|
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 ) Definition at line 152 of file buf_client.h. References _BufSock, NLNET::CBufSock::setSizeFlushTrigger(), sint32, and size.
00152 { _BufSock->setSizeFlushTrigger( size ); } |
|
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) Definition at line 147 of file buf_client.h. References _BufSock, NLNET::CBufSock::setTimeFlushTrigger(), and sint32.
00147 { _BufSock->setTimeFlushTrigger( ms ); } |
|
Update the network (call this method evenly).
Definition at line 296 of file buf_client.cpp. References _BufSock, NLNET::CBufSock::advertiseDisconnection(), NLNET::CSock::connected(), NLNET::CTcpSock::disconnect(), NLNET::CBufSock::Sock, and NLNET::CBufSock::update().
00297 { 00298 //nlnettrace( "CBufClient::update" ); 00299 00300 // Update sending 00301 bool sendingok = _BufSock->update(); 00302 00303 // Disconnection event if disconnected 00304 if ( ! ( _BufSock->Sock->connected() && sendingok ) ) 00305 { 00306 if ( _BufSock->Sock->connected() ) 00307 { 00308 _BufSock->Sock->disconnect(); 00309 } 00310 _BufSock->advertiseDisconnection( this, NULL ); 00311 } 00312 } |
|
Definition at line 203 of file buf_client.h. Referenced by CBufClient(). |
|
Definition at line 148 of file buf_net_base.h. |
|
Send buffer and connection.
Definition at line 206 of file buf_client.h. Referenced by bytesDownloaded(), bytesUploaded(), CBufClient(), connect(), connected(), dataAvailable(), disconnect(), displaySendQueueStat(), flush(), getSendQueueSize(), id(), remoteAddress(), send(), setSizeFlushTrigger(), setTimeFlushTrigger(), update(), and ~CBufClient(). |
|
True when the Nagle algorithm must be disabled (TCP_NODELAY).
Definition at line 209 of file buf_client.h. Referenced by connect(). |
|
Previous number of bytes downloaded.
Definition at line 212 of file buf_client.h. Referenced by connect(), and newBytesDownloaded(). |
|
Previous number of bytes uploaded.
Definition at line 215 of file buf_client.h. Referenced by connect(), and newBytesUploaded(). |
|
Receive task.
Definition at line 228 of file buf_client.h. Referenced by CBufClient(), connect(), displayThreadStat(), and ~CBufClient(). |
|
Receive thread.
Definition at line 231 of file buf_client.h. Referenced by connect(), and ~CBufClient(). |