Sirikata
|
#include <TCPSpaceNetwork.hpp>
typedef std::tr1::shared_ptr<TCPReceiveStream*> Sirikata::TCPSpaceNetwork::IndirectTCPReceiveStream [private] |
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::unordered_map<Address4, RemoteStreamPtr, Address4::Hasher> Sirikata::TCPSpaceNetwork::RemoteNetStreamMap [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] |
typedef std::set<Sirikata::Network::IOTimerPtr> Sirikata::TCPSpaceNetwork::TimerSet [private] |
Sirikata::TCPSpaceNetwork::TCPSpaceNetwork | ( | SpaceContext * | ctx | ) |
References Sirikata::Network::IOService::createStrand(), Sirikata::FactoryWithOptionsImpl< T, Ftype >::getConstructor(), Sirikata::FactoryWithOptionsImpl< T, Ftype >::getOptionParser(), Sirikata::GetOptionValue< String >(), Sirikata::Network::StreamFactory::getSingleton(), Sirikata::Network::StreamListenerFactory::getSingleton(), Sirikata::Context::ioService, Sirikata::SpaceNetwork::mContext, mIOStrand, mIOWork, mListener, mListenOptions, mSendOptions, and mStreamPlugin.
Sirikata::TCPSpaceNetwork::~TCPSpaceNetwork | ( | ) | [virtual] |
References mClosingStreamTimers, mIOStrand, mIOWork, mListener, and mRemoteData.
void Sirikata::TCPSpaceNetwork::bytesReceivedCallback | ( | RemoteStreamWPtr | wstream, |
IndirectTCPReceiveStream | ind_recv_strm, | ||
Chunk & | data, | ||
const Sirikata::Network::Stream::PauseReceiveCallback & | pause | ||
) | [private] |
References Sirikata::Logging::error, handleConnectedStream(), Sirikata::Logging::info, Sirikata::Logging::insane, LOG_INVALID_MESSAGE, mPendingStreams, mReceiveListener, Sirikata::SpaceNetwork::ReceiveListener::networkReceivedData(), Sirikata::parsePBJMessage(), and TCPNET_LOG.
Referenced by finishOpenConnection(), and newStreamCallback().
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] |
References Sirikata::Network::Stream::Connected, Sirikata::Network::Stream::ConnectionFailed, Sirikata::Network::Stream::Disconnected, Sirikata::Logging::error, handleConnectedStream(), handleDisconnectedStream(), Sirikata::Logging::info, sendServerIntro(), TCPNET_LOG, and Sirikata::Logging::warning.
Referenced by finishOpenConnection(), and newStreamCallback().
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] |
References bytesReceivedCallback(), connectionCallback(), Sirikata::convertAddress4ToSirikata(), Sirikata::Logging::error, getNewOutgoingStream(), getNewReceiveStream(), Sirikata::Network::Stream::ignoreSubstreamCallback(), Sirikata::Logging::info, Sirikata::Address4::Null, readySendCallback(), TCPNET_LOG, and Sirikata::TCPSpaceNetwork::RemoteStream::Us.
Referenced by openConnection().
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] |
References getRemoteData(), mIOStrand, mReceiveListener, mRemoteDataMutex, Sirikata::SpaceNetwork::ReceiveListener::networkReceivedConnection(), Sirikata::Provider< SpaceNetworkConnectionListener * >::notify(), Sirikata::TCPSpaceNetwork::RemoteData::receive, and Sirikata::TCPSpaceNetwork::RemoteData::session.
Referenced by finishOpenConnection(), and handleConnectedStream().
TCPSpaceNetwork::TCPSendStream * Sirikata::TCPSpaceNetwork::getNewSendStream | ( | ServerID | sid | ) | [private] |
References getRemoteData(), mRemoteDataMutex, mSendListener, Sirikata::SpaceNetwork::SendListener::networkReadyToSend(), Sirikata::Provider< SpaceNetworkConnectionListener * >::notify(), Sirikata::TCPSpaceNetwork::RemoteData::send, and Sirikata::TCPSpaceNetwork::RemoteData::session.
Referenced by handleConnectedStream(), and openConnection().
TCPSpaceNetwork::RemoteData * Sirikata::TCPSpaceNetwork::getRemoteData | ( | ServerID | sid | ) | [private] |
References mRemoteData, and mRemoteDataMutex.
Referenced by getNewReceiveStream(), getNewSendStream(), and getRemoteSession().
TCPSpaceNetwork::RemoteSessionPtr Sirikata::TCPSpaceNetwork::getRemoteSession | ( | ServerID | sid | ) | [private] |
References getRemoteData(), mRemoteDataMutex, and Sirikata::TCPSpaceNetwork::RemoteData::session.
Referenced by getNewOutgoingStream(), handleConnectedStream(), and handleDisconnectedStream().
void Sirikata::TCPSpaceNetwork::handleClosingStreamTimeout | ( | Sirikata::Network::IOTimerPtr | timer, |
RemoteStreamPtr & | wstream | ||
) | [private] |
References Sirikata::Logging::error, Sirikata::Logging::info, mClosingStreamTimers, and TCPNET_LOG.
Referenced by handleConnectedStream().
TCPSpaceNetwork::TCPReceiveStream * Sirikata::TCPSpaceNetwork::handleConnectedStream | ( | RemoteStreamPtr | source_stream | ) | [private] |
References Sirikata::Network::IOTimer::create(), Sirikata::Logging::fatal, getNewReceiveStream(), getNewSendStream(), getRemoteSession(), handleClosingStreamTimeout(), Sirikata::SpaceContext::id(), Sirikata::Logging::info, Sirikata::TCPSpaceNetwork::TCPReceiveStream::logical_endpoint, mClosingStreamTimers, Sirikata::SpaceNetwork::mContext, mIOStrand, mSendListener, Sirikata::SpaceNetwork::SendListener::networkReadyToSend(), Sirikata::Provider< SpaceNetworkConnectionListener * >::notify(), Sirikata::SpaceNetworkConnectionListener::onSpaceNetworkConnected(), TCPNET_LOG, Sirikata::TCPSpaceNetwork::RemoteStream::Them, and Sirikata::TCPSpaceNetwork::RemoteStream::Us.
Referenced by bytesReceivedCallback(), and connectionCallback().
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] |
References finishOpenConnection(), getNewSendStream(), Sirikata::ServerIDMap::lookupInternal(), Sirikata::SpaceNetwork::mServerIDMap, and Sirikata::Network::IOStrand::wrap().
Referenced by connect().
void Sirikata::TCPSpaceNetwork::readySendCallback | ( | RemoteStreamWPtr | wstream | ) | [private] |
References mSendListener, and Sirikata::SpaceNetwork::SendListener::networkReadyToSend().
Referenced by finishOpenConnection(), and newStreamCallback().
void Sirikata::TCPSpaceNetwork::sendServerIntro | ( | const RemoteStreamPtr & | out_stream | ) | [private] |
References Sirikata::SpaceContext::id(), Sirikata::SpaceNetwork::mContext, Sirikata::Network::ReliableOrdered, and Sirikata::serializePBJMessage().
Referenced by connectionCallback().
void Sirikata::TCPSpaceNetwork::setSendListener | ( | SendListener * | sl | ) | [virtual] |
References mSendListener.
Referenced by handleClosingStreamTimeout(), handleConnectedStream(), and ~TCPSpaceNetwork().
Referenced by getNewOutgoingStream(), getNewReceiveStream(), handleConnectedStream(), TCPSpaceNetwork(), and ~TCPSpaceNetwork().
Referenced by TCPSpaceNetwork(), and ~TCPSpaceNetwork().
Referenced by finishListen().
Referenced by finishListen(), TCPSpaceNetwork(), and ~TCPSpaceNetwork().
Referenced by TCPSpaceNetwork().
Referenced by bytesReceivedCallback(), and newStreamCallback().
ReceiveListener* Sirikata::TCPSpaceNetwork::mReceiveListener [private] |
Referenced by bytesReceivedCallback(), getNewReceiveStream(), and listen().
Referenced by getRemoteData(), and ~TCPSpaceNetwork().
boost::recursive_mutex Sirikata::TCPSpaceNetwork::mRemoteDataMutex [private] |
Referenced by getNewOutgoingStream(), getNewReceiveStream(), getNewSendStream(), getRemoteData(), and getRemoteSession().
SendListener* Sirikata::TCPSpaceNetwork::mSendListener [private] |
Referenced by getNewSendStream(), handleConnectedStream(), readySendCallback(), and setSendListener().
Referenced by getNewOutgoingStream(), and TCPSpaceNetwork().
String Sirikata::TCPSpaceNetwork::mStreamPlugin [private] |
Referenced by getNewOutgoingStream(), and TCPSpaceNetwork().