The Nebula Device 3: Net::StdTcpClientConnection Class Reference

The Nebula Device 3

Net::StdTcpClientConnection Class Reference

#include <stdtcpclientconnection.h>

Inheritance diagram for Net::StdTcpClientConnection:

Core::RefCounted Net::TcpClientConnection Net::MessageClientConnection

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.

(C) 2006 Radon Labs GmbH

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
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

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Member Function Documentation

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.