Sirikata
|
Base class for Contexts, provides basic infrastructure such as IOServices, IOStrands, Trace, and timing information. More...
#include <Context.hpp>
Base class for Contexts, provides basic infrastructure such as IOServices, IOStrands, Trace, and timing information.
typedef std::vector<Service*> Sirikata::Context::ServiceList [protected] |
typedef std::vector<Thread*> Sirikata::Context::ThreadList [protected] |
Sirikata::Context::Context | ( | const String & | name, |
Network::IOService * | ios, | ||
Network::IOStrand * | strand, | ||
Trace::Trace * | _trace, | ||
const Time & | epoch, | ||
const Duration & | simlen = Duration::zero() |
||
) |
References CTX_LOG, Sirikata::Logging::info, init, name, and profiler.
Sirikata::Context::~Context | ( | ) |
References CTX_LOG, Sirikata::Logging::info, and profiler.
void Sirikata::Context::add | ( | Service * | ps | ) | [inline] |
References Sirikata::Service::start().
Referenced by Sirikata::SessionManager::handleSpaceConnection(), Sirikata::LibproxProximityBase::LibproxProximityBase(), Sirikata::LocalForwarder::LocalForwarder(), Sirikata::Graphics::ResourceDownloadPlanner::ResourceDownloadPlanner(), Sirikata::LibproxProximity::start(), and Sirikata::LibproxManualProximity::start().
void Sirikata::Context::cleanup | ( | ) |
References mKillService, mKillThread, mKillTimer, and Sirikata::Network::IOService::stop().
void Sirikata::Context::cleanupWorkerThreads | ( | ) | [protected] |
References mWorkerThreads.
Referenced by run(), and shutdown().
Command::Commander* Sirikata::Context::commander | ( | ) | const [inline] |
Referenced by Sirikata::AggregateManager::AggregateManager(), Sirikata::LocationService::LocationService(), Sirikata::ObjectHost::ObjectHost(), Sirikata::Graphics::PriorityDownloadPlanner::PriorityDownloadPlanner(), Sirikata::Transfer::TransferMediator::registerContext(), and Sirikata::Server::Server().
Time Sirikata::Context::epoch | ( | ) | const [inline] |
void Sirikata::Context::forceQuit | ( | ) | [inline, protected] |
References Sirikata::Logging::fatal, and SILOG.
Referenced by startForceQuitTimer().
void Sirikata::Context::handleSignal | ( | Signal::Type | stype | ) | [protected] |
References CTX_LOG, Sirikata::Logging::info, ioService, Sirikata::Network::IOService::post(), shutdown(), and Sirikata::Signal::typeAsString().
Referenced by start().
Time Sirikata::Context::realTime | ( | ) | const [inline] |
In a few, rare cases, you'll need the *actual* time representation rather than an offset since the start of simulation.
In those cases, this method gives you the real time, in UTC. Note that this is still in relation to a "global" epoch, so it is still not convertible directly to, e.g. a Unix time. For that you'll need to use Timer::getSpecifiedDate to get a relative offset.
NOTE: Only use these methods if you absolutely have to.
References Sirikata::Timer::getUTCOffset(), and Sirikata::Time::null().
Referenced by Sirikata::OH::SQLiteStorage::acquireLease(), and Sirikata::OH::SQLiteStorage::getLeaseString().
Time Sirikata::Context::recentRealTime | ( | ) | const [inline] |
References Sirikata::Timer::getUTCOffset(), and Sirikata::Time::null().
Referenced by Sirikata::Trace::GraphiteTimeSeries::report().
Time Sirikata::Context::recentSimTime | ( | ) | const [inline] |
Referenced by Sirikata::ManualReplicatedRequestManager::addFailedRefine(), Sirikata::StandardLocationService::commandObjectProperties(), Sirikata::BulletPhysicsService::commandObjectProperties(), Sirikata::LibproxProximityBase::handleCheckObjectClass(), Sirikata::AggregateManager::handleKeepAliveResponse(), Sirikata::AggregateManager::handleUploadFinished(), Sirikata::CacheLRUOriginal::maintain(), Sirikata::LocalForwarder::poll(), Sirikata::CSFQODPFlowScheduler::pop(), Sirikata::ManualReplicatedRequestManager::processExpiredRequests(), Sirikata::LibproxProximityBase::processExpiredStaticObjectTimeouts(), Sirikata::CSFQODPFlowScheduler::push(), Sirikata::TimeProfiler::report(), Sirikata::Forwarder::reportStats(), Sirikata::AlwaysLocationUpdatePolicy::reportStats(), Sirikata::CacheLRUOriginal::satisfiesCacheAgeCondition(), and Sirikata::AggregateManager::sendKeepAlives().
void Sirikata::Context::remove | ( | Service * | ps | ) | [inline] |
Referenced by Sirikata::SessionManager::handleSpaceConnection().
void Sirikata::Context::run | ( | uint32 | nthreads = 1 , |
ExecutionThreads | exthreads = IncludeOriginal |
||
) |
void Sirikata::Context::setCommander | ( | Command::Commander * | c | ) |
References Sirikata::Network::IOService::commandReportAllStats(), Sirikata::Network::IOService::commandReportStats(), ioService, mCommander, Sirikata::Command::Commander::registerCommand(), and Sirikata::Command::Commander::unregisterCommand().
Referenced by Sirikata::Command::HttpCommander::HttpCommander(), and Sirikata::Command::HttpCommander::~HttpCommander().
void Sirikata::Context::shutdown | ( | ) |
References cleanupWorkerThreads(), CTX_LOG, IncludeOriginal, Sirikata::Logging::info, mExecutionThreadsType, mServices, mSignalHandler, stop(), and Sirikata::Signal::unregisterHandler().
Referenced by handleSignal(), Sirikata::ObjectHost::hostedObjectDestroyed(), Sirikata::Graphics::OgreRenderer::poll(), run(), and start().
Time Sirikata::Context::simTime | ( | ) | const [inline] |
References Sirikata::Timer::now().
Referenced by start().
References Sirikata::Time::null().
Referenced by Sirikata::CBRLocationServiceCache::addPlaceholderImposter(), Sirikata::LibproxProximityBase::aggregateCreated(), Sirikata::BulletPhysicsService::BulletPhysicsService(), Sirikata::Complete_Cache::checkUpdate(), Sirikata::PintoManager::commandListNodes(), Sirikata::ManualPintoManager::commandListNodes(), Sirikata::LibproxProximity::commandListNodes(), Sirikata::LibproxManualProximity::commandListNodes(), Sirikata::OH::Manual::ObjectQueryHandler::commandListNodes(), Sirikata::MigrationMonitor::computeNextEventTime(), Sirikata::ObjectHost::currentLocalTime(), Sirikata::StandardLocationService::currentOrientation(), Sirikata::BulletPhysicsService::currentOrientation(), Sirikata::StandardLocationService::currentPosition(), Sirikata::BulletPhysicsService::currentPosition(), Sirikata::ObjectHost::currentSpaceTime(), Sirikata::FairServerMessageQueue::disableDownstream(), Sirikata::Server::finishAddObject(), Sirikata::LibproxProximity::generateObjectQueryEvents(), Sirikata::LibproxProximity::generateServerQueryEvents(), Sirikata::Server::handleConnect(), Sirikata::LibproxProximity::handleDisconnectedServer(), Sirikata::TimeSyncServer::handleMessage(), Sirikata::HostedObject::handleProximityUpdate(), Sirikata::SessionManager::handleServerMessages(), Sirikata::TimeSyncClient::handleSyncMessage(), Sirikata::FCache::FCachePropDataStruct::insert(), Sirikata::FCache::insert(), Sirikata::BulletPhysicsService::internalTickCallback(), Sirikata::CraqObjectSegmentation::migrateObject(), Sirikata::SimpleCamera::SimpleCameraObjectScript::moveAction(), Sirikata::FairServerMessageQueue::networkReadyToSend(), Sirikata::LocalPintoServerQuerier::notifyLocUpdate(), Sirikata::LocalPintoServerQuerier::notifyResult(), Sirikata::TimeSyncClient::poll(), Sirikata::Graphics::OgreRenderer::preFrame(), Sirikata::RedisObjectSegmentation::processExpiredObjects(), Sirikata::LibproxManualProximity::queryHasEvents(), Sirikata::LibproxProximity::recomputeAggregateQueryBounds(), Sirikata::LibproxManualProximity::registerOHQueryWithServerHandlers(), Sirikata::LibproxManualProximity::registerOHQueryWithServerIndexHandler(), Sirikata::LibproxManualProximity::registerServerQuery(), Sirikata::SimpleCamera::SimpleCameraObjectScript::rotateAction(), Sirikata::RedisObjectSegmentation::scheduleObjectRefresh(), Sirikata::SessionManager::send(), Sirikata::UniformCoordinateSegmentation::service(), Sirikata::MigrationMonitor::service(), Sirikata::FairServerMessageReceiver::service(), Sirikata::FairServerMessageQueue::service(), Sirikata::BulletPhysicsService::service(), Sirikata::Graphics::OgreSystem::simTime(), Sirikata::SimpleCamera::SimpleCameraObjectScript::stableRotateAction(), Sirikata::RedisObjectSegmentation::startTimeoutHandler(), Sirikata::LibproxProximity::tickQueryHandler(), Sirikata::OH::Manual::ObjectQueryHandler::tickQueryHandler(), Sirikata::LibproxManualProximity::tickQueryHandlers(), Sirikata::LibproxProximityBase::updateAggregateLoc(), Sirikata::BulletRigidBodyObject::updateObjectFromBullet(), Sirikata::BulletPhysicsService::updateObjectFromDeactivation(), Sirikata::FCache::updatePopAndIncrement(), Sirikata::FCache::updatePopNoIncrement(), and Sirikata::MigrationMonitor::waitForNextEvent().
void Sirikata::Context::start | ( | ) | [protected, virtual] |
Implements Sirikata::Service.
References handleSignal(), mainStrand, mFinishedTimer, mSignalHandler, mSimDuration, Sirikata::Signal::registerHandler(), shutdown(), simTime(), and Sirikata::Network::IOStrand::wrap().
void Sirikata::Context::startForceQuitTimer | ( | ) | [protected] |
References Sirikata::Network::IOTimer::create(), forceQuit(), mKillService, mKillThread, mKillTimer, and Sirikata::Network::IOService::runNoReturn().
Referenced by stop().
void Sirikata::Context::stop | ( | ) | [protected, virtual] |
Implements Sirikata::Service.
References mFinishedTimer, mStopRequested, Sirikata::AtomicValue< T >::read(), and startForceQuitTimer().
Referenced by shutdown().
bool Sirikata::Context::stopped | ( | ) | const [inline] |
Referenced by Sirikata::SQLiteObjectFactory::connectObjects(), Sirikata::CSVObjectFactory::connectObjects(), Sirikata::CassandraObjectFactory::connectObjects(), Sirikata::OH::Manual::ServerQueryHandler::handleProximitySubstreamRead(), Sirikata::ObjectHost::hostedObjectDestroyed(), Sirikata::Graphics::PriorityDownloadPlanner::iPoll(), Sirikata::JS::JSObjectScriptManager::loadMesh(), Sirikata::ObjectHostConnectionManager::send(), Sirikata::HostedObject::stopped(), Sirikata::LocalForwarder::tryForward(), Sirikata::ObjectHostConnectionManager::validConnection(), and Sirikata::OH::Manual::ServerQueryHandler::writeSomeProxData().
Trace::Trace* Sirikata::Context::trace | ( | ) | const [inline] |
void Sirikata::Context::workerThread | ( | ) | [protected] |
References ioService, and Sirikata::Network::IOService::run().
Referenced by run().
Referenced by Sirikata::Command::HttpServer::acceptConnection(), Sirikata::RedisObjectSegmentation::connect(), Sirikata::Trace::GraphiteTimeSeries::connect(), Sirikata::JS::JSObjectScriptManager::createJSCtx(), Sirikata::HttpServerIDMap::finishLookup(), Sirikata::AsyncConnectionGet::get(), Sirikata::JS::JSCtx::getIOService(), Sirikata::Trace::GraphiteTimeSeries::handleResolve(), handleSignal(), Sirikata::Command::HttpServer::HttpServer(), Sirikata::AsyncCraqSet::initialize(), Sirikata::AsyncCraqGet::initialize(), Sirikata::TabularServerIDMap::lookupExternal(), Sirikata::LocalServerIDMap::lookupExternal(), Sirikata::TabularServerIDMap::lookupInternal(), Sirikata::LocalServerIDMap::lookupInternal(), Sirikata::TabularServerIDMap::lookupRandomExternal(), Sirikata::LocalServerIDMap::lookupRandomExternal(), Sirikata::AsyncCraqSet::reInitializeNode(), Sirikata::AsyncCraqGet::reInitializeNode(), Sirikata::HttpServerIDMap::retryOrFail(), run(), Sirikata::AsyncConnectionSet::set(), setCommander(), Sirikata::TCPSpaceNetwork::TCPSpaceNetwork(), and workerThread().
Referenced by Sirikata::LibproxProximityBase::aggregateBoundsUpdated(), Sirikata::LibproxProximityBase::aggregateChildAdded(), Sirikata::LibproxProximityBase::aggregateChildRemoved(), Sirikata::LibproxProximityBase::aggregateCreated(), Sirikata::LibproxProximityBase::aggregateDestroyed(), Sirikata::NullAuthenticator::authenticate(), Sirikata::SpaceNodeConnection::connect(), Sirikata::SQLiteObjectFactory::connectObjects(), Sirikata::CSVObjectFactory::connectObjects(), Sirikata::CassandraObjectFactory::connectObjects(), Sirikata::CoordinateSegmentationClient::CoordinateSegmentationClient(), Sirikata::DistributedCoordinateSegmentation::createSocketContainers(), Sirikata::Graphics::WebView::defaultEvent(), Sirikata::LibproxManualProximity::destroyQuery(), Sirikata::DistributedCoordinateSegmentation::DistributedCoordinateSegmentation(), Sirikata::OH::CassandraStorage::executeCommit(), Sirikata::OH::SQLiteStorage::executeCount(), Sirikata::OH::CassandraStorage::executeCount(), Sirikata::JS::JSObjectScriptManager::finishMeshDownload(), Sirikata::AggregateManager::generateAggregateMeshAsync(), Sirikata::LibproxProximity::generateObjectQueryEvents(), Sirikata::OH::Manual::ObjectQueryHandler::generateObjectQueryEvents(), Sirikata::LibproxProximity::generateServerQueryEvents(), Sirikata::SessionManager::getAnySpaceConnection(), Sirikata::BulletPhysicsService::getMeshCallback(), Sirikata::HostedObject::handleConnected(), Sirikata::HostedObject::handleConnectedIndirect(), Sirikata::ObjectHostConnectionManager::handleConnectionEvent(), Sirikata::LocationService::handleLocationUpdateSubstreamRead(), Sirikata::ObjectHostConnectionManager::handleNewConnection(), Sirikata::LibproxProximity::handleRemoveObjectQuery(), Sirikata::OH::Manual::ObjectQueryHandler::handleRemoveObjectQuery(), Sirikata::LibproxProximity::handleRemoveServerQuery(), Sirikata::AggregateManager::handleUploadFinished(), Sirikata::ObjectHost::hostedObjectDestroyed(), Sirikata::Forwarder::initialize(), Sirikata::TCPSpaceNetwork::listen(), Sirikata::JS::JSObjectScriptManager::loadMesh(), Sirikata::LocationService::LocationService(), Sirikata::HostedObject::metadataDownloaded(), Sirikata::ObjectHost::ObjectHost(), Sirikata::OH::Manual::ObjectQueryHandler::onBoundsUpdated(), Sirikata::OH::Manual::ObjectQueryHandler::onEpochUpdated(), Sirikata::OH::Manual::ObjectQueryHandler::onLocationUpdated(), Sirikata::OH::Manual::ObjectQueryHandler::onMeshUpdated(), Sirikata::Server::onObjectHostDisconnected(), Sirikata::Server::onObjectHostMessageReceived(), Sirikata::OH::Manual::ObjectQueryHandler::onOrientationUpdated(), Sirikata::OH::Manual::ObjectQueryHandler::onPhysicsUpdated(), Sirikata::SessionManager::openConnectionStartMigration(), Sirikata::SessionManager::openConnectionStartSession(), Sirikata::Server::osegAddNewFinished(), Sirikata::Server::osegMigrationAcknowledged(), Sirikata::JS::JSObjectScriptManager::parseMeshWork(), Sirikata::OH::CassandraPersistedObjectSet::performUpdate(), Sirikata::OH::SQLitePersistedObjectSet::performUpdateWithRetry(), Sirikata::OH::SQLiteStorage::processTransactions(), Sirikata::LibproxProximityBase::ProxStreamInfo< EndpointType, StreamType >::proxSubstreamCallback(), Sirikata::Graphics::ProxyEntity::ProxyEntity(), Sirikata::LibproxManualProximity::queryHasEvents(), Sirikata::SessionManager::registerSpaceNodeConnection(), Sirikata::LibproxProximityBase::ProxStreamInfo< EndpointType, StreamType >::requestProxSubstream(), Sirikata::SQLiteAuthenticator::respond(), Sirikata::Forwarder::routeObjectMessageToServer(), Sirikata::SessionManager::scheduleHandleServerMessages(), Sirikata::Server::scheduleObjectHostMessageRouting(), Sirikata::Forwarder::scheduleProcessReceivedServerMessages(), Sirikata::SessionManager::sendConnectSuccessAck(), Sirikata::SessionManager::sendDisconnectMessage(), Sirikata::Server::sendSessionMessageWithRetry(), Sirikata::Server::Server(), Sirikata::Graphics::WebView::setReadyCallback(), Sirikata::SessionManager::setupSpaceConnection(), Sirikata::ObjectHostConnectionManager::shutdown(), Sirikata::LocalPintoServerQuerier::start(), start(), Sirikata::OH::Simple::SimpleObjectQueryProcessor::stop(), Sirikata::ObjectSegmentation::trySendMigAcks(), Sirikata::Server::trySendMigrationMessages(), Sirikata::LocalPintoServerQuerier::updateLargestObject(), Sirikata::LocalPintoServerQuerier::updateRegion(), Sirikata::LibproxManualProximity::updateServerQueryResults(), Sirikata::AggregateManager::uploadAggregateMesh(), Sirikata::JS::EmersonMessagingManager::writeData(), Sirikata::LibproxProximityBase::ProxStreamInfo< EndpointType, StreamType >::writeSomeObjectResults(), and Sirikata::OH::Manual::ServerQueryHandler::writeSomeProxData().
Command::Commander* Sirikata::Context::mCommander [protected] |
Referenced by setCommander().
Sirikata::AtomicValue<Time> Sirikata::Context::mEpoch [protected] |
Referenced by run(), and shutdown().
Network::IOTimerPtr Sirikata::Context::mFinishedTimer [protected] |
Network::IOService* Sirikata::Context::mKillService [protected] |
Referenced by cleanup(), and startForceQuitTimer().
std::tr1::shared_ptr<Thread> Sirikata::Context::mKillThread [protected] |
Referenced by cleanup(), and startForceQuitTimer().
Network::IOTimerPtr Sirikata::Context::mKillTimer [protected] |
Referenced by cleanup(), and startForceQuitTimer().
Sirikata::AtomicValue<Time> Sirikata::Context::mLastSimTime [protected] |
ServiceList Sirikata::Context::mServices [protected] |
Referenced by shutdown().
Signal::HandlerID Sirikata::Context::mSignalHandler [protected] |
Referenced by shutdown(), and start().
Duration Sirikata::Context::mSimDuration [protected] |
Referenced by start().
Sirikata::AtomicValue<bool> Sirikata::Context::mStopRequested [protected] |
Trace::Trace* Sirikata::Context::mTrace [protected] |
ThreadList Sirikata::Context::mWorkerThreads [protected] |
Referenced by cleanupWorkerThreads(), and run().
const String Sirikata::Context::name |
Referenced by Context(), Sirikata::CoordinateSegmentation::CoordinateSegmentation(), Sirikata::LoadMonitor::LoadMonitor(), Sirikata::LocationService::LocationService(), Sirikata::PollingService::PollingService(), Sirikata::Graphics::ResourceLoader::ResourceLoader(), Sirikata::ServerMessageQueue::ServerMessageQueue(), Sirikata::ServerMessageReceiver::ServerMessageReceiver(), Sirikata::SessionManager::SessionManager(), Sirikata::TimeSteppedSimulation::TimeSteppedSimulation(), and ~Context().
Referenced by Sirikata::Server::finishAddObject(), Sirikata::Server::handleMigration(), Sirikata::Server::handleMigrationEvent(), Sirikata::Server::handleObjectHostConnectionClosed(), Sirikata::Server::handleSessionMessage(), Sirikata::LocalForwarder::poll(), Sirikata::SessionManager::poll(), Sirikata::Server::processAlreadyMigrating(), Sirikata::Forwarder::reportStats(), Sirikata::Proximity::reportStats(), Sirikata::AlwaysLocationUpdatePolicy::reportStats(), and Sirikata::Trace::TimeSeries::TimeSeries().