Sirikata
|
#include <PintoManagerLocationServiceCache.hpp>
Classes | |
struct | SpaceServerData |
Public Member Functions | |
PintoManagerLocationServiceCache () | |
virtual | ~PintoManagerLocationServiceCache () |
void | addSpaceServer (ServerID sid, const TimedMotionVector3f &loc, const BoundingSphere3f ®ion, float32 maxSize) |
void | updateSpaceServerLocation (ServerID sid, const TimedMotionVector3f &loc) |
void | updateSpaceServerRegion (ServerID sid, const BoundingSphere3f ®ion) |
void | updateSpaceServerMaxSize (ServerID sid, float32 ms) |
void | removeSpaceServer (ServerID sid) |
void | addAggregate (ServerID sid) |
void | updateAggregateLocation (ServerID sid, const TimedMotionVector3f &loc) |
void | updateAggregateBounds (ServerID sid, const AggregateBoundingInfo &bnds) |
void | removeAggregate (ServerID sid) |
virtual void | addPlaceholderImposter (const ObjectID &uuid, const Vector3f ¢er_offset, const float32 center_bounds_radius, const float32 max_size, const String &zernike, const String &mesh) |
virtual Iterator | startTracking (const ObjectID &id) |
virtual void | stopTracking (const Iterator &id) |
virtual bool | startRefcountTracking (const ObjectID &id) |
virtual void | stopRefcountTracking (const ObjectID &id) |
bool | tracking (const ObjectID &id) |
virtual TimedMotionVector3f | location (const Iterator &id) |
virtual Vector3 | centerOffset (const Iterator &id) |
virtual float32 | centerBoundsRadius (const Iterator &id) |
virtual float32 | maxSize (const Iterator &id) |
virtual bool | isLocal (const Iterator &id) |
Prox::ZernikeDescriptor & | zernikeDescriptor (const Iterator &id) |
String | mesh (const Iterator &id) |
bool | aggregate (const Iterator &id) |
virtual const ObjectID & | iteratorID (const Iterator &id) |
virtual void | addUpdateListener (LocationUpdateListenerType *listener) |
virtual void | removeUpdateListener (LocationUpdateListenerType *listener) |
Private Types | |
typedef std::tr1::unordered_map < ServerID, SpaceServerData > | ServerMap |
typedef std::tr1::unordered_set < LocationUpdateListenerType * > | ListenerSet |
typedef boost::recursive_mutex | Mutex |
typedef boost::lock_guard< Mutex > | Lock |
Private Attributes | |
ServerMap | mServers |
ListenerSet | mListeners |
Mutex | mMutex |
typedef std::tr1::unordered_set<LocationUpdateListenerType*> Sirikata::PintoManagerLocationServiceCache::ListenerSet [private] |
typedef boost::lock_guard<Mutex> Sirikata::PintoManagerLocationServiceCache::Lock [private] |
typedef boost::recursive_mutex Sirikata::PintoManagerLocationServiceCache::Mutex [private] |
typedef std::tr1::unordered_map<ServerID, SpaceServerData> Sirikata::PintoManagerLocationServiceCache::ServerMap [private] |
Sirikata::PintoManagerLocationServiceCache::PintoManagerLocationServiceCache | ( | ) |
Sirikata::PintoManagerLocationServiceCache::~PintoManagerLocationServiceCache | ( | ) | [virtual] |
void Sirikata::PintoManagerLocationServiceCache::addAggregate | ( | ServerID | sid | ) |
References mMutex, mServers, and Sirikata::Time::null().
Referenced by Sirikata::PintoManagerBase::aggregateCreated().
void Sirikata::PintoManagerLocationServiceCache::addPlaceholderImposter | ( | const ObjectID & | uuid, |
const Vector3f & | center_offset, | ||
const float32 | center_bounds_radius, | ||
const float32 | max_size, | ||
const String & | zernike, | ||
const String & | mesh | ||
) | [virtual] |
void Sirikata::PintoManagerLocationServiceCache::addSpaceServer | ( | ServerID | sid, |
const TimedMotionVector3f & | loc, | ||
const BoundingSphere3f & | region, | ||
float32 | maxSize | ||
) |
References Sirikata::PintoManagerLocationServiceCache::SpaceServerData::location, Sirikata::PintoManagerLocationServiceCache::SpaceServerData::maxSize, mListeners, mMutex, mServers, and Sirikata::PintoManagerLocationServiceCache::SpaceServerData::region.
Referenced by Sirikata::PintoManagerBase::handleClientReceived().
void Sirikata::PintoManagerLocationServiceCache::addUpdateListener | ( | LocationUpdateListenerType * | listener | ) | [virtual] |
References mListeners, and mMutex.
bool Sirikata::PintoManagerLocationServiceCache::aggregate | ( | const Iterator & | id | ) |
float32 Sirikata::PintoManagerLocationServiceCache::centerBoundsRadius | ( | const Iterator & | id | ) | [virtual] |
Vector3f Sirikata::PintoManagerLocationServiceCache::centerOffset | ( | const Iterator & | id | ) | [virtual] |
bool Sirikata::PintoManagerLocationServiceCache::isLocal | ( | const Iterator & | id | ) | [virtual] |
const ServerID & Sirikata::PintoManagerLocationServiceCache::iteratorID | ( | const Iterator & | id | ) | [virtual] |
References EXTRACT_ITERATOR.
TimedMotionVector3f Sirikata::PintoManagerLocationServiceCache::location | ( | const Iterator & | id | ) | [virtual] |
float32 Sirikata::PintoManagerLocationServiceCache::maxSize | ( | const Iterator & | id | ) | [virtual] |
String Sirikata::PintoManagerLocationServiceCache::mesh | ( | const Iterator & | id | ) |
Referenced by Sirikata::ManualPintoManager::queryHasEvents().
void Sirikata::PintoManagerLocationServiceCache::removeAggregate | ( | ServerID | sid | ) |
References mMutex, and mServers.
Referenced by Sirikata::PintoManagerBase::aggregateDestroyed().
void Sirikata::PintoManagerLocationServiceCache::removeSpaceServer | ( | ServerID | sid | ) |
References mListeners, mMutex, mServers, and Sirikata::PintoManagerLocationServiceCache::SpaceServerData::removable.
Referenced by Sirikata::PintoManagerBase::handleClientConnection().
void Sirikata::PintoManagerLocationServiceCache::removeUpdateListener | ( | LocationUpdateListenerType * | listener | ) | [virtual] |
References mListeners, and mMutex.
bool Sirikata::PintoManagerLocationServiceCache::startRefcountTracking | ( | const ObjectID & | id | ) | [virtual] |
LocationServiceCache::Iterator Sirikata::PintoManagerLocationServiceCache::startTracking | ( | const ObjectID & | id | ) | [virtual] |
void Sirikata::PintoManagerLocationServiceCache::stopRefcountTracking | ( | const ObjectID & | id | ) | [virtual] |
void Sirikata::PintoManagerLocationServiceCache::stopTracking | ( | const Iterator & | id | ) | [virtual] |
References EXTRACT_ITERATOR, EXTRACT_ITERATOR_DATA, mMutex, mServers, Sirikata::PintoManagerLocationServiceCache::SpaceServerData::removable, and Sirikata::PintoManagerLocationServiceCache::SpaceServerData::tracking.
Referenced by Sirikata::ManualPintoManager::queryHasEvents(), and Sirikata::ManualPintoManager::sendLocUpdate().
bool Sirikata::PintoManagerLocationServiceCache::tracking | ( | const ObjectID & | id | ) |
void Sirikata::PintoManagerLocationServiceCache::updateAggregateBounds | ( | ServerID | sid, |
const AggregateBoundingInfo & | bnds | ||
) |
References Sirikata::AggregateBoundingInfo::centerBounds(), Sirikata::AggregateBoundingInfo::maxObjectRadius, mMutex, mServers, and Sirikata::PintoManagerLocationServiceCache::SpaceServerData::region.
Referenced by Sirikata::PintoManagerBase::aggregateBoundsUpdated(), Sirikata::PintoManagerBase::aggregateChildAdded(), and Sirikata::PintoManagerBase::aggregateChildRemoved().
void Sirikata::PintoManagerLocationServiceCache::updateAggregateLocation | ( | ServerID | sid, |
const TimedMotionVector3f & | loc | ||
) |
void Sirikata::PintoManagerLocationServiceCache::updateSpaceServerLocation | ( | ServerID | sid, |
const TimedMotionVector3f & | loc | ||
) |
References mListeners, mMutex, and mServers.
void Sirikata::PintoManagerLocationServiceCache::updateSpaceServerMaxSize | ( | ServerID | sid, |
float32 | ms | ||
) |
References Sirikata::PintoManagerLocationServiceCache::SpaceServerData::maxSize, mListeners, mMutex, and mServers.
Referenced by Sirikata::PintoManagerBase::handleClientReceived().
void Sirikata::PintoManagerLocationServiceCache::updateSpaceServerRegion | ( | ServerID | sid, |
const BoundingSphere3f & | region | ||
) |
References mListeners, mMutex, mServers, and Sirikata::PintoManagerLocationServiceCache::SpaceServerData::region.
Referenced by Sirikata::PintoManagerBase::handleClientReceived().
Prox::ZernikeDescriptor & Sirikata::PintoManagerLocationServiceCache::zernikeDescriptor | ( | const Iterator & | id | ) |
Referenced by addAggregate(), addSpaceServer(), addUpdateListener(), removeAggregate(), removeSpaceServer(), removeUpdateListener(), startRefcountTracking(), stopRefcountTracking(), stopTracking(), updateAggregateBounds(), updateAggregateLocation(), updateSpaceServerLocation(), updateSpaceServerMaxSize(), and updateSpaceServerRegion().