Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

CL_NetSession_Client Class Reference

#include <netsession_client.h>

Inheritance diagram for CL_NetSession_Client:

Inheritance graph
[legend]
Collaboration diagram for CL_NetSession_Client:

Collaboration graph
[legend]
List of all members.

Public Methods

 CL_NetSession_Client (int ip_addr, int port, const std::string &game_id, CL_ConnectionProvider *provider)
virtual ~CL_NetSession_Client ()
virtual CL_NetComputerget_server ()
virtual CL_NetGroupget_all ()
virtual bool peek (int channel) const
virtual CL_NetMessage receive (int channel, int timeout=-1)
virtual void send (const int dest_channel, const CL_NetGroup &dest, const CL_NetMessage &message, bool reliable=true)
virtual CL_NetComputer receive_computer_leave ()
virtual CL_NetComputer receive_computer_join ()
virtual CL_NetComputer receive_computer_rejoin ()
virtual bool receive_session_closed ()
virtual int access_status (int channel) const
virtual bool is_writable (int channel) const
virtual bool is_readable (int channel) const
virtual int receive_access_changed ()
virtual void set_access (int channel, const CL_NetComputer &computer, int access_rights=ACCESS_CHANNEL_READ|ACCESS_CHANNEL_WRITE)
virtual void set_access (int channel, const CL_NetGroup &group, int access_rights=ACCESS_CHANNEL_READ|ACCESS_CHANNEL_WRITE)

Protected Methods

virtual void keep_alive ()

Private Methods

CL_NetChannelQueue_Clientfind_queue (int netchannel) const
CL_NetChannelQueue_Clientcreate_queue (int netchannel)
void check_trigger ()
virtual void run ()

Private Attributes

CL_Connectiontcp_connection
CL_UDPConnectionudp_connection
std::list<CL_NetChannelQueue_Client*> netchannels
std::queue<CL_NetChannelQueue_Client*> access_queue
int our_id
CL_NetComputer server
CL_NetGroup all
CL_Mutexmutex
CL_Threadthread
volatile bool exit_thread
friend CL_NetComputer_Server

Constructor & Destructor Documentation

CL_NetSession_Client::CL_NetSession_Client ( int ip_addr,
int port,
const std::string & game_id,
CL_ConnectionProvider * provider )
 

virtual CL_NetSession_Client::~CL_NetSession_Client ( ) [virtual]
 


Member Function Documentation

virtual int CL_NetSession_Client::access_status ( int channel ) const [virtual]
 

Reimplemented from CL_NetSession_Generic.

void CL_NetSession_Client::check_trigger ( ) [private]
 

CL_NetChannelQueue_Client* CL_NetSession_Client::create_queue ( int netchannel ) [private]
 

CL_NetChannelQueue_Client* CL_NetSession_Client::find_queue ( int netchannel ) const [private]
 

virtual CL_NetGroup& CL_NetSession_Client::get_all ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual CL_NetComputer& CL_NetSession_Client::get_server ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual bool CL_NetSession_Client::is_readable ( int channel ) const [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual bool CL_NetSession_Client::is_writable ( int channel ) const [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual void CL_NetSession_Client::keep_alive ( ) [protected, virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual bool CL_NetSession_Client::peek ( int channel ) const [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual CL_NetMessage CL_NetSession_Client::receive ( int channel,
int timeout = -1 ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual int CL_NetSession_Client::receive_access_changed ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual CL_NetComputer CL_NetSession_Client::receive_computer_join ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual CL_NetComputer CL_NetSession_Client::receive_computer_leave ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual CL_NetComputer CL_NetSession_Client::receive_computer_rejoin ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual bool CL_NetSession_Client::receive_session_closed ( ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual void CL_NetSession_Client::run ( ) [private, virtual]
 

Reimplemented from CL_Runnable.

virtual void CL_NetSession_Client::send ( const int dest_channel,
const CL_NetGroup & dest,
const CL_NetMessage & message,
bool reliable = true ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual void CL_NetSession_Client::set_access ( int channel,
const CL_NetGroup & group,
int access_rights = ACCESS_CHANNEL_READ|ACCESS_CHANNEL_WRITE ) [virtual]
 

Reimplemented from CL_NetSession_Generic.

virtual void CL_NetSession_Client::set_access ( int channel,
const CL_NetComputer & computer,
int access_rights = ACCESS_CHANNEL_READ|ACCESS_CHANNEL_WRITE ) [virtual]
 


Member Data Documentation

friend CL_NetSession_Client::CL_NetComputer_Server [private]
 

Definition at line 110 of file netsession_client.h.

std::queue<CL_NetChannelQueue_Client*> CL_NetSession_Client::access_queue [private]
 

Definition at line 97 of file netsession_client.h.

CL_NetGroup CL_NetSession_Client::all [private]
 

Definition at line 101 of file netsession_client.h.

volatile bool CL_NetSession_Client::exit_thread [private]
 

Definition at line 106 of file netsession_client.h.

CL_Mutex* CL_NetSession_Client::mutex [private]
 

Definition at line 104 of file netsession_client.h.

std::list<CL_NetChannelQueue_Client*> CL_NetSession_Client::netchannels [private]
 

Definition at line 96 of file netsession_client.h.

int CL_NetSession_Client::our_id [private]
 

Definition at line 98 of file netsession_client.h.

CL_NetComputer CL_NetSession_Client::server [private]
 

Definition at line 100 of file netsession_client.h.

CL_Connection* CL_NetSession_Client::tcp_connection [private]
 

Definition at line 94 of file netsession_client.h.

CL_Thread* CL_NetSession_Client::thread [private]
 

Definition at line 105 of file netsession_client.h.

CL_UDPConnection* CL_NetSession_Client::udp_connection [private]
 

Definition at line 95 of file netsession_client.h.


The documentation for this class was generated from the following file:
Generated at Wed Apr 4 19:57:16 2001 for ClanLib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001