Sirikata
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes
Sirikata::TCPSpaceNetwork Class Reference

#include <TCPSpaceNetwork.hpp>

Inheritance diagram for Sirikata::TCPSpaceNetwork:
Collaboration diagram for Sirikata::TCPSpaceNetwork:

List of all members.

Classes

struct  RemoteData
struct  RemoteSession
 RemoteSession is the data structure that ensures the appearance of a continuous connection to a remote server. More...
struct  RemoteStream
class  TCPReceiveStream
class  TCPSendStream

Public Member Functions

 TCPSpaceNetwork (SpaceContext *ctx)
virtual ~TCPSpaceNetwork ()
virtual void setSendListener (SendListener *sl)
virtual void listen (const ServerID &addr, ReceiveListener *receive_listener)
virtual SendStreamconnect (Network::IOStrand *strand, const ServerID &addr)

Private Types

typedef std::tr1::shared_ptr
< RemoteStream
RemoteStreamPtr
typedef std::tr1::weak_ptr
< RemoteStream
RemoteStreamWPtr
typedef
std::tr1::unordered_map
< ServerID, RemoteStreamPtr
RemoteStreamMap
typedef
std::tr1::unordered_map
< Address4, RemoteStreamPtr,
Address4::Hasher
RemoteNetStreamMap
typedef std::tr1::shared_ptr
< RemoteSession
RemoteSessionPtr
typedef std::tr1::weak_ptr
< RemoteSession
RemoteSessionWPtr
typedef
std::tr1::unordered_map
< ServerID, TCPSendStream * > 
SendStreamMap
typedef
std::tr1::unordered_map
< ServerID, TCPReceiveStream * > 
ReceiveStreamMap
typedef
std::tr1::unordered_map
< ServerID, RemoteData * > 
RemoteDataMap
typedef std::set
< Sirikata::Network::IOTimerPtr
TimerSet
typedef std::tr1::shared_ptr
< TCPReceiveStream * > 
IndirectTCPReceiveStream

Private Member Functions

RemoteDatagetRemoteData (ServerID sid)
RemoteSessionPtr getRemoteSession (ServerID sid)
TCPSendStreamgetNewSendStream (ServerID sid)
TCPReceiveStreamgetNewReceiveStream (ServerID sid)
RemoteStreamPtr getNewOutgoingStream (ServerID sid, Address4 remote_net, RemoteStream::Initiator init)
RemoteStreamPtr getNewIncomingStream (Address4 remote_net, RemoteStream::Initiator init, Sirikata::Network::Stream *strm)
void finishListen (ServerID resolved_sid, Address4 addr, ReceiveListener *receive_listener)
TCPSendStreamopenConnection (Network::IOStrand *strand, const ServerID &dest)
void finishOpenConnection (const ServerID &dest, ServerID resolved_dest, Address4 addr)
TCPReceiveStreamhandleConnectedStream (RemoteStreamPtr source_stream)
void handleDisconnectedStream (const RemoteStreamPtr &wstream)
void sendServerIntro (const RemoteStreamPtr &out_stream)
void handleClosingStreamTimeout (Sirikata::Network::IOTimerPtr timer, RemoteStreamPtr &wstream)
void newStreamCallback (Sirikata::Network::Stream *strm, Sirikata::Network::Stream::SetCallbacks &cb)
void connectionCallback (RemoteStreamWPtr wstream, const Sirikata::Network::Stream::ConnectionStatus status, const std::string &reason)
void bytesReceivedCallback (RemoteStreamWPtr wstream, IndirectTCPReceiveStream ind_recv_strm, Chunk &data, const Sirikata::Network::Stream::PauseReceiveCallback &pause)
void readySendCallback (RemoteStreamWPtr wstream)

Private Attributes

RemoteDataMap mRemoteData
boost::recursive_mutex mRemoteDataMutex
Sirikata::PluginManager mPluginManager
String mStreamPlugin
Sirikata::OptionSetmListenOptions
Sirikata::OptionSetmSendOptions
Network::IOStrandmIOStrand
Network::IOWorkmIOWork
RemoteStreamMap mClosingStreams
TimerSet mClosingStreamTimers
Address4 mListenAddress
Sirikata::Network::StreamListenermListener
SendListener * mSendListener
ReceiveListener * mReceiveListener
RemoteNetStreamMap mPendingStreams

Member Typedef Documentation

typedef std::tr1::unordered_map<ServerID, TCPReceiveStream*> Sirikata::TCPSpaceNetwork::ReceiveStreamMap [private]
typedef std::tr1::unordered_map<ServerID, RemoteData*> Sirikata::TCPSpaceNetwork::RemoteDataMap [private]
typedef std::tr1::shared_ptr<RemoteSession> Sirikata::TCPSpaceNetwork::RemoteSessionPtr [private]
typedef std::tr1::weak_ptr<RemoteSession> Sirikata::TCPSpaceNetwork::RemoteSessionWPtr [private]
typedef std::tr1::unordered_map<ServerID, RemoteStreamPtr> Sirikata::TCPSpaceNetwork::RemoteStreamMap [private]
typedef std::tr1::shared_ptr<RemoteStream> Sirikata::TCPSpaceNetwork::RemoteStreamPtr [private]
typedef std::tr1::weak_ptr<RemoteStream> Sirikata::TCPSpaceNetwork::RemoteStreamWPtr [private]
typedef std::tr1::unordered_map<ServerID, TCPSendStream*> Sirikata::TCPSpaceNetwork::SendStreamMap [private]

Constructor & Destructor Documentation

Sirikata::TCPSpaceNetwork::TCPSpaceNetwork ( SpaceContext ctx)
Sirikata::TCPSpaceNetwork::~TCPSpaceNetwork ( ) [virtual]

Member Function Documentation

void Sirikata::TCPSpaceNetwork::bytesReceivedCallback ( RemoteStreamWPtr  wstream,
IndirectTCPReceiveStream  ind_recv_strm,
Chunk data,
const Sirikata::Network::Stream::PauseReceiveCallback pause 
) [private]
SpaceNetwork::SendStream * Sirikata::TCPSpaceNetwork::connect ( Network::IOStrand strand,
const ServerID &  addr 
) [virtual]

Implements Sirikata::SpaceNetwork.

References openConnection().

void Sirikata::TCPSpaceNetwork::connectionCallback ( RemoteStreamWPtr  wstream,
const Sirikata::Network::Stream::ConnectionStatus  status,
const std::string &  reason 
) [private]
void Sirikata::TCPSpaceNetwork::finishListen ( ServerID  resolved_sid,
Address4  addr,
ReceiveListener receive_listener 
) [private]
void Sirikata::TCPSpaceNetwork::finishOpenConnection ( const ServerID &  dest,
ServerID  resolved_dest,
Address4  addr 
) [private]
TCPSpaceNetwork::RemoteStreamPtr Sirikata::TCPSpaceNetwork::getNewIncomingStream ( Address4  remote_net,
RemoteStream::Initiator  init,
Sirikata::Network::Stream strm 
) [private]

Referenced by newStreamCallback().

TCPSpaceNetwork::RemoteStreamPtr Sirikata::TCPSpaceNetwork::getNewOutgoingStream ( ServerID  sid,
Address4  remote_net,
RemoteStream::Initiator  init 
) [private]
TCPSpaceNetwork::TCPReceiveStream * Sirikata::TCPSpaceNetwork::getNewReceiveStream ( ServerID  sid) [private]
TCPSpaceNetwork::TCPSendStream * Sirikata::TCPSpaceNetwork::getNewSendStream ( ServerID  sid) [private]
TCPSpaceNetwork::RemoteData * Sirikata::TCPSpaceNetwork::getRemoteData ( ServerID  sid) [private]
TCPSpaceNetwork::RemoteSessionPtr Sirikata::TCPSpaceNetwork::getRemoteSession ( ServerID  sid) [private]
void Sirikata::TCPSpaceNetwork::handleClosingStreamTimeout ( Sirikata::Network::IOTimerPtr  timer,
RemoteStreamPtr wstream 
) [private]
TCPSpaceNetwork::TCPReceiveStream * Sirikata::TCPSpaceNetwork::handleConnectedStream ( RemoteStreamPtr  source_stream) [private]
void Sirikata::TCPSpaceNetwork::handleDisconnectedStream ( const RemoteStreamPtr wstream) [private]
void Sirikata::TCPSpaceNetwork::listen ( const ServerID &  addr,
ReceiveListener receive_listener 
) [virtual]
void Sirikata::TCPSpaceNetwork::newStreamCallback ( Sirikata::Network::Stream strm,
Sirikata::Network::Stream::SetCallbacks cb 
) [private]
TCPSpaceNetwork::TCPSendStream * Sirikata::TCPSpaceNetwork::openConnection ( Network::IOStrand strand,
const ServerID &  dest 
) [private]
void Sirikata::TCPSpaceNetwork::readySendCallback ( RemoteStreamWPtr  wstream) [private]
void Sirikata::TCPSpaceNetwork::sendServerIntro ( const RemoteStreamPtr out_stream) [private]
void Sirikata::TCPSpaceNetwork::setSendListener ( SendListener sl) [virtual]

References mSendListener.


Member Data Documentation

Referenced by finishListen().

Referenced by TCPSpaceNetwork().

ReceiveListener* Sirikata::TCPSpaceNetwork::mReceiveListener [private]

Referenced by getRemoteData(), and ~TCPSpaceNetwork().

boost::recursive_mutex Sirikata::TCPSpaceNetwork::mRemoteDataMutex [private]

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