Sirikata
|
PintoManagerBase is the base class for classes the answer queries looking for other servers that are relevant to object queries. More...
#include <PintoManagerBase.hpp>
Public Types | |
typedef Prox::Aggregator < ServerProxSimulationTraits > | ProxAggregator |
Public Member Functions | |
PintoManagerBase (PintoContext *ctx) | |
virtual | ~PintoManagerBase () |
virtual void | start () |
virtual void | stop () |
Protected Member Functions | |
virtual void | onConnected (Sirikata::Network::Stream *newStream) |
virtual void | onInitialMessage (Sirikata::Network::Stream *stream) |
virtual void | onRegionUpdate (Sirikata::Network::Stream *stream, BoundingSphere3f bounds) |
virtual void | onMaxSizeUpdate (Sirikata::Network::Stream *stream, float32 ms) |
virtual void | onQueryUpdate (Sirikata::Network::Stream *stream, const String &update) |
virtual void | onDisconnected (Sirikata::Network::Stream *stream) |
virtual void | aggregateCreated (ProxAggregator *handler, const ServerID &objid) |
virtual void | aggregateChildAdded (ProxAggregator *handler, const ServerID &objid, const ServerID &child, const Vector3f &bnds_center, const float32 bnds_center_radius, const float32 max_obj_size) |
virtual void | aggregateChildRemoved (ProxAggregator *handler, const ServerID &objid, const ServerID &child, const Vector3f &bnds_center, const float32 bnds_center_radius, const float32 max_obj_size) |
virtual void | aggregateBoundsUpdated (ProxAggregator *handler, const ServerID &objid, const Vector3f &bnds_center, const float32 bnds_center_radius, const float32 max_obj_size) |
virtual void | aggregateDestroyed (ProxAggregator *handler, const ServerID &objid) |
virtual void | aggregateObserved (ProxAggregator *handler, const ServerID &objid, uint32 nobservers, uint32 nchildren) |
ServerID | streamServerID (Sirikata::Network::Stream *) const |
Protected Attributes | |
PintoContext * | mContext |
Network::IOStrand * | mStrand |
Network::StreamListener * | mListener |
PintoManagerLocationServiceCache * | mLocCache |
Private Types | |
typedef std::tr1::unordered_map < Sirikata::Network::Stream *, ServerID > | StreamServerIDMap |
Private Member Functions | |
void | newStreamCallback (Sirikata::Network::Stream *newStream, Sirikata::Network::Stream::SetCallbacks &setCallbacks) |
void | handleClientConnection (Sirikata::Network::Stream *stream, Network::Stream::ConnectionStatus status, const std::string &reason) |
void | handleClientReceived (Sirikata::Network::Stream *stream, Network::Chunk &data, const Network::Stream::PauseReceiveCallback &pause) |
void | handleClientReadySend (Sirikata::Network::Stream *stream) |
Private Attributes | |
StreamServerIDMap | mStreamServers |
PintoManagerBase is the base class for classes the answer queries looking for other servers that are relevant to object queries.
It implements basic connectivity, leaving the implementation of queries and the particular format of requests and responses to implementations.
typedef Prox::Aggregator<ServerProxSimulationTraits> Sirikata::PintoManagerBase::ProxAggregator |
typedef std::tr1::unordered_map<Sirikata::Network::Stream*, ServerID> Sirikata::PintoManagerBase::StreamServerIDMap [private] |
Sirikata::PintoManagerBase::PintoManagerBase | ( | PintoContext * | ctx | ) |
References Sirikata::Logging::debug, Sirikata::FactoryWithOptionsImpl< T, Ftype >::getConstructor(), Sirikata::FactoryWithOptionsImpl< T, Ftype >::getOptionParser(), Sirikata::GetOptionValue< String >(), Sirikata::Network::StreamListenerFactory::getSingleton(), Sirikata::Network::StreamListener::listen(), mListener, mLocCache, mStrand, newStreamCallback(), OPT_PINTO_HOST, OPT_PINTO_PORT, OPT_PINTO_PROTOCOL, OPT_PINTO_PROTOCOL_OPTIONS, and PINTO_LOG.
void Sirikata::PintoManagerBase::aggregateBoundsUpdated | ( | ProxAggregator * | handler, |
const ServerID & | objid, | ||
const Vector3f & | bnds_center, | ||
const float32 | bnds_center_radius, | ||
const float32 | max_obj_size | ||
) | [protected, virtual] |
void Sirikata::PintoManagerBase::aggregateChildAdded | ( | ProxAggregator * | handler, |
const ServerID & | objid, | ||
const ServerID & | child, | ||
const Vector3f & | bnds_center, | ||
const float32 | bnds_center_radius, | ||
const float32 | max_obj_size | ||
) | [protected, virtual] |
void Sirikata::PintoManagerBase::aggregateChildRemoved | ( | ProxAggregator * | handler, |
const ServerID & | objid, | ||
const ServerID & | child, | ||
const Vector3f & | bnds_center, | ||
const float32 | bnds_center_radius, | ||
const float32 | max_obj_size | ||
) | [protected, virtual] |
void Sirikata::PintoManagerBase::aggregateCreated | ( | ProxAggregator * | handler, |
const ServerID & | objid | ||
) | [protected, virtual] |
References Sirikata::PintoManagerLocationServiceCache::addAggregate(), and mLocCache.
void Sirikata::PintoManagerBase::aggregateDestroyed | ( | ProxAggregator * | handler, |
const ServerID & | objid | ||
) | [protected, virtual] |
References mLocCache, and Sirikata::PintoManagerLocationServiceCache::removeAggregate().
void Sirikata::PintoManagerBase::aggregateObserved | ( | ProxAggregator * | handler, |
const ServerID & | objid, | ||
uint32 | nobservers, | ||
uint32 | nchildren | ||
) | [protected, virtual] |
void Sirikata::PintoManagerBase::handleClientConnection | ( | Sirikata::Network::Stream * | stream, |
Network::Stream::ConnectionStatus | status, | ||
const std::string & | reason | ||
) | [private] |
void Sirikata::PintoManagerBase::handleClientReadySend | ( | Sirikata::Network::Stream * | stream | ) | [private] |
Referenced by newStreamCallback().
void Sirikata::PintoManagerBase::handleClientReceived | ( | Sirikata::Network::Stream * | stream, |
Network::Chunk & | data, | ||
const Network::Stream::PauseReceiveCallback & | pause | ||
) | [private] |
References Sirikata::PintoManagerLocationServiceCache::addSpaceServer(), Sirikata::Network::Stream::close(), Sirikata::Logging::debug, Sirikata::Logging::error, mLocCache, mStreamServers, Sirikata::Time::null(), onDisconnected(), onInitialMessage(), onMaxSizeUpdate(), onQueryUpdate(), onRegionUpdate(), Sirikata::parsePBJMessage(), PINTO_LOG, streamServerID(), Sirikata::PintoManagerLocationServiceCache::updateSpaceServerMaxSize(), and Sirikata::PintoManagerLocationServiceCache::updateSpaceServerRegion().
Referenced by newStreamCallback().
void Sirikata::PintoManagerBase::newStreamCallback | ( | Sirikata::Network::Stream * | newStream, |
Sirikata::Network::Stream::SetCallbacks & | setCallbacks | ||
) | [private] |
References Sirikata::Logging::debug, handleClientConnection(), handleClientReadySend(), handleClientReceived(), onConnected(), and PINTO_LOG.
Referenced by PintoManagerBase().
void Sirikata::PintoManagerBase::onConnected | ( | Sirikata::Network::Stream * | newStream | ) | [protected, virtual] |
Reimplemented in Sirikata::ManualPintoManager, and Sirikata::PintoManager.
Referenced by newStreamCallback().
void Sirikata::PintoManagerBase::onDisconnected | ( | Sirikata::Network::Stream * | stream | ) | [protected, virtual] |
Reimplemented in Sirikata::ManualPintoManager, and Sirikata::PintoManager.
Referenced by handleClientConnection(), and handleClientReceived().
void Sirikata::PintoManagerBase::onInitialMessage | ( | Sirikata::Network::Stream * | stream | ) | [protected, virtual] |
Reimplemented in Sirikata::ManualPintoManager, and Sirikata::PintoManager.
Referenced by handleClientReceived().
void Sirikata::PintoManagerBase::onMaxSizeUpdate | ( | Sirikata::Network::Stream * | stream, |
float32 | ms | ||
) | [protected, virtual] |
Reimplemented in Sirikata::ManualPintoManager, and Sirikata::PintoManager.
Referenced by handleClientReceived().
void Sirikata::PintoManagerBase::onQueryUpdate | ( | Sirikata::Network::Stream * | stream, |
const String & | update | ||
) | [protected, virtual] |
Reimplemented in Sirikata::ManualPintoManager, and Sirikata::PintoManager.
Referenced by handleClientReceived().
void Sirikata::PintoManagerBase::onRegionUpdate | ( | Sirikata::Network::Stream * | stream, |
BoundingSphere3f | bounds | ||
) | [protected, virtual] |
Reimplemented in Sirikata::ManualPintoManager, and Sirikata::PintoManager.
Referenced by handleClientReceived().
void Sirikata::PintoManagerBase::start | ( | ) | [virtual] |
Implements Sirikata::Service.
References Sirikata::Network::TCPStreamListener::Data::startAccept().
void Sirikata::PintoManagerBase::stop | ( | ) | [virtual] |
Implements Sirikata::Service.
References Sirikata::Network::StreamListener::close(), and mListener.
ServerID Sirikata::PintoManagerBase::streamServerID | ( | Sirikata::Network::Stream * | stream | ) | const [protected] |
References mStreamServers.
Referenced by Sirikata::PintoManager::commandListQueriers(), Sirikata::ManualPintoManager::commandListQueriers(), handleClientConnection(), handleClientReceived(), Sirikata::ManualPintoManager::onMaxSizeUpdate(), Sirikata::ManualPintoManager::onQueryUpdate(), and Sirikata::ManualPintoManager::onRegionUpdate().
PintoContext* Sirikata::PintoManagerBase::mContext [protected] |
Referenced by PintoManagerBase(), stop(), and ~PintoManagerBase().
Referenced by aggregateBoundsUpdated(), aggregateChildAdded(), aggregateChildRemoved(), aggregateCreated(), aggregateDestroyed(), handleClientConnection(), handleClientReceived(), Sirikata::ManualPintoManager::ManualPintoManager(), Sirikata::PintoManager::PintoManager(), PintoManagerBase(), Sirikata::ManualPintoManager::queryHasEvents(), and Sirikata::ManualPintoManager::sendLocUpdate().
Network::IOStrand* Sirikata::PintoManagerBase::mStrand [protected] |
Referenced by PintoManagerBase(), and ~PintoManagerBase().
Referenced by handleClientReceived(), and streamServerID().