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

#include <EmersonMessagingManager.hpp>

Inheritance diagram for Sirikata::JS::EmersonMessagingManager:
Collaboration diagram for Sirikata::JS::EmersonMessagingManager:

List of all members.

Classes

struct  CommWriteStreamConnectedCBRetryData

Public Member Functions

 EmersonMessagingManager (ObjectHostContext *ctx)
virtual ~EmersonMessagingManager ()
virtual bool handleScriptCommRead (const SpaceObjectReference &src, const SpaceObjectReference &dst, const std::string &payload)=0
bool sendScriptCommMessageReliable (const SpaceObjectReference &sender, const SpaceObjectReference &receiver, const String &msg)
bool sendScriptCommMessageReliable (const SpaceObjectReference &sender, const SpaceObjectReference &receiver, const String &msg, int8 retriesSameStream, int8 retriesNewStream, bool isRetry=false)
void presenceConnected (const SpaceObjectReference &connPresSporef)
void presenceDisconnected (const SpaceObjectReference &disconnPresSporef)

Private Types

typedef
std::tr1::unordered_map
< SpaceObjectReference,
SSTStreamPtr,
SpaceObjectReference::Hasher
StreamMap
typedef
std::tr1::unordered_map
< SpaceObjectReference,
StreamMap,
SpaceObjectReference::Hasher
PresenceStreamMap

Private Member Functions

void setupNewStream (SSTStreamPtr sstStream, bool closePrevious=false)
SSTStreamPtr getStream (const SpaceObjectReference &pres, const SpaceObjectReference &remote)
void clearStreams (const SpaceObjectReference &pres)
void createScriptCommListenerStreamCB (Liveness::Token alive, const SpaceObjectReference &toListenFrom, int err, SSTStreamPtr sstStream)
void handleIncomingSubstream (Liveness::Token alive, int err, SSTStreamPtr streamPtr)
void handleScriptCommStreamRead (Liveness::Token alive, SSTStreamPtr sstptr, String *prevdata, uint8 *buffer, int length)
void scriptCommWriteStreamConnectedCB (Liveness::Token alive, const String &msg, const SpaceObjectReference &sender, const SpaceObjectReference &receiver, int err, SSTStreamPtr streamPtr, CommWriteStreamConnectedCBRetryData retryData)
void writeMessage (Liveness::Token alive, SSTStreamPtr streamPtr, const String &msg, const SpaceObjectReference &sender, const SpaceObjectReference &receiver, int8 retriesSameStream, int8 retriesNewStream)
void writeMessageSubstream (Liveness::Token alive, int err, SSTStreamPtr subStreamPtr, const String &msg, const SpaceObjectReference &sender, const SpaceObjectReference &receiver, int8 retriesSameStream, int8 retriesNewStream)
void writeData (Liveness::Token alive, SSTStreamPtr streamPtr, const String &msg, const SpaceObjectReference &sender, const SpaceObjectReference &receiver)
void removeStream (const SpaceObjectReference &sender, const SpaceObjectReference &receiver)

Private Attributes

ObjectHostContextmMainContext
std::map< SpaceObjectReference,
bool > 
allPres
PresenceStreamMap mStreams

Member Typedef Documentation


Constructor & Destructor Documentation

Sirikata::JS::EmersonMessagingManager::EmersonMessagingManager ( ObjectHostContext ctx)
Sirikata::JS::EmersonMessagingManager::~EmersonMessagingManager ( ) [virtual]

Member Function Documentation

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]
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]
virtual bool Sirikata::JS::EmersonMessagingManager::handleScriptCommRead ( const SpaceObjectReference src,
const SpaceObjectReference dst,
const std::string &  payload 
) [pure virtual]
void Sirikata::JS::EmersonMessagingManager::handleScriptCommStreamRead ( Liveness::Token  alive,
SSTStreamPtr  sstptr,
String *  prevdata,
uint8 *  buffer,
int  length 
) [private]
void Sirikata::JS::EmersonMessagingManager::presenceConnected ( const SpaceObjectReference connPresSporef)
void Sirikata::JS::EmersonMessagingManager::presenceDisconnected ( const SpaceObjectReference disconnPresSporef)
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]
bool Sirikata::JS::EmersonMessagingManager::sendScriptCommMessageReliable ( const SpaceObjectReference sender,
const SpaceObjectReference receiver,
const String &  msg 
)
bool Sirikata::JS::EmersonMessagingManager::sendScriptCommMessageReliable ( const SpaceObjectReference sender,
const SpaceObjectReference receiver,
const String &  msg,
int8  retriesSameStream,
int8  retriesNewStream,
bool  isRetry = false 
)
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]
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]

Member Data Documentation


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