Sirikata
|
#include <Proximity.hpp>
Public Member Functions | |
Proximity (SpaceContext *ctx, LocationService *locservice, CoordinateSegmentation *cseg, SpaceNetwork *net, AggregateManager *aggmgr, const Duration &poll_freq) | |
virtual | ~Proximity () |
virtual void | start () |
Start polling this service on this strand at the given maximum rate. | |
virtual void | stop () |
Stop scheduling this service. | |
virtual void | addQuery (UUID obj, SolidAngle sa, uint32 max_results)=0 |
virtual void | addQuery (UUID obj, const String ¶ms)=0 |
virtual void | removeQuery (UUID obj)=0 |
virtual void | poll () |
Override this method to specify the work to be done when polling. | |
virtual std::string | migrationClientTag ()=0 |
The tag used to uniquely identify this component. | |
virtual std::string | generateMigrationData (const UUID &obj, ServerID source_server, ServerID dest_server)=0 |
Produce data for the migration of obj from source_server to dest_server. | |
virtual void | receiveMigrationData (const UUID &obj, ServerID source_server, ServerID dest_server, const std::string &data)=0 |
Receive data for the migration of obj from source_server to dest_server. | |
virtual void | updatedSegmentation (CoordinateSegmentation *cseg, const std::vector< SegmentationInfo > &new_seg) |
virtual void | onSpaceNetworkConnected (ServerID sid) |
virtual void | onSpaceNetworkDisconnected (ServerID sid) |
virtual void | newSession (ObjectSession *session) |
virtual void | sessionClosed (ObjectSession *session) |
virtual void | onObjectHostSession (const OHDP::NodeID &id, ObjectHostSessionPtr oh_sess) |
virtual void | onObjectHostSessionEnded (const OHDP::NodeID &id) |
virtual void | receiveMessage (Message *msg) |
Protected Member Functions | |
void | reportStats () |
virtual int32 | objectQueries () const |
virtual int32 | objectHostQueries () const |
virtual int32 | serverQueries () const |
Protected Attributes | |
SpaceContext * | mContext |
Network::IOStrand * | mProxStrand |
LocationService * | mLocService |
CoordinateSegmentation * | mCSeg |
AggregateManager * | mAggregateManager |
Poller | mStatsPoller |
const String | mTimeSeriesObjectQueryCountName |
const String | mTimeSeriesObjectHostQueryCountName |
const String | mTimeSeriesServerQueryCountName |
Sirikata::Proximity::Proximity | ( | SpaceContext * | ctx, |
LocationService * | locservice, | ||
CoordinateSegmentation * | cseg, | ||
SpaceNetwork * | net, | ||
AggregateManager * | aggmgr, | ||
const Duration & | poll_freq | ||
) |
References Sirikata::CoordinateSegmentation::addListener(), Sirikata::LocationService::addListener(), Sirikata::Provider< ListenerPtr >::addListener(), mContext, mCSeg, mLocService, mProxStrand, Sirikata::SpaceContext::objectSessionManager(), Sirikata::SpaceContext::ohSessionManager(), Sirikata::ServerMessageDispatcher::registerMessageRecipient(), SERVER_PORT_PROX, and Sirikata::SpaceContext::serverDispatcher().
Sirikata::Proximity::~Proximity | ( | ) | [virtual] |
References mContext, mLocService, mProxStrand, Sirikata::SpaceContext::objectSessionManager(), Sirikata::SpaceContext::ohSessionManager(), Sirikata::LocationService::removeListener(), Sirikata::Provider< ListenerPtr >::removeListener(), SERVER_PORT_PROX, Sirikata::SpaceContext::serverDispatcher(), and Sirikata::ServerMessageDispatcher::unregisterMessageRecipient().
virtual void Sirikata::Proximity::addQuery | ( | UUID | obj, |
SolidAngle | sa, | ||
uint32 | max_results | ||
) | [pure virtual] |
Implemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
Referenced by Sirikata::Server::finishAddObject().
virtual void Sirikata::Proximity::addQuery | ( | UUID | obj, |
const String & | params | ||
) | [pure virtual] |
Implemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
virtual std::string Sirikata::Proximity::generateMigrationData | ( | const UUID & | obj, |
ServerID | source_server, | ||
ServerID | dest_server | ||
) | [pure virtual] |
Produce data for the migration of obj from source_server to dest_server.
Implements Sirikata::MigrationDataClient.
Implemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
Referenced by Sirikata::Server::handleMigrationEvent().
virtual std::string Sirikata::Proximity::migrationClientTag | ( | ) | [pure virtual] |
The tag used to uniquely identify this component.
Implements Sirikata::MigrationDataClient.
Implemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
Referenced by Sirikata::Server::handleMigration(), Sirikata::Server::handleMigrationEvent(), and Sirikata::Server::processAlreadyMigrating().
virtual void Sirikata::Proximity::newSession | ( | ObjectSession * | session | ) | [inline, virtual] |
Reimplemented from Sirikata::ObjectSessionListener.
Reimplemented in Sirikata::LibproxProximity.
virtual int32 Sirikata::Proximity::objectHostQueries | ( | ) | const [inline, protected, virtual] |
Reimplemented in Sirikata::LibproxManualProximity.
Referenced by reportStats().
virtual int32 Sirikata::Proximity::objectQueries | ( | ) | const [inline, protected, virtual] |
Reimplemented in Sirikata::LibproxProximity.
Referenced by reportStats().
virtual void Sirikata::Proximity::onObjectHostSession | ( | const OHDP::NodeID & | id, |
ObjectHostSessionPtr | oh_sess | ||
) | [inline, virtual] |
Reimplemented from Sirikata::ObjectHostSessionListener.
Reimplemented in Sirikata::LibproxManualProximity.
virtual void Sirikata::Proximity::onObjectHostSessionEnded | ( | const OHDP::NodeID & | id | ) | [inline, virtual] |
Reimplemented from Sirikata::ObjectHostSessionListener.
Reimplemented in Sirikata::LibproxManualProximity.
virtual void Sirikata::Proximity::onSpaceNetworkConnected | ( | ServerID | sid | ) | [inline, virtual] |
Reimplemented from Sirikata::SpaceNetworkConnectionListener.
Reimplemented in Sirikata::LibproxProximityBase.
virtual void Sirikata::Proximity::onSpaceNetworkDisconnected | ( | ServerID | sid | ) | [inline, virtual] |
Reimplemented from Sirikata::SpaceNetworkConnectionListener.
Reimplemented in Sirikata::LibproxProximityBase.
void Sirikata::Proximity::poll | ( | ) | [virtual] |
Override this method to specify the work to be done when polling.
Implements Sirikata::PollingService.
Reimplemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
virtual void Sirikata::Proximity::receiveMessage | ( | Message * | msg | ) | [inline, virtual] |
Implements Sirikata::MessageRecipient.
Reimplemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
virtual void Sirikata::Proximity::receiveMigrationData | ( | const UUID & | obj, |
ServerID | source_server, | ||
ServerID | dest_server, | ||
const std::string & | data | ||
) | [pure virtual] |
Receive data for the migration of obj from source_server to dest_server.
Implements Sirikata::MigrationDataClient.
Implemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
Referenced by Sirikata::Server::handleMigration(), and Sirikata::Server::processAlreadyMigrating().
virtual void Sirikata::Proximity::removeQuery | ( | UUID | obj | ) | [pure virtual] |
Implemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
Referenced by Sirikata::Server::handleDisconnect(), and Sirikata::Server::~Server().
void Sirikata::Proximity::reportStats | ( | ) | [protected] |
virtual int32 Sirikata::Proximity::serverQueries | ( | ) | const [inline, protected, virtual] |
Reimplemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximity.
Referenced by reportStats().
virtual void Sirikata::Proximity::sessionClosed | ( | ObjectSession * | session | ) | [inline, virtual] |
Reimplemented from Sirikata::ObjectSessionListener.
Reimplemented in Sirikata::LibproxProximity.
void Sirikata::Proximity::start | ( | ) | [virtual] |
Start polling this service on this strand at the given maximum rate.
Reimplemented from Sirikata::PollingService.
Reimplemented in Sirikata::LibproxManualProximity, Sirikata::LibproxProximity, and Sirikata::LibproxProximityBase.
References mStatsPoller, and Sirikata::Poller::start().
void Sirikata::Proximity::stop | ( | ) | [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.
Reimplemented in Sirikata::LibproxManualProximity, and Sirikata::LibproxProximityBase.
References mStatsPoller, and Sirikata::Poller::stop().
virtual void Sirikata::Proximity::updatedSegmentation | ( | CoordinateSegmentation * | cseg, |
const std::vector< SegmentationInfo > & | new_seg | ||
) | [inline, virtual] |
Implements Sirikata::CoordinateSegmentation::Listener.
Reimplemented in Sirikata::LibproxProximityBase.
AggregateManager* Sirikata::Proximity::mAggregateManager [protected] |
Referenced by Sirikata::LibproxProximityBase::aggregateBoundsUpdated(), Sirikata::LibproxProximityBase::aggregateChildAdded(), Sirikata::LibproxProximityBase::aggregateChildRemoved(), Sirikata::LibproxProximityBase::aggregateCreated(), Sirikata::LibproxProximityBase::aggregateDestroyed(), and Sirikata::LibproxProximityBase::aggregateObserved().
SpaceContext* Sirikata::Proximity::mContext [protected] |
Referenced by Sirikata::LibproxProximityBase::addObjectHostProxStreamInfo(), Sirikata::LibproxProximityBase::addObjectProxStreamInfo(), Sirikata::LibproxProximityBase::aggregateBoundsUpdated(), Sirikata::LibproxProximityBase::aggregateChildAdded(), Sirikata::LibproxProximityBase::aggregateChildRemoved(), Sirikata::LibproxProximityBase::aggregateCreated(), Sirikata::LibproxProximityBase::aggregateDestroyed(), Sirikata::LibproxProximity::commandListNodes(), Sirikata::LibproxManualProximity::commandListNodes(), Sirikata::LibproxManualProximity::destroyQuery(), Sirikata::LibproxProximity::generateObjectQueryEvents(), Sirikata::LibproxProximity::generateServerQueryEvents(), Sirikata::LibproxProximityBase::getBaseStream(), Sirikata::LibproxProximityBase::handleCheckObjectClass(), Sirikata::LibproxProximity::handleDisconnectedServer(), Sirikata::LibproxManualProximity::handleOnPintoServerResult(), Sirikata::LibproxProximity::handleRemoveObjectQuery(), Sirikata::LibproxProximity::handleRemoveServerQuery(), Sirikata::LibproxProximityBase::LibproxProximityBase(), Sirikata::LibproxProximity::onPintoServerResult(), Proximity(), Sirikata::LibproxManualProximity::queryHasEvents(), Sirikata::LibproxProximity::recomputeAggregateQueryBounds(), Sirikata::LibproxManualProximity::registerOHQueryWithServerHandlers(), Sirikata::LibproxManualProximity::registerOHQueryWithServerIndexHandler(), Sirikata::LibproxManualProximity::registerServerQuery(), reportStats(), Sirikata::LibproxProximityBase::sendObjectHostResult(), Sirikata::LibproxProximityBase::sendObjectResult(), Sirikata::LibproxProximity::sendQueryRequests(), Sirikata::LibproxManualProximity::sendReplicatedClientProxMessage(), Sirikata::LibproxProximityBase::start(), Sirikata::LibproxProximity::start(), Sirikata::LibproxManualProximity::start(), Sirikata::LibproxProximity::tickQueryHandler(), Sirikata::LibproxManualProximity::tickQueryHandlers(), Sirikata::LibproxManualProximity::unregisterOHQueryWithServerHandlers(), Sirikata::LibproxManualProximity::unregisterOHQueryWithServerIndexHandler(), Sirikata::LibproxProximityBase::updateAggregateLoc(), Sirikata::LibproxProximityBase::updatedSegmentation(), Sirikata::LibproxProximity::updateQuery(), Sirikata::LibproxManualProximity::updateServerQueryResults(), Sirikata::LibproxProximityBase::validSession(), and ~Proximity().
CoordinateSegmentation* Sirikata::Proximity::mCSeg [protected] |
LocationService* Sirikata::Proximity::mLocService [protected] |
Referenced by Sirikata::LibproxProximity::addQuery(), Sirikata::LibproxProximityBase::aggregateCreated(), Sirikata::LibproxProximityBase::aggregateDestroyed(), Sirikata::LibproxProximityBase::handleAddObjectLocSubscription(), Sirikata::LibproxProximityBase::handleAddObjectLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleAddOHLocSubscription(), Sirikata::LibproxProximityBase::handleAddOHLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleAddServerLocSubscription(), Sirikata::LibproxProximityBase::handleAddServerLocSubscriptionWithID(), Sirikata::LibproxProximity::handleDisconnectedServer(), Sirikata::LibproxProximity::handleObjectProximityMessage(), Sirikata::LibproxProximityBase::handleRemoveAllObjectLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveAllOHLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveAllServerLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveObjectLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveObjectLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleRemoveOHLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveOHLocSubscriptionWithID(), Sirikata::LibproxProximityBase::handleRemoveServerLocSubscription(), Sirikata::LibproxProximityBase::handleRemoveServerLocSubscriptionWithID(), Sirikata::LibproxManualProximity::handleUpdateServerQueryResultsToLocService(), Sirikata::LibproxProximity::localBoundsUpdated(), Sirikata::LibproxProximity::localLocationUpdated(), Sirikata::LibproxProximityBase::processExpiredStaticObjectTimeouts(), Proximity(), Sirikata::LibproxProximity::receiveMessage(), Sirikata::LibproxProximityBase::updateAggregateLoc(), and ~Proximity().
Network::IOStrand* Sirikata::Proximity::mProxStrand [protected] |
Referenced by Sirikata::LibproxProximityBase::checkObjectClass(), Sirikata::LibproxManualProximity::handleObjectHostSubstream(), Sirikata::LibproxManualProximity::handleOnPintoServerResult(), Sirikata::LibproxManualProximity::handleUpdateServerQueryResultsToLocService(), Sirikata::LibproxManualProximity::handleUpdateServerQueryResultsToReplicatedTrees(), Sirikata::LibproxProximityBase::LibproxProximityBase(), Sirikata::LibproxProximity::localObjectRemoved(), Sirikata::LibproxManualProximity::localObjectRemoved(), Sirikata::LibproxManualProximity::onObjectHostSessionEnded(), Sirikata::LibproxManualProximity::onPintoServerLocUpdate(), Sirikata::LibproxManualProximity::onPintoServerResult(), Sirikata::LibproxProximityBase::onSpaceNetworkConnected(), Sirikata::LibproxProximityBase::onSpaceNetworkDisconnected(), Proximity(), Sirikata::LibproxManualProximity::queryHasEvents(), Sirikata::LibproxProximity::removeQuery(), Sirikata::LibproxProximity::replicaObjectRemoved(), Sirikata::LibproxManualProximity::replicaObjectRemoved(), Sirikata::LibproxProximity::sessionClosed(), Sirikata::LibproxProximity::updateQuery(), Sirikata::LibproxManualProximity::updateServerQuery(), and ~Proximity().
Poller Sirikata::Proximity::mStatsPoller [protected] |
const String Sirikata::Proximity::mTimeSeriesObjectHostQueryCountName [protected] |
Referenced by reportStats().
const String Sirikata::Proximity::mTimeSeriesObjectQueryCountName [protected] |
Referenced by reportStats().
const String Sirikata::Proximity::mTimeSeriesServerQueryCountName [protected] |
Referenced by reportStats().