Sirikata
|
#include <EmersonMessagingManager.hpp>
typedef std::tr1::unordered_map<SpaceObjectReference, StreamMap, SpaceObjectReference::Hasher> Sirikata::JS::EmersonMessagingManager::PresenceStreamMap [private] |
typedef std::tr1::unordered_map<SpaceObjectReference, SSTStreamPtr, SpaceObjectReference::Hasher> Sirikata::JS::EmersonMessagingManager::StreamMap [private] |
Sirikata::JS::EmersonMessagingManager::EmersonMessagingManager | ( | ObjectHostContext * | ctx | ) |
Sirikata::JS::EmersonMessagingManager::~EmersonMessagingManager | ( | ) | [virtual] |
void Sirikata::JS::EmersonMessagingManager::clearStreams | ( | const SpaceObjectReference & | pres | ) | [private] |
References mStreams.
Referenced by presenceDisconnected().
void Sirikata::JS::EmersonMessagingManager::createScriptCommListenerStreamCB | ( | Liveness::Token | alive, |
const SpaceObjectReference & | toListenFrom, | ||
int | err, | ||
SSTStreamPtr | sstStream | ||
) | [private] |
References Sirikata::Logging::error, JSLOG, setupNewStream(), and SST_IMPL_SUCCESS.
Referenced by presenceConnected().
SSTStreamPtr Sirikata::JS::EmersonMessagingManager::getStream | ( | const SpaceObjectReference & | pres, |
const SpaceObjectReference & | remote | ||
) | [private] |
References mStreams.
Referenced by sendScriptCommMessageReliable().
void Sirikata::JS::EmersonMessagingManager::handleIncomingSubstream | ( | Liveness::Token | alive, |
int | err, | ||
SSTStreamPtr | streamPtr | ||
) | [private] |
References handleScriptCommStreamRead(), Sirikata::Liveness::livenessToken(), and SST_IMPL_SUCCESS.
Referenced by setupNewStream().
virtual bool Sirikata::JS::EmersonMessagingManager::handleScriptCommRead | ( | const SpaceObjectReference & | src, |
const SpaceObjectReference & | dst, | ||
const std::string & | payload | ||
) | [pure virtual] |
Implemented in Sirikata::JS::EmersonScript.
Referenced by handleScriptCommStreamRead().
void Sirikata::JS::EmersonMessagingManager::handleScriptCommStreamRead | ( | Liveness::Token | alive, |
SSTStreamPtr | sstptr, | ||
String * | prevdata, | ||
uint8 * | buffer, | ||
int | length | ||
) | [private] |
References handleScriptCommRead(), and Sirikata::Network::Frame::parse().
Referenced by handleIncomingSubstream().
void Sirikata::JS::EmersonMessagingManager::presenceConnected | ( | const SpaceObjectReference & | connPresSporef | ) |
References allPres, createScriptCommListenerStreamCB(), EMERSON_RELIABLE_COMMUNICATION_PORT, Sirikata::SST::ConnectionManager< EndPointType >::listen(), Sirikata::Liveness::livenessToken(), mMainContext, and Sirikata::ObjectHostContext::sstConnMgr().
Referenced by Sirikata::JS::EmersonScript::iOnConnected().
void Sirikata::JS::EmersonMessagingManager::presenceDisconnected | ( | const SpaceObjectReference & | disconnPresSporef | ) |
References allPres, clearStreams(), Sirikata::Logging::error, and JSLOG.
Referenced by Sirikata::JS::EmersonScript::iOnDisconnected().
void Sirikata::JS::EmersonMessagingManager::removeStream | ( | const SpaceObjectReference & | sender, |
const SpaceObjectReference & | receiver | ||
) | [private] |
References mStreams.
Referenced by sendScriptCommMessageReliable().
void Sirikata::JS::EmersonMessagingManager::scriptCommWriteStreamConnectedCB | ( | Liveness::Token | alive, |
const String & | msg, | ||
const SpaceObjectReference & | sender, | ||
const SpaceObjectReference & | receiver, | ||
int | err, | ||
SSTStreamPtr | streamPtr, | ||
CommWriteStreamConnectedCBRetryData | retryData | ||
) | [private] |
References Sirikata::JS::EmersonMessagingManager::CommWriteStreamConnectedCBRetryData::isRetry, Sirikata::Liveness::livenessToken(), Sirikata::JS::EmersonMessagingManager::CommWriteStreamConnectedCBRetryData::retriesNewStream, Sirikata::JS::EmersonMessagingManager::CommWriteStreamConnectedCBRetryData::retriesSameStream, sendScriptCommMessageReliable(), setupNewStream(), SST_IMPL_SUCCESS, and writeMessage().
Referenced by sendScriptCommMessageReliable().
bool Sirikata::JS::EmersonMessagingManager::sendScriptCommMessageReliable | ( | const SpaceObjectReference & | sender, |
const SpaceObjectReference & | receiver, | ||
const String & | msg | ||
) |
Referenced by scriptCommWriteStreamConnectedCB(), writeMessage(), and writeMessageSubstream().
bool Sirikata::JS::EmersonMessagingManager::sendScriptCommMessageReliable | ( | const SpaceObjectReference & | sender, |
const SpaceObjectReference & | receiver, | ||
const String & | msg, | ||
int8 | retriesSameStream, | ||
int8 | retriesNewStream, | ||
bool | isRetry = false |
||
) |
References Sirikata::SST::ConnectionManager< EndPointType >::connectStream(), EMERSON_RELIABLE_COMMUNICATION_PORT, Sirikata::Logging::error, getStream(), Sirikata::JS::EmersonMessagingManager::CommWriteStreamConnectedCBRetryData::isRetry, JSLOG, Sirikata::Liveness::livenessToken(), mMainContext, removeStream(), Sirikata::JS::EmersonMessagingManager::CommWriteStreamConnectedCBRetryData::retriesNewStream, Sirikata::JS::EmersonMessagingManager::CommWriteStreamConnectedCBRetryData::retriesSameStream, scriptCommWriteStreamConnectedCB(), Sirikata::ObjectHostContext::sstConnMgr(), and writeMessage().
void Sirikata::JS::EmersonMessagingManager::setupNewStream | ( | SSTStreamPtr | sstStream, |
bool | closePrevious = false |
||
) | [private] |
void Sirikata::JS::EmersonMessagingManager::writeData | ( | Liveness::Token | alive, |
SSTStreamPtr | streamPtr, | ||
const String & | msg, | ||
const SpaceObjectReference & | sender, | ||
const SpaceObjectReference & | receiver | ||
) | [private] |
void Sirikata::JS::EmersonMessagingManager::writeMessage | ( | Liveness::Token | alive, |
SSTStreamPtr | streamPtr, | ||
const String & | msg, | ||
const SpaceObjectReference & | sender, | ||
const SpaceObjectReference & | receiver, | ||
int8 | retriesSameStream, | ||
int8 | retriesNewStream | ||
) | [private] |
References EMERSON_RELIABLE_COMMUNICATION_PORT, sendScriptCommMessageReliable(), and writeMessageSubstream().
Referenced by scriptCommWriteStreamConnectedCB(), and sendScriptCommMessageReliable().
void Sirikata::JS::EmersonMessagingManager::writeMessageSubstream | ( | Liveness::Token | alive, |
int | err, | ||
SSTStreamPtr | subStreamPtr, | ||
const String & | msg, | ||
const SpaceObjectReference & | sender, | ||
const SpaceObjectReference & | receiver, | ||
int8 | retriesSameStream, | ||
int8 | retriesNewStream | ||
) | [private] |
References Sirikata::Liveness::livenessToken(), sendScriptCommMessageReliable(), SST_IMPL_SUCCESS, Sirikata::Network::Frame::write(), and writeData().
Referenced by writeMessage().
std::map<SpaceObjectReference, bool> Sirikata::JS::EmersonMessagingManager::allPres [private] |
Referenced by presenceConnected(), and presenceDisconnected().
Referenced by presenceConnected(), sendScriptCommMessageReliable(), writeData(), and ~EmersonMessagingManager().
Referenced by clearStreams(), getStream(), removeStream(), setupNewStream(), and ~EmersonMessagingManager().