Nebula
Loading...
Searching...
No Matches
Net::StdTcpClientConnection Class Reference

#include <stdtcpclientconnection.h>

Detailed Description

A TcpClientConnection represents a connected TcpClient on the server side.

TcpClientConnection objects are created and maintained by a TcpServer object over the lifetime of a client connection. TcpClientConnection objects are used to communicate directly with the specific client represented by the connection object.

TcpClientConnection objects are generally non-blocking. To receive data from the client, call the Recv() method until it returns true, this indicates that received data is available in the RecvStream. To read data from the RecvStream attach a StreamReader which matches the data format your expecting from the client (e.g. BinaryReader, TextReader, XmlReader, etc...). To send data back to the client just do the reverse: write data to the SendStream, and at any time call the Send() method which will send all data accumulated in the SendStream to the client.

Inherits Core::RefCounted.

Public Member Functions

 StdTcpClientConnection ()
 constructor
 
virtual ~StdTcpClientConnection ()
 destructor
 
virtual bool Connect (const Ptr< Socket > &s)
 connect using provided socket
 
bool IsConnected () const
 get the connection status
 
virtual void Shutdown ()
 shutdown the connection
 
const IpAddressGetClientAddress () const
 get the client's ip address
 
virtual Socket::Result Send ()
 send accumulated content of send stream to server
 
virtual Socket::Result Send (const Ptr< IO::Stream > &stream)
 directly send a stream to the server, often prevents a memory copy
 
virtual const Ptr< IO::Stream > & GetSendStream ()
 access to send stream
 
virtual Socket::Result Recv ()
 receive data from server into recv stream
 
virtual const Ptr< IO::Stream > & GetRecvStream ()
 access to recv stream
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
int GetRefCount () const
 get the current refcount
 
void AddRef ()
 increment refcount by one
 
void Release ()
 decrement refcount and destroy object if refcount is zero
 
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
 
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
 
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
 
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
 
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
 
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
 
const Util::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Protected Attributes

Ptr< Socketsocket
 
Ptr< IO::StreamsendStream
 
Ptr< IO::StreamrecvStream
 

Private Member Functions

 __DeclareClass (StdTcpClientConnection)
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Constructor & Destructor Documentation

◆ StdTcpClientConnection()

Net::StdTcpClientConnection::StdTcpClientConnection ( )

constructor

◆ ~StdTcpClientConnection()

Net::StdTcpClientConnection::~StdTcpClientConnection ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

Net::StdTcpClientConnection::__DeclareClass ( StdTcpClientConnection )
private

◆ Connect()

bool Net::StdTcpClientConnection::Connect ( const Ptr< Socket > & s)
virtual

connect using provided socket

◆ GetClientAddress()

const IpAddress & Net::StdTcpClientConnection::GetClientAddress ( ) const

get the client's ip address

◆ GetRecvStream()

const Ptr< Stream > & Net::StdTcpClientConnection::GetRecvStream ( )
virtual

access to recv stream

◆ GetSendStream()

const Ptr< Stream > & Net::StdTcpClientConnection::GetSendStream ( )
virtual

access to send stream

◆ IsConnected()

bool Net::StdTcpClientConnection::IsConnected ( ) const

get the connection status

◆ Recv()

Socket::Result Net::StdTcpClientConnection::Recv ( )
virtual

receive data from server into recv stream

◆ Send() [1/2]

Socket::Result Net::StdTcpClientConnection::Send ( )
virtual

send accumulated content of send stream to server

◆ Send() [2/2]

Socket::Result Net::StdTcpClientConnection::Send ( const Ptr< IO::Stream > & stream)
virtual

directly send a stream to the server, often prevents a memory copy

◆ Shutdown()

void Net::StdTcpClientConnection::Shutdown ( )
virtual

shutdown the connection

Member Data Documentation

◆ recvStream

Ptr<IO::Stream> Net::StdTcpClientConnection::recvStream
protected

◆ sendStream

Ptr<IO::Stream> Net::StdTcpClientConnection::sendStream
protected

◆ socket

Ptr<Socket> Net::StdTcpClientConnection::socket
protected

The documentation for this class was generated from the following files: