Sirikata
|
This class manages queries registered with servers. More...
#include <ServerQueryHandler.hpp>
This class manages queries registered with servers.
It accepts aggregated requests from the parent ManualObjectQueryProcessor, registers them with the server, and manages receiving results and forwarding them for further processing. It takes care of other details like orphan location updates so the parent just gets a stream of updates.
typedef std::tr1::unordered_map<OHDP::SpaceNodeID, ServerQueryStatePtr, OHDP::SpaceNodeID::Hasher> Sirikata::OH::Manual::ServerQueryHandler::ServerQueryMap [private] |
typedef std::tr1::shared_ptr<ServerQueryState> Sirikata::OH::Manual::ServerQueryHandler::ServerQueryStatePtr [private] |
Sirikata::OH::Manual::ServerQueryHandler::ServerQueryHandler | ( | ObjectHostContext * | ctx, |
ManualObjectQueryProcessor * | parent, | ||
Network::IOStrandPtr | strand | ||
) |
void Sirikata::OH::Manual::ServerQueryHandler::decrementServerQuery | ( | OHDP::SpaceNodeID | node | ) |
References Sirikata::Logging::detailed, mServerQueries, and QPLOG.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::onObjectNodeSession().
void Sirikata::OH::Manual::ServerQueryHandler::handleCreatedProxSubstream | ( | const OHDP::SpaceNodeID & | snid, |
int | success, | ||
OHDPSST::Stream::Ptr | prox_stream | ||
) | [private] |
References Sirikata::Logging::error, handleProximitySubstreamRead(), mServerQueries, QPLOG, SST_IMPL_SUCCESS, and writeSomeProxData().
Referenced by sendProxMessage().
bool Sirikata::OH::Manual::ServerQueryHandler::handleLocationMessage | ( | const OHDP::SpaceNodeID & | snid, |
const std::string & | payload | ||
) | [private] |
References Sirikata::Logging::debug, mServerQueries, and QPLOG.
Referenced by handleLocationSubstreamRead().
void Sirikata::OH::Manual::ServerQueryHandler::handleLocationSubstream | ( | const OHDP::SpaceNodeID & | snid, |
int | err, | ||
OHDPSST::Stream::Ptr | s | ||
) | [private] |
References handleLocationSubstreamRead().
Referenced by onSpaceNodeSession().
void Sirikata::OH::Manual::ServerQueryHandler::handleLocationSubstreamRead | ( | const OHDP::SpaceNodeID & | snid, |
OHDPSST::Stream::Ptr | s, | ||
std::stringstream * | prevdata, | ||
uint8 * | buffer, | ||
int | length | ||
) | [private] |
References handleLocationMessage().
Referenced by handleLocationSubstream().
void Sirikata::OH::Manual::ServerQueryHandler::handleProximityMessage | ( | const OHDP::SpaceNodeID & | snid, |
const String & | payload | ||
) | [private] |
References Sirikata::Logging::debug, Sirikata::Logging::error, mServerQueries, and QPLOG.
Referenced by handleProximitySubstreamRead().
void Sirikata::OH::Manual::ServerQueryHandler::handleProximitySubstreamRead | ( | const OHDP::SpaceNodeID & | snid, |
OHDPSST::Stream::Ptr | prox_stream, | ||
String * | prevdata, | ||
uint8 * | buffer, | ||
int | length | ||
) | [private] |
References Sirikata::Logging::detailed, handleProximityMessage(), mContext, Sirikata::Network::Frame::parse(), QPLOG, and Sirikata::Context::stopped().
Referenced by handleCreatedProxSubstream().
void Sirikata::OH::Manual::ServerQueryHandler::incrementServerQuery | ( | OHDP::SpaceNodeID | node | ) |
References Sirikata::Logging::detailed, mServerQueries, and QPLOG.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::onObjectNodeSession().
void Sirikata::OH::Manual::ServerQueryHandler::onCreatedReplicatedIndex | ( | Pinto::Manual::ReplicatedClientWithID< OHDP::SpaceNodeID > * | client, |
const OHDP::SpaceNodeID & | snid, | ||
ProxIndexID | proxid, | ||
ReplicatedLocationServiceCachePtr | loccache, | ||
ServerID | sid, | ||
bool | dynamic_objects | ||
) | [private, virtual] |
void Sirikata::OH::Manual::ServerQueryHandler::onDestroyedReplicatedIndex | ( | Pinto::Manual::ReplicatedClientWithID< OHDP::SpaceNodeID > * | client, |
const OHDP::SpaceNodeID & | snid, | ||
ProxIndexID | proxid | ||
) | [private, virtual] |
void Sirikata::OH::Manual::ServerQueryHandler::onSpaceNodeSession | ( | const OHDP::SpaceNodeID & | id, |
OHDPSST::Stream::Ptr | sn_stream | ||
) | [private, virtual] |
void Sirikata::OH::Manual::ServerQueryHandler::onSpaceNodeSessionEnded | ( | const OHDP::SpaceNodeID & | id | ) | [private, virtual] |
Reimplemented from Sirikata::SpaceNodeSessionListener.
References mParent, mServerQueries, and Sirikata::OH::Manual::ManualObjectQueryProcessor::removedServerQuery().
void Sirikata::OH::Manual::ServerQueryHandler::queriersAreObserving | ( | const OHDP::SpaceNodeID & | snid, |
const ProxIndexID | indexid, | ||
const ObjectReference & | objid | ||
) |
References Sirikata::Logging::detailed, mServerQueries, and QPLOG.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::queriersAreObserving().
void Sirikata::OH::Manual::ServerQueryHandler::queriersStoppedObserving | ( | const OHDP::SpaceNodeID & | snid, |
const ProxIndexID | indexid, | ||
const ObjectReference & | objid | ||
) |
References Sirikata::Logging::detailed, mServerQueries, and QPLOG.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::queriersStoppedObserving().
void Sirikata::OH::Manual::ServerQueryHandler::replicatedNodeRemoved | ( | const OHDP::SpaceNodeID & | snid, |
ProxIndexID | indexid, | ||
const ObjectReference & | objid | ||
) |
References Sirikata::Logging::detailed, mServerQueries, and QPLOG.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::replicatedNodeRemoved().
void Sirikata::OH::Manual::ServerQueryHandler::sendProxMessage | ( | ServerQueryMap::iterator | serv_it, |
const String & | msg | ||
) | [private] |
References handleCreatedProxSubstream(), OBJECT_PORT_PROXIMITY, and writeSomeProxData().
Referenced by sendReplicatedClientProxMessage().
void Sirikata::OH::Manual::ServerQueryHandler::sendReplicatedClientProxMessage | ( | Pinto::Manual::ReplicatedClientWithID< OHDP::SpaceNodeID > * | client, |
const OHDP::SpaceNodeID & | snid, | ||
const String & | msg | ||
) | [private, virtual] |
void Sirikata::OH::Manual::ServerQueryHandler::start | ( | ) | [virtual] |
References mContext, and Sirikata::ObjectHostContext::objectHost.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::start().
void Sirikata::OH::Manual::ServerQueryHandler::stop | ( | ) | [virtual] |
References mContext, mServerQueries, and Sirikata::ObjectHostContext::objectHost.
Referenced by Sirikata::OH::Manual::ManualObjectQueryProcessor::stop().
void Sirikata::OH::Manual::ServerQueryHandler::writeSomeProxData | ( | ServerQueryStatePtr | data | ) | [private] |
References Sirikata::Context::mainStrand, mContext, Sirikata::Network::IOStrand::post(), and Sirikata::Context::stopped().
Referenced by handleCreatedProxSubstream(), and sendProxMessage().
Referenced by handleProximitySubstreamRead(), onSpaceNodeSession(), start(), stop(), and writeSomeProxData().
Referenced by onCreatedReplicatedIndex(), onDestroyedReplicatedIndex(), onSpaceNodeSession(), and onSpaceNodeSessionEnded().
Referenced by decrementServerQuery(), handleCreatedProxSubstream(), handleLocationMessage(), handleProximityMessage(), incrementServerQuery(), onSpaceNodeSession(), onSpaceNodeSessionEnded(), queriersAreObserving(), queriersStoppedObserving(), replicatedNodeRemoved(), sendReplicatedClientProxMessage(), and stop().
Referenced by onSpaceNodeSession().