Sirikata
|
LocationUpdatePolicy controls when updates are sent to subscribers. More...
#include <LocationService.hpp>
Public Member Functions | |
LocationUpdatePolicy () | |
virtual | ~LocationUpdatePolicy () |
virtual void | initialize (LocationService *loc) |
virtual void | start ()=0 |
virtual void | stop ()=0 |
virtual void | subscribe (ServerID remote, const UUID &uuid, SeqNoPtr seqNo)=0 |
Subscribe remote for updates about uuid. | |
virtual void | subscribe (ServerID remote, const UUID &uuid, ProxIndexID index_id, SeqNoPtr seqNo)=0 |
Subscribe remote for updates about uuid. | |
virtual void | unsubscribe (ServerID remote, const UUID &uuid)=0 |
Unsubscribe remote for updates about uuid. | |
virtual void | unsubscribe (ServerID remote, const UUID &uuid, ProxIndexID index_id)=0 |
Unsubscribe remote for updates about uuid. | |
virtual void | unsubscribe (ServerID remote)=0 |
Unsubscribe remote for updates about all objects across all indices. | |
virtual void | subscribe (const OHDP::NodeID &remote, const UUID &uuid)=0 |
Subscribe remote for updates about uuid. | |
virtual void | subscribe (const OHDP::NodeID &remote, const UUID &uuid, ProxIndexID index_id)=0 |
Subscribe remote for updates about uuid. | |
virtual void | unsubscribe (const OHDP::NodeID &remote, const UUID &uuid)=0 |
Unsubscribe remote for updates about uuid. | |
virtual void | unsubscribe (const OHDP::NodeID &remote, const UUID &uuid, ProxIndexID index_id)=0 |
Unsubscribe remote for updates about uuid. | |
virtual void | unsubscribe (const OHDP::NodeID &remote)=0 |
Unsubscribe remote for updates about all objects across all indices. | |
virtual void | subscribe (const UUID &remote, const UUID &uuid)=0 |
Subscribe remote for updates about uuid. | |
virtual void | subscribe (const UUID &remote, const UUID &uuid, ProxIndexID index_id)=0 |
Subscribe remote for updates about uuid. | |
virtual void | unsubscribe (const UUID &remote, const UUID &uuid)=0 |
Unsubscribe remote for updates about uuid. | |
virtual void | unsubscribe (const UUID &remote, const UUID &uuid, ProxIndexID index_id)=0 |
Unsubscribe remote for updates about uuid. | |
virtual void | unsubscribe (const UUID &remote)=0 |
Unsubscribe remote for updates about all objects across all indices. | |
virtual void | service ()=0 |
Protected Attributes | |
LocationService * | mLocService |
Router< Message * > * | mLocMessageRouter |
LocationUpdatePolicy controls when updates are sent to subscribers.
It is informed of subscriptions, object location updates, and gets regular tick calls. Based on this information it decides when to send updates to individual subscribers.
Sirikata::LocationUpdatePolicy::LocationUpdatePolicy | ( | ) |
Sirikata::LocationUpdatePolicy::~LocationUpdatePolicy | ( | ) | [virtual] |
References mLocMessageRouter.
void Sirikata::LocationUpdatePolicy::initialize | ( | LocationService * | loc | ) | [virtual] |
virtual void Sirikata::LocationUpdatePolicy::service | ( | ) | [pure virtual] |
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
Referenced by Sirikata::StandardLocationService::service(), and Sirikata::BulletPhysicsService::service().
virtual void Sirikata::LocationUpdatePolicy::start | ( | ) | [pure virtual] |
Implements Sirikata::Service.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
Referenced by Sirikata::LocationService::start().
virtual void Sirikata::LocationUpdatePolicy::stop | ( | ) | [pure virtual] |
Implements Sirikata::Service.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
Referenced by Sirikata::LocationService::stop().
virtual void Sirikata::LocationUpdatePolicy::subscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid | ||
) | [pure virtual] |
Subscribe remote for updates about uuid.
This version implicitly assumes only one index_id since it is omitted (index_id is only relevant for replicating multiple trees/indexes).
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::subscribe | ( | ServerID | remote, |
const UUID & | uuid, | ||
SeqNoPtr | seqNo | ||
) | [pure virtual] |
Subscribe remote for updates about uuid.
This version implicitly assumes only one index_id since it is omitted (index_id is only relevant for replicating multiple trees/indexes).
Use seqNo to generate sequence numbers to include in the updates to ensure correct ordering.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
Referenced by Sirikata::LocationService::subscribe().
virtual void Sirikata::LocationUpdatePolicy::subscribe | ( | ServerID | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id, | ||
SeqNoPtr | seqNo | ||
) | [pure virtual] |
Subscribe remote for updates about uuid.
The index_id indicates the origin of the request and updates will continue until the same index_id has a corresponding unsubscribe call. In other words, if you call this method twice, it needs to be called twice with the same IDs before it stops sending updates. The index_id will be included in updates so the client knows what to update.
Use seqNo to generate sequence numbers to include in the updates to ensure correct ordering.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::subscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [pure virtual] |
Subscribe remote for updates about uuid.
The index_id indicates the origin of the request and updates will continue until the same index_id has a corresponding unsubscribe call. In other words, if you call this method twice, it needs to be called twice with the same IDs before it stops sending updates. The index_id will be included in updates so the client knows what to update.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::subscribe | ( | const UUID & | remote, |
const UUID & | uuid | ||
) | [pure virtual] |
Subscribe remote for updates about uuid.
This version implicitly assumes only one index_id since it is omitted (index_id is only relevant for replicating multiple trees/indexes).
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::subscribe | ( | const UUID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [pure virtual] |
Subscribe remote for updates about uuid.
The index_id indicates the origin of the request and updates will continue until the same index_id has a corresponding unsubscribe call. In other words, if you call this method twice, it needs to be called twice with the same IDs before it stops sending updates. The index_id will be included in updates so the client knows what to update.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | const UUID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [pure virtual] |
Unsubscribe remote for updates about uuid.
The index_id indicates the origin of the request -- the unsubscription only applies for that index_id so if any other index_id's have unmatched subscribe calls, updates will still be sent for those indices.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | const UUID & | remote | ) | [pure virtual] |
Unsubscribe remote for updates about all objects across all indices.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | ServerID | remote | ) | [pure virtual] |
Unsubscribe remote for updates about all objects across all indices.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [pure virtual] |
Unsubscribe remote for updates about uuid.
The index_id indicates the origin of the request -- the unsubscription only applies for that index_id so if any other index_id's have unmatched subscribe calls, updates will still be sent for those indices.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | ServerID | remote, |
const UUID & | uuid | ||
) | [pure virtual] |
Unsubscribe remote for updates about uuid.
This version implicitly assumes only one index_id, i.e. that multiple tree replication is not being used.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
Referenced by Sirikata::LocationService::unsubscribe().
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | ServerID | remote, |
const UUID & | uuid, | ||
ProxIndexID | index_id | ||
) | [pure virtual] |
Unsubscribe remote for updates about uuid.
The index_id indicates the origin of the request -- the unsubscription only applies for that index_id so if any other index_id's have unmatched subscribe calls, updates will still be sent for those indices.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | const UUID & | remote, |
const UUID & | uuid | ||
) | [pure virtual] |
Unsubscribe remote for updates about uuid.
This version implicitly assumes only one index_id, i.e. that multiple tree replication is not being used.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | const OHDP::NodeID & | remote, |
const UUID & | uuid | ||
) | [pure virtual] |
Unsubscribe remote for updates about uuid.
This version implicitly assumes only one index_id, i.e. that multiple tree replication is not being used.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
virtual void Sirikata::LocationUpdatePolicy::unsubscribe | ( | const OHDP::NodeID & | remote | ) | [pure virtual] |
Unsubscribe remote for updates about all objects across all indices.
Implemented in Sirikata::AlwaysLocationUpdatePolicy.
Router<Message*>* Sirikata::LocationUpdatePolicy::mLocMessageRouter [protected] |
Referenced by initialize(), Sirikata::AlwaysLocationUpdatePolicy::trySend(), and ~LocationUpdatePolicy().
Referenced by initialize(), Sirikata::AlwaysLocationUpdatePolicy::localBoundsUpdated(), Sirikata::AlwaysLocationUpdatePolicy::localLocationUpdated(), Sirikata::AlwaysLocationUpdatePolicy::localMeshUpdated(), Sirikata::AlwaysLocationUpdatePolicy::localOrientationUpdated(), Sirikata::AlwaysLocationUpdatePolicy::localPhysicsUpdated(), Sirikata::AlwaysLocationUpdatePolicy::replicaBoundsUpdated(), Sirikata::AlwaysLocationUpdatePolicy::replicaLocationUpdated(), Sirikata::AlwaysLocationUpdatePolicy::replicaMeshUpdated(), Sirikata::AlwaysLocationUpdatePolicy::replicaOrientationUpdated(), Sirikata::AlwaysLocationUpdatePolicy::replicaPhysicsUpdated(), Sirikata::AlwaysLocationUpdatePolicy::reportStats(), Sirikata::AlwaysLocationUpdatePolicy::SubscriberIndex< OHDP::NodeID >::subscribe(), Sirikata::AlwaysLocationUpdatePolicy::subscribe(), Sirikata::AlwaysLocationUpdatePolicy::trySend(), and Sirikata::AlwaysLocationUpdatePolicy::validSubscriber().