Sirikata
Classes | Public Member Functions | Private Types | Private Attributes
Sirikata::SessionManager::ObjectConnections Class Reference
Collaboration diagram for Sirikata::SessionManager::ObjectConnections:

List of all members.

Classes

struct  ObjectInfo

Public Member Functions

 ObjectConnections (SessionManager *_parent)
void add (const SpaceObjectReference &sporef_objid, ConnectingInfo ci, InternalConnectedCallback connect_cb, MigratedCallback migrate_cb, StreamCreatedCallback stream_created_cb, DisconnectedCallback disconnected_cb)
bool exists (const SpaceObjectReference &sporef_objid)
void clearSeqno (const SpaceObjectReference &sporef_objid)
uint64 getSeqno (const SpaceObjectReference &sporef_objid)
uint64 updateSeqno (const SpaceObjectReference &sporef_objid)
bool validSeqno (const SpaceObjectReference &sporef_objid)
ConnectingInfoconnectingTo (const SpaceObjectReference &obj, ServerID connecting_to)
void startMigration (const SpaceObjectReference &objid, ServerID migrating_to)
WARN_UNUSED
InternalConnectedCallback
getConnectCallback (const SpaceObjectReference &sporef_objid)
ServerID handleConnectSuccess (const SpaceObjectReference &sporef_obj, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const BoundingSphere3f &bnds, const String &mesh, const String &phy, bool do_cb)
void handleConnectError (const SpaceObjectReference &sporef_objid)
void handleConnectStream (const SpaceObjectReference &sporef_objid, ConnectionEvent after, bool do_cb)
void remove (const SpaceObjectReference &obj)
void handleUnderlyingDisconnect (ServerID sid, const String &reason)
void gracefulDisconnect (const SpaceObjectReference &sporef)
void disconnectWithCode (const SpaceObjectReference &sporef, const SpaceObjectReference &connectedAs, Disconnect::Code code)
ServerID getConnectedServer (const SpaceObjectReference &sporef_obj_id, bool allow_connecting=false)
ServerID getConnectingToServer (const SpaceObjectReference &sporef_obj_id)
ServerID getMigratingToServer (const SpaceObjectReference &sporef_obj_id)
void invokeDeferredCallbacks ()

Private Types

typedef
std::tr1::unordered_map
< ServerID, std::vector
< SpaceObjectReference > > 
ObjectServerMap
typedef
std::tr1::unordered_map
< SpaceObjectReference,
ObjectInfo,
SpaceObjectReference::Hasher
ObjectInfoMap
typedef std::tr1::function< void()> DeferredCallback
typedef std::vector
< DeferredCallback
DeferredCallbackList

Private Attributes

SessionManagerparent
uint64 mSeqnoSource
ObjectServerMap mObjectServerMap
ObjectInfoMap mObjectInfo
DeferredCallbackList mDeferredCallbacks

Member Typedef Documentation

typedef std::tr1::function<void()> Sirikata::SessionManager::ObjectConnections::DeferredCallback [private]
typedef std::tr1::unordered_map<ServerID, std::vector<SpaceObjectReference> > Sirikata::SessionManager::ObjectConnections::ObjectServerMap [private]

Constructor & Destructor Documentation

Sirikata::SessionManager::ObjectConnections::ObjectConnections ( SessionManager _parent)

Member Function Documentation

void Sirikata::SessionManager::ObjectConnections::add ( const SpaceObjectReference sporef_objid,
ConnectingInfo  ci,
InternalConnectedCallback  connect_cb,
MigratedCallback  migrate_cb,
StreamCreatedCallback  stream_created_cb,
DisconnectedCallback  disconnected_cb 
)
void Sirikata::SessionManager::ObjectConnections::clearSeqno ( const SpaceObjectReference sporef_objid)
SessionManager::ConnectingInfo & Sirikata::SessionManager::ObjectConnections::connectingTo ( const SpaceObjectReference obj,
ServerID  connecting_to 
)
void Sirikata::SessionManager::ObjectConnections::disconnectWithCode ( const SpaceObjectReference sporef,
const SpaceObjectReference connectedAs,
Disconnect::Code  code 
)

DO NOT reorder this copy. connectedAs may come from a MFD item (eg remove(sporef will invalidate connectedAs) )

References Sirikata::Logging::error, Sirikata::SpaceObjectReference::null(), SILOG, and Sirikata::SpaceObjectReference::toString().

bool Sirikata::SessionManager::ObjectConnections::exists ( const SpaceObjectReference sporef_objid)
SessionManager::InternalConnectedCallback & Sirikata::SessionManager::ObjectConnections::getConnectCallback ( const SpaceObjectReference sporef_objid)
ServerID Sirikata::SessionManager::ObjectConnections::getConnectedServer ( const SpaceObjectReference sporef_obj_id,
bool  allow_connecting = false 
)
ServerID Sirikata::SessionManager::ObjectConnections::getConnectingToServer ( const SpaceObjectReference sporef_obj_id)
ServerID Sirikata::SessionManager::ObjectConnections::getMigratingToServer ( const SpaceObjectReference sporef_obj_id)
uint64 Sirikata::SessionManager::ObjectConnections::getSeqno ( const SpaceObjectReference sporef_objid)
void Sirikata::SessionManager::ObjectConnections::gracefulDisconnect ( const SpaceObjectReference sporef)
void Sirikata::SessionManager::ObjectConnections::handleConnectError ( const SpaceObjectReference sporef_objid)
void Sirikata::SessionManager::ObjectConnections::handleConnectStream ( const SpaceObjectReference sporef_objid,
ConnectionEvent  after,
bool  do_cb 
)
ServerID Sirikata::SessionManager::ObjectConnections::handleConnectSuccess ( const SpaceObjectReference sporef_obj,
const TimedMotionVector3f loc,
const TimedMotionQuaternion orient,
const BoundingSphere3f &  bnds,
const String &  mesh,
const String &  phy,
bool  do_cb 
)
void Sirikata::SessionManager::ObjectConnections::handleUnderlyingDisconnect ( ServerID  sid,
const String &  reason 
)
void Sirikata::SessionManager::ObjectConnections::invokeDeferredCallbacks ( )
void Sirikata::SessionManager::ObjectConnections::remove ( const SpaceObjectReference obj)
void Sirikata::SessionManager::ObjectConnections::startMigration ( const SpaceObjectReference objid,
ServerID  migrating_to 
)
uint64 Sirikata::SessionManager::ObjectConnections::updateSeqno ( const SpaceObjectReference sporef_objid)
bool Sirikata::SessionManager::ObjectConnections::validSeqno ( const SpaceObjectReference sporef_objid)

Member Data Documentation


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