Sirikata
|
Interface for location services. More...
#include <LocationService.hpp>
Classes | |
struct | ListenerInfo |
Public Member Functions | |
LocationService (SpaceContext *ctx, LocationUpdatePolicy *update_policy) | |
virtual | ~LocationService () |
const SpaceContext * | context () const |
virtual void | newSession (ObjectSession *session) |
virtual bool | contains (const UUID &uuid) const =0 |
Indicates whether this location service is tracking the given object. | |
virtual uint64 | epoch (const UUID &uuid)=0 |
Methods dealing with information requests. | |
virtual TimedMotionVector3f | location (const UUID &uuid)=0 |
virtual Vector3f | currentPosition (const UUID &uuid)=0 |
virtual TimedMotionQuaternion | orientation (const UUID &uuid)=0 |
virtual Quaternion | currentOrientation (const UUID &uuid)=0 |
virtual AggregateBoundingInfo | bounds (const UUID &uuid)=0 |
virtual const String & | mesh (const UUID &uuid)=0 |
virtual const String & | physics (const UUID &uuid)=0 |
virtual void | addLocalObject (const UUID &uuid, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics, const String &zernike)=0 |
Methods dealing with local objects. | |
virtual void | removeLocalObject (const UUID &uuid)=0 |
virtual void | addLocalAggregateObject (const UUID &uuid, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics)=0 |
Aggregate objects are handled separately from other local objects. | |
virtual void | removeLocalAggregateObject (const UUID &uuid)=0 |
virtual void | updateLocalAggregateLocation (const UUID &uuid, const TimedMotionVector3f &newval)=0 |
virtual void | updateLocalAggregateOrientation (const UUID &uuid, const TimedMotionQuaternion &newval)=0 |
virtual void | updateLocalAggregateBounds (const UUID &uuid, const AggregateBoundingInfo &newval)=0 |
virtual void | updateLocalAggregateMesh (const UUID &uuid, const String &newval)=0 |
virtual void | updateLocalAggregatePhysics (const UUID &uuid, const String &newval)=0 |
virtual void | addReplicaObject (const Time &t, const UUID &uuid, bool agg, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics, const String &zernike)=0 |
Methods dealing with replica objects. | |
virtual void | removeReplicaObject (const Time &t, const UUID &uuid)=0 |
virtual void | addListener (LocationServiceListener *listener, bool want_aggregates) |
Methods dealing with listeners. | |
virtual void | removeListener (LocationServiceListener *listener) |
virtual void | subscribe (ServerID remote, const UUID &uuid, SeqNoPtr seq_no_ptr) |
Subscriptions for other servers. | |
virtual void | subscribe (ServerID remote, const UUID &uuid, ProxIndexID index_id, SeqNoPtr seq_no_ptr) |
virtual void | unsubscribe (ServerID remote, const UUID &uuid) |
virtual void | unsubscribe (ServerID remote, const UUID &uuid, ProxIndexID index_id) |
virtual void | unsubscribe (ServerID remote) |
Unsubscripe the given server from all its location subscriptions. | |
virtual void | subscribe (const OHDP::NodeID &remote, const UUID &uuid) |
Subscriptions for connected object hosts. | |
virtual void | subscribe (const OHDP::NodeID &remote, const UUID &uuid, ProxIndexID index_id) |
virtual void | unsubscribe (const OHDP::NodeID &remote, const UUID &uuid) |
virtual void | unsubscribe (const OHDP::NodeID &remote, const UUID &uuid, ProxIndexID index_id) |
virtual void | unsubscribe (const OHDP::NodeID &remote) |
Unsubscripe the given object host from all its location subscriptions. | |
virtual void | subscribe (const UUID &remote, const UUID &uuid) |
Subscriptions for local objects. | |
virtual void | subscribe (const UUID &remote, const UUID &uuid, ProxIndexID index_id) |
virtual void | unsubscribe (const UUID &remote, const UUID &uuid) |
virtual void | unsubscribe (const UUID &remote, const UUID &uuid, ProxIndexID index_id) |
virtual void | unsubscribe (const UUID &remote) |
Unsubscripe the given server from all its location subscriptions. | |
virtual void | receiveMessage (Message *msg)=0 |
MessageRecipient Interface. | |
virtual bool | locationUpdate (UUID source, void *buffer, uint32 length)=0 |
virtual void | commandProperties (const Command::Command &cmd, Command::Commander *cmdr, Command::CommandID cmdid)=0 |
Get basic properties about this location service, e.g. | |
virtual void | commandObjectProperties (const Command::Command &cmd, Command::Commander *cmdr, Command::CommandID cmdid)=0 |
Get all the properties stored about an object. | |
Protected Types | |
typedef SST::Stream < SpaceObjectReference > | SSTStream |
typedef SSTStream::Ptr | SSTStreamPtr |
typedef std::set< ListenerInfo > | ListenerList |
Protected Member Functions | |
virtual void | start () |
Start polling this service on this strand at the given maximum rate. | |
virtual void | stop () |
Stop scheduling this service. | |
virtual void | poll () |
Override this method to specify the work to be done when polling. | |
virtual void | service ()=0 |
void | notifyLocalObjectAdded (const UUID &uuid, bool agg, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics, const String &zernike) const |
void | notifyLocalObjectRemoved (const UUID &uuid, bool agg) const |
void | notifyLocalLocationUpdated (const UUID &uuid, bool agg, const TimedMotionVector3f &newval) const |
void | notifyLocalOrientationUpdated (const UUID &uuid, bool agg, const TimedMotionQuaternion &newval) const |
void | notifyLocalBoundsUpdated (const UUID &uuid, bool agg, const AggregateBoundingInfo &newval) const |
void | notifyLocalMeshUpdated (const UUID &uuid, bool agg, const String &newval) const |
void | notifyLocalPhysicsUpdated (const UUID &uuid, bool agg, const String &newval) const |
void | notifyReplicaObjectAdded (const UUID &uuid, const TimedMotionVector3f &loc, const TimedMotionQuaternion &orient, const AggregateBoundingInfo &bounds, const String &mesh, const String &physics, const String &zernike) const |
void | notifyReplicaObjectRemoved (const UUID &uuid) const |
void | notifyReplicaLocationUpdated (const UUID &uuid, const TimedMotionVector3f &newval) const |
void | notifyReplicaOrientationUpdated (const UUID &uuid, const TimedMotionQuaternion &newval) const |
void | notifyReplicaBoundsUpdated (const UUID &uuid, const AggregateBoundingInfo &newval) const |
void | notifyReplicaMeshUpdated (const UUID &uuid, const String &newval) const |
void | notifyReplicaPhysicsUpdated (const UUID &uuid, const String &newval) const |
void | notifyOnLocationUpdateFromServer (const ServerID sid, const Sirikata::Protocol::Loc::LocationUpdate &update) |
void | handleLocationUpdateSubstream (const UUID &source, int err, SSTStreamPtr s) |
void | handleLocationUpdateSubstreamRead (const UUID &source, SSTStreamPtr s, std::stringstream *prevdata, uint8 *buffer, int length) |
void | tryHandleLocationUpdate (const UUID &source, SSTStreamPtr s, const String &payload, std::stringstream *prevdata) |
Protected Attributes | |
SpaceContext * | mContext |
ListenerList | mListeners |
LocationUpdatePolicy * | mUpdatePolicy |
Private Attributes | |
TimeProfiler::Stage * | mProfiler |
Interface for location services.
This provides a way for other components to get the most current information about object locations.
typedef std::set<ListenerInfo> Sirikata::LocationService::ListenerList [protected] |
typedef SST::Stream<SpaceObjectReference> Sirikata::LocationService::SSTStream [protected] |
typedef SSTStream::Ptr Sirikata::LocationService::SSTStreamPtr [protected] |
Sirikata::LocationService::LocationService | ( | SpaceContext * | ctx, |
LocationUpdatePolicy * | update_policy | ||
) |
References Sirikata::Provider< ListenerPtr >::addListener(), Sirikata::TimeProfiler::addStage(), Sirikata::Context::commander(), commandObjectProperties(), commandProperties(), Sirikata::LocationUpdatePolicy::initialize(), Sirikata::Context::mainStrand, mContext, mProfiler, mUpdatePolicy, Sirikata::SpaceContext::objectSessionManager(), Sirikata::Context::profiler, Sirikata::Command::Commander::registerCommand(), Sirikata::ServerMessageDispatcher::registerMessageRecipient(), SERVER_PORT_LOCATION, Sirikata::SpaceContext::serverDispatcher(), and Sirikata::Network::IOStrand::wrap().
Sirikata::LocationService::~LocationService | ( | ) | [virtual] |
void Sirikata::LocationService::addListener | ( | LocationServiceListener * | listener, |
bool | want_aggregates | ||
) | [virtual] |
Methods dealing with listeners.
References Sirikata::Logging::info, Sirikata::LocationService::ListenerInfo::listener, mListeners, and Sirikata::LocationService::ListenerInfo::wantAggregates.
Referenced by Sirikata::AggregateManager::AggregateManager(), Sirikata::CBRLocationServiceCache::CBRLocationServiceCache(), Sirikata::LocationUpdatePolicy::initialize(), Sirikata::MigrationMonitor::MigrationMonitor(), and Sirikata::Proximity::Proximity().
virtual void Sirikata::LocationService::addLocalAggregateObject | ( | const UUID & | uuid, |
const TimedMotionVector3f & | loc, | ||
const TimedMotionQuaternion & | orient, | ||
const AggregateBoundingInfo & | bounds, | ||
const String & | mesh, | ||
const String & | physics | ||
) | [pure virtual] |
Aggregate objects are handled separately from other local objects.
All the information is tracked, but listeners are notified about them separately. This is necessary since not filtering them would cause them to filter back into whatever system generated them. In general, users other than Proximity should learn about aggregates and treat them as normal objects. Proximity ignores them since it is the one that generates them.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxProximityBase::aggregateCreated().
virtual void Sirikata::LocationService::addLocalObject | ( | const UUID & | uuid, |
const TimedMotionVector3f & | loc, | ||
const TimedMotionQuaternion & | orient, | ||
const AggregateBoundingInfo & | bounds, | ||
const String & | mesh, | ||
const String & | physics, | ||
const String & | zernike | ||
) | [pure virtual] |
Methods dealing with local objects.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::Server::finishAddObject(), Sirikata::Server::handleMigration(), and Sirikata::Server::processAlreadyMigrating().
virtual void Sirikata::LocationService::addReplicaObject | ( | const Time & | t, |
const UUID & | uuid, | ||
bool | agg, | ||
const TimedMotionVector3f & | loc, | ||
const TimedMotionQuaternion & | orient, | ||
const AggregateBoundingInfo & | bounds, | ||
const String & | mesh, | ||
const String & | physics, | ||
const String & | zernike | ||
) | [pure virtual] |
Methods dealing with replica objects.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxManualProximity::handleUpdateServerQueryResultsToLocService(), and Sirikata::LibproxProximity::receiveMessage().
virtual AggregateBoundingInfo Sirikata::LocationService::bounds | ( | const UUID & | uuid | ) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxProximity::addQuery(), Sirikata::CSFQODPFlowScheduler::getObjectWeightRegion(), Sirikata::Server::handleMigrationEvent(), Sirikata::LibproxProximity::handleObjectProximityMessage(), Sirikata::LibproxProximity::localLocationUpdated(), Sirikata::AlwaysLocationUpdatePolicy::SubscriberIndex< OHDP::NodeID >::propertyUpdatedForSubscriber(), Sirikata::Server::sendConnectSuccess(), and Sirikata::LibproxProximityBase::updateAggregateLoc().
virtual void Sirikata::LocationService::commandObjectProperties | ( | const Command::Command & | cmd, |
Command::Commander * | cmdr, | ||
Command::CommandID | cmdid | ||
) | [pure virtual] |
Get all the properties stored about an object.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by LocationService().
virtual void Sirikata::LocationService::commandProperties | ( | const Command::Command & | cmd, |
Command::Commander * | cmdr, | ||
Command::CommandID | cmdid | ||
) | [pure virtual] |
Get basic properties about this location service, e.g.
type, number of objects tracked, etc.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by LocationService().
virtual bool Sirikata::LocationService::contains | ( | const UUID & | uuid | ) | const [pure virtual] |
Indicates whether this location service is tracking the given object.
It is only safe to request information
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::CSFQODPFlowScheduler::getObjectWeightRegion(), Sirikata::LibproxProximityBase::handleAddObjectLocSubscription(), Sirikata::LibproxProximityBase::handleAddObjectLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleAddOHLocSubscription(), Sirikata::LibproxProximityBase::handleAddOHLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleAddServerLocSubscription(), Sirikata::LibproxProximityBase::handleAddServerLocSubscriptionWithID(), Sirikata::MigrationMonitor::service(), Sirikata::LibproxProximityBase::updateAggregateLoc(), and Sirikata::AggregateManager::updateAggregateLocMesh().
const SpaceContext* Sirikata::LocationService::context | ( | ) | const [inline] |
Referenced by Sirikata::CBRLocationServiceCache::addPlaceholderImposter(), Sirikata::AggregateManager::AggregateManager(), Sirikata::MigrationMonitor::computeNextEventTime(), Sirikata::AggregateManager::generateAggregateMeshAsync(), Sirikata::AggregateManager::handleKeepAliveResponse(), Sirikata::MigrationMonitor::handleUpdatedSegmentation(), Sirikata::AggregateManager::handleUploadFinished(), Sirikata::LocationUpdatePolicy::initialize(), Sirikata::MigrationMonitor::MigrationMonitor(), Sirikata::LibproxProximityBase::processExpiredStaticObjectTimeouts(), Sirikata::AlwaysLocationUpdatePolicy::reportStats(), Sirikata::AggregateManager::sendKeepAlives(), Sirikata::MigrationMonitor::service(), Sirikata::AlwaysLocationUpdatePolicy::subscribe(), Sirikata::AlwaysLocationUpdatePolicy::trySend(), Sirikata::BulletRigidBodyObject::updateObjectFromBullet(), Sirikata::BulletPhysicsService::updateObjectFromDeactivation(), Sirikata::AggregateManager::uploadAggregateMesh(), and Sirikata::AlwaysLocationUpdatePolicy::validSubscriber().
virtual Quaternion Sirikata::LocationService::currentOrientation | ( | const UUID & | uuid | ) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
virtual Vector3f Sirikata::LocationService::currentPosition | ( | const UUID & | uuid | ) | [pure virtual] |
virtual uint64 Sirikata::LocationService::epoch | ( | const UUID & | uuid | ) | [pure virtual] |
Methods dealing with information requests.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::AlwaysLocationUpdatePolicy::SubscriberIndex< OHDP::NodeID >::propertyUpdatedForSubscriber().
void Sirikata::LocationService::handleLocationUpdateSubstream | ( | const UUID & | source, |
int | err, | ||
SSTStreamPtr | s | ||
) | [protected] |
References handleLocationUpdateSubstreamRead().
Referenced by newSession().
void Sirikata::LocationService::handleLocationUpdateSubstreamRead | ( | const UUID & | source, |
SSTStreamPtr | s, | ||
std::stringstream * | prevdata, | ||
uint8 * | buffer, | ||
int | length | ||
) | [protected] |
References Sirikata::Context::mainStrand, mContext, Sirikata::Network::IOStrand::post(), and tryHandleLocationUpdate().
Referenced by handleLocationUpdateSubstream().
virtual TimedMotionVector3f Sirikata::LocationService::location | ( | const UUID & | uuid | ) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxProximity::addQuery(), Sirikata::Server::handleMigrationEvent(), Sirikata::LibproxProximity::handleObjectProximityMessage(), Sirikata::MigrationMonitor::handleUpdatedSegmentation(), Sirikata::LibproxProximity::localBoundsUpdated(), Sirikata::AlwaysLocationUpdatePolicy::SubscriberIndex< OHDP::NodeID >::propertyUpdatedForSubscriber(), Sirikata::Server::sendConnectSuccess(), Sirikata::MigrationMonitor::service(), and Sirikata::LibproxProximityBase::updateAggregateLoc().
virtual bool Sirikata::LocationService::locationUpdate | ( | UUID | source, |
void * | buffer, | ||
uint32 | length | ||
) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by tryHandleLocationUpdate().
virtual const String& Sirikata::LocationService::mesh | ( | const UUID & | uuid | ) | [pure virtual] |
void Sirikata::LocationService::newSession | ( | ObjectSession * | session | ) | [virtual] |
Reimplemented from Sirikata::ObjectSessionListener.
References Sirikata::SST::Stream< EndPointType >::connection(), Sirikata::ObjectReference::getAsUUID(), Sirikata::ObjectSession::getStream(), handleLocationUpdateSubstream(), Sirikata::SST::Stream< EndPointType >::listenSubstream(), Sirikata::SpaceObjectReference::object(), OBJECT_PORT_LOCATION, and Sirikata::SST::Connection< EndPointType >::remoteEndPoint().
void Sirikata::LocationService::notifyLocalBoundsUpdated | ( | const UUID & | uuid, |
bool | agg, | ||
const AggregateBoundingInfo & | newval | ||
) | const [protected] |
void Sirikata::LocationService::notifyLocalLocationUpdated | ( | const UUID & | uuid, |
bool | agg, | ||
const TimedMotionVector3f & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::locationUpdate(), Sirikata::BulletPhysicsService::locationUpdate(), Sirikata::BulletPhysicsService::service(), Sirikata::BulletPhysicsService::setLocation(), Sirikata::StandardLocationService::updateLocalAggregateLocation(), and Sirikata::BulletPhysicsService::updateLocalAggregateLocation().
void Sirikata::LocationService::notifyLocalMeshUpdated | ( | const UUID & | uuid, |
bool | agg, | ||
const String & | newval | ||
) | const [protected] |
void Sirikata::LocationService::notifyLocalObjectAdded | ( | const UUID & | uuid, |
bool | agg, | ||
const TimedMotionVector3f & | loc, | ||
const TimedMotionQuaternion & | orient, | ||
const AggregateBoundingInfo & | bounds, | ||
const String & | mesh, | ||
const String & | physics, | ||
const String & | zernike | ||
) | const [protected] |
void Sirikata::LocationService::notifyLocalObjectRemoved | ( | const UUID & | uuid, |
bool | agg | ||
) | const [protected] |
void Sirikata::LocationService::notifyLocalOrientationUpdated | ( | const UUID & | uuid, |
bool | agg, | ||
const TimedMotionQuaternion & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::locationUpdate(), Sirikata::BulletPhysicsService::locationUpdate(), Sirikata::BulletPhysicsService::setOrientation(), Sirikata::StandardLocationService::updateLocalAggregateOrientation(), and Sirikata::BulletPhysicsService::updateLocalAggregateOrientation().
void Sirikata::LocationService::notifyLocalPhysicsUpdated | ( | const UUID & | uuid, |
bool | agg, | ||
const String & | newval | ||
) | const [protected] |
void Sirikata::LocationService::notifyOnLocationUpdateFromServer | ( | const ServerID | sid, |
const Sirikata::Protocol::Loc::LocationUpdate & | update | ||
) | [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::receiveMessage(), and Sirikata::BulletPhysicsService::receiveMessage().
void Sirikata::LocationService::notifyReplicaBoundsUpdated | ( | const UUID & | uuid, |
const AggregateBoundingInfo & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::receiveMessage(), and Sirikata::BulletPhysicsService::receiveMessage().
void Sirikata::LocationService::notifyReplicaLocationUpdated | ( | const UUID & | uuid, |
const TimedMotionVector3f & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::receiveMessage(), and Sirikata::BulletPhysicsService::receiveMessage().
void Sirikata::LocationService::notifyReplicaMeshUpdated | ( | const UUID & | uuid, |
const String & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::receiveMessage(), and Sirikata::BulletPhysicsService::receiveMessage().
void Sirikata::LocationService::notifyReplicaObjectAdded | ( | const UUID & | uuid, |
const TimedMotionVector3f & | loc, | ||
const TimedMotionQuaternion & | orient, | ||
const AggregateBoundingInfo & | bounds, | ||
const String & | mesh, | ||
const String & | physics, | ||
const String & | zernike | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::addReplicaObject(), and Sirikata::BulletPhysicsService::addReplicaObject().
void Sirikata::LocationService::notifyReplicaObjectRemoved | ( | const UUID & | uuid | ) | const [protected] |
void Sirikata::LocationService::notifyReplicaOrientationUpdated | ( | const UUID & | uuid, |
const TimedMotionQuaternion & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::receiveMessage(), and Sirikata::BulletPhysicsService::receiveMessage().
void Sirikata::LocationService::notifyReplicaPhysicsUpdated | ( | const UUID & | uuid, |
const String & | newval | ||
) | const [protected] |
References mListeners.
Referenced by Sirikata::StandardLocationService::receiveMessage(), and Sirikata::BulletPhysicsService::receiveMessage().
virtual TimedMotionQuaternion Sirikata::LocationService::orientation | ( | const UUID & | uuid | ) | [pure virtual] |
virtual const String& Sirikata::LocationService::physics | ( | const UUID & | uuid | ) | [pure virtual] |
void Sirikata::LocationService::poll | ( | ) | [protected, virtual] |
Override this method to specify the work to be done when polling.
Implements Sirikata::PollingService.
References Sirikata::TimeProfiler::Stage::finished(), mProfiler, service(), and Sirikata::TimeProfiler::Stage::started().
virtual void Sirikata::LocationService::receiveMessage | ( | Message * | msg | ) | [pure virtual] |
MessageRecipient Interface.
Implements Sirikata::MessageRecipient.
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
void Sirikata::LocationService::removeListener | ( | LocationServiceListener * | listener | ) | [virtual] |
virtual void Sirikata::LocationService::removeLocalAggregateObject | ( | const UUID & | uuid | ) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxProximityBase::aggregateDestroyed().
virtual void Sirikata::LocationService::removeLocalObject | ( | const UUID & | uuid | ) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::Server::handleDisconnect(), Sirikata::Server::handleMigrationEvent(), and Sirikata::Server::~Server().
virtual void Sirikata::LocationService::service | ( | ) | [protected, pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by poll().
void Sirikata::LocationService::start | ( | ) | [protected, virtual] |
Start polling this service on this strand at the given maximum rate.
Reimplemented from Sirikata::PollingService.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::start().
void Sirikata::LocationService::stop | ( | ) | [protected, virtual] |
Stop scheduling this service.
Note that this does not immediately stop the service, it simply guarantees the service will not be scheduled again. This allows outstanding events to be handled properly.
Reimplemented from Sirikata::PollingService.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::stop().
void Sirikata::LocationService::subscribe | ( | ServerID | remote, |
const UUID & | uuid, | ||
SeqNoPtr | seq_no_ptr | ||
) | [virtual] |
Subscriptions for other servers.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::subscribe().
Referenced by Sirikata::LibproxProximityBase::handleAddObjectLocSubscription(), Sirikata::LibproxProximityBase::handleAddObjectLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleAddOHLocSubscription(), Sirikata::LibproxProximityBase::handleAddOHLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleAddServerLocSubscription(), and Sirikata::LibproxProximityBase::handleAddServerLocSubscriptionWithID().
Subscriptions for local objects.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::subscribe().
void Sirikata::LocationService::subscribe | ( | const UUID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::subscribe().
void Sirikata::LocationService::subscribe | ( | ServerID | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id, | ||
SeqNoPtr | seq_no_ptr | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::subscribe().
void Sirikata::LocationService::subscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::subscribe().
void Sirikata::LocationService::subscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid | ||
) | [virtual] |
Subscriptions for connected object hosts.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::subscribe().
void Sirikata::LocationService::tryHandleLocationUpdate | ( | const UUID & | source, |
SSTStreamPtr | s, | ||
const String & | payload, | ||
std::stringstream * | prevdata | ||
) | [protected] |
References locationUpdate().
Referenced by handleLocationUpdateSubstreamRead().
void Sirikata::LocationService::unsubscribe | ( | ServerID | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | const UUID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | ServerID | remote | ) | [virtual] |
Unsubscripe the given server from all its location subscriptions.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | ServerID | remote, |
const UUID & | uuid | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
Referenced by Sirikata::LibproxProximityBase::handleRemoveAllObjectLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveAllOHLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveAllServerLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveObjectLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveObjectLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleRemoveOHLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveOHLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleRemoveServerLocSubscription(), and Sirikata::LibproxProximityBase::handleRemoveServerLocSubscriptionWithID().
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | const OHDP::NodeID & | remote | ) | [virtual] |
Unsubscripe the given object host from all its location subscriptions.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid | ||
) | [virtual] |
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
void Sirikata::LocationService::unsubscribe | ( | const UUID & | remote | ) | [virtual] |
Unsubscripe the given server from all its location subscriptions.
References mUpdatePolicy, and Sirikata::LocationUpdatePolicy::unsubscribe().
virtual void Sirikata::LocationService::updateLocalAggregateBounds | ( | const UUID & | uuid, |
const AggregateBoundingInfo & | newval | ||
) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxProximityBase::updateAggregateLoc().
virtual void Sirikata::LocationService::updateLocalAggregateLocation | ( | const UUID & | uuid, |
const TimedMotionVector3f & | newval | ||
) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::LibproxProximityBase::updateAggregateLoc().
virtual void Sirikata::LocationService::updateLocalAggregateMesh | ( | const UUID & | uuid, |
const String & | newval | ||
) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
Referenced by Sirikata::AggregateManager::updateAggregateLocMesh().
virtual void Sirikata::LocationService::updateLocalAggregateOrientation | ( | const UUID & | uuid, |
const TimedMotionQuaternion & | newval | ||
) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
virtual void Sirikata::LocationService::updateLocalAggregatePhysics | ( | const UUID & | uuid, |
const String & | newval | ||
) | [pure virtual] |
Implemented in Sirikata::BulletPhysicsService, and Sirikata::StandardLocationService.
SpaceContext* Sirikata::LocationService::mContext [protected] |
Referenced by Sirikata::StandardLocationService::addLocalObject(), Sirikata::BulletPhysicsService::addLocalObject(), Sirikata::StandardLocationService::addReplicaObject(), Sirikata::BulletPhysicsService::addReplicaObject(), Sirikata::BulletPhysicsService::BulletPhysicsService(), Sirikata::StandardLocationService::commandObjectProperties(), Sirikata::BulletPhysicsService::commandObjectProperties(), Sirikata::StandardLocationService::currentOrientation(), Sirikata::BulletPhysicsService::currentOrientation(), Sirikata::StandardLocationService::currentPosition(), Sirikata::BulletPhysicsService::currentPosition(), Sirikata::BulletPhysicsService::getMeshCallback(), handleLocationUpdateSubstreamRead(), Sirikata::BulletPhysicsService::internalTickCallback(), LocationService(), Sirikata::StandardLocationService::locationUpdate(), Sirikata::BulletPhysicsService::locationUpdate(), Sirikata::StandardLocationService::receiveMessage(), Sirikata::BulletPhysicsService::receiveMessage(), Sirikata::StandardLocationService::removeLocalObject(), Sirikata::BulletPhysicsService::removeLocalObject(), Sirikata::StandardLocationService::removeReplicaObject(), Sirikata::BulletPhysicsService::removeReplicaObject(), Sirikata::BulletPhysicsService::service(), and ~LocationService().
ListenerList Sirikata::LocationService::mListeners [protected] |
Referenced by addListener(), notifyLocalBoundsUpdated(), notifyLocalLocationUpdated(), notifyLocalMeshUpdated(), notifyLocalObjectAdded(), notifyLocalObjectRemoved(), notifyLocalOrientationUpdated(), notifyLocalPhysicsUpdated(), notifyOnLocationUpdateFromServer(), notifyReplicaBoundsUpdated(), notifyReplicaLocationUpdated(), notifyReplicaMeshUpdated(), notifyReplicaObjectAdded(), notifyReplicaObjectRemoved(), notifyReplicaOrientationUpdated(), notifyReplicaPhysicsUpdated(), and removeListener().
Reimplemented from Sirikata::PollingService.
Referenced by LocationService(), poll(), and ~LocationService().