Sirikata
|
#include <CraqObjectSegmentation.hpp>
typedef std::tr1::unordered_map<UUID,TransLookup,UUID::Hasher> Sirikata::CraqObjectSegmentation::InTransitMap [private] |
typedef std::queue<NotFoundData*> Sirikata::CraqObjectSegmentation::NfDataQ [private] |
typedef std::tr1::unordered_map<UUID, CraqEntry, UUID::Hasher> Sirikata::CraqObjectSegmentation::ObjectSet [private] |
typedef std::tr1::unordered_map<int, TrackedSetResultsData> Sirikata::CraqObjectSegmentation::TrackedMessageMap [private] |
typedef std::tr1::unordered_map<int, TrackedSetResultsDataAdded> Sirikata::CraqObjectSegmentation::TrackedMessageMapAdded [private] |
Sirikata::CraqObjectSegmentation::CraqObjectSegmentation | ( | SpaceContext * | con, |
Network::IOStrand * | o_strand, | ||
CoordinateSegmentation * | cseg, | ||
OSegCache * | cache, | ||
char | unique | ||
) |
References checkOwnTimeCount, checkOwnTimeDur, craqDhtGet1, craqDhtGet2, craqDhtSet, Sirikata::AsyncCraqHybrid::initialize(), Sirikata::CraqInitializeArgs::ipAdd, myUniquePrefixKey, numAlreadyLookingUp, numCacheHits, numCraqLookups, numLookingUpDebug, numLookups, numMigrationNotCompleteYet, numOnThisServer, numServices, numTimeElapsedCacheEviction, and Sirikata::CraqInitializeArgs::port.
Sirikata::CraqObjectSegmentation::~CraqObjectSegmentation | ( | ) | [virtual] |
void Sirikata::CraqObjectSegmentation::addMigratedObject | ( | const UUID & | obj_id, |
float | radius, | ||
ServerID | idServerAckTo, | ||
bool | generateAck | ||
) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References convert_obj_id_to_dht_key(), craqDhtSet, Sirikata::CraqObjectSegmentation::TrackedSetResultsData::dur, Sirikata::Time::epoch(), generateAcknowledgeMessage(), getUniqueTrackID(), Sirikata::SpaceContext::id(), Sirikata::Time::local(), Sirikata::ObjectSegmentation::mContext, Sirikata::CraqObjectSegmentation::TrackedSetResultsData::migAckMsg, mObjects, mReceivingObjects, Sirikata::ObjectSegmentation::mStopping, receivingObjects_m, Sirikata::AsyncCraqHybrid::set(), Sirikata::CraqDataSetGet::SET, Sirikata::UUID::toString(), and trackingMessages.
Implements Sirikata::ObjectSegmentation.
References convert_obj_id_to_dht_key(), craqDhtSet, Sirikata::CraqObjectSegmentation::TrackedSetResultsDataAdded::dur, Sirikata::Time::epoch(), generateAddedMessage(), getUniqueTrackID(), Sirikata::SpaceContext::id(), Sirikata::Time::local(), Sirikata::ObjectSegmentation::mContext, Sirikata::CraqObjectSegmentation::TrackedSetResultsDataAdded::msgAdded, Sirikata::ObjectSegmentation::mStopping, Sirikata::AsyncCraqHybrid::set(), Sirikata::CraqDataSetGet::SET, and trackedAddMessages.
void Sirikata::CraqObjectSegmentation::beginCraqLookup | ( | const UUID & | obj_id, |
OSegLookupTraceToken * | traceToken | ||
) | [private] |
References CONTEXT_SPACETRACE, craqDhtGet1, craqDhtGet2, Sirikata::AsyncCraqHybrid::get(), Sirikata::CraqDataSetGet::GET, Sirikata::SpaceContext::id(), mapDataKeyToUUID, Sirikata::ObjectSegmentation::mContext, mInTransitOrLookup, mOSegQueueLen, Sirikata::ObjectSegmentation::mStopping, myUniquePrefixKey, Sirikata::CraqEntry::null(), numAlreadyLookingUp, numCraqLookups, numLookingUpDebug, Sirikata::OSegLookupTraceToken::OSEG_TRACE_CRAQ_LOOKUP_BEGIN, Sirikata::OSegLookupTraceToken::OSEG_TRACE_CRAQ_LOOKUP_END, Sirikata::OSegLookupTraceToken::OSEG_TRACE_CRAQ_LOOKUP_NOT_ALREADY_LOOKING_UP_BEGIN, Sirikata::OSegLookupTraceToken::OSEG_TRACE_CRAQ_LOOKUP_NOT_ALREADY_LOOKING_UP_END, Sirikata::UUID::rawHexData(), Sirikata::TransLookup::sID, Sirikata::OSegLookupTraceToken::stamp(), and Sirikata::TransLookup::timeAdmitted.
Referenced by lookup().
void Sirikata::CraqObjectSegmentation::callOsegLookupCompleted | ( | const UUID & | obj_id, |
const CraqEntry & | sID, | ||
OSegLookupTraceToken * | traceToken | ||
) | [private] |
References CONTEXT_SPACETRACE, Sirikata::ObjectSegmentation::mLookupListener, Sirikata::ObjectSegmentation::mStopping, Sirikata::OSegLookupTraceToken::OSEG_TRACE_LOOKUP_RETURN_END, Sirikata::OSegLookupListener::osegLookupCompleted(), and Sirikata::OSegLookupTraceToken::stamp().
Referenced by craqGetResult(), and processMigrateMessageAcknowledge().
bool Sirikata::CraqObjectSegmentation::checkMigratingFromNotCompleteYet | ( | const UUID & | obj_id, |
float * | radius | ||
) | [private] |
References inTransOrLookup_m, mInTransitOrLookup, and Sirikata::ObjectSegmentation::mStopping.
Referenced by lookup().
void Sirikata::CraqObjectSegmentation::checkNotFoundData | ( | ) | [private] |
References craqDhtGet1, Sirikata::CraqObjectSegmentation::NotFoundData::dur, Sirikata::Time::epoch(), Sirikata::AsyncCraqHybrid::get(), Sirikata::CraqDataSetGet::GET, Sirikata::Time::local(), mNfData, Sirikata::ObjectSegmentation::mStopping, myUniquePrefixKey, Sirikata::CraqObjectSegmentation::NotFoundData::obj_id, Sirikata::UUID::rawHexData(), and Sirikata::CraqObjectSegmentation::NotFoundData::traceToken.
bool Sirikata::CraqObjectSegmentation::clearToMigrate | ( | const UUID & | obj_id | ) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References inTransOrLookup_m, mInTransitOrLookup, mReceivingObjects, Sirikata::ObjectSegmentation::mStopping, and receivingObjects_m.
Referenced by migrateObject().
void Sirikata::CraqObjectSegmentation::convert_obj_id_to_dht_key | ( | const UUID & | obj_id, |
CraqDataKey & | returner | ||
) | const [private] |
References myUniquePrefixKey, and Sirikata::UUID::rawHexData().
Referenced by addMigratedObject(), and addNewObject().
void Sirikata::CraqObjectSegmentation::craqGetResult | ( | CraqOperationResult * | cor | ) | [virtual] |
References callOsegLookupCompleted(), Sirikata::CraqOperationResult::idToString(), Sirikata::OSegCache::insert(), inTransOrLookup_m, Sirikata::OSegEntry::isNull(), mapDataKeyToUUID, mCraqCache, mInTransitOrLookup, mOSegQueueLen, Sirikata::ObjectSegmentation::mStopping, notFoundFunction(), Sirikata::CraqOperationResult::objID, Sirikata::OSegLookupTraceToken::OSEG_TRACE_LOOKUP_RETURN_BEGIN, Sirikata::OSegEntry::radius(), Sirikata::OSegEntry::server(), Sirikata::CraqOperationResult::servID, Sirikata::OSegLookupTraceToken::stamp(), Sirikata::CraqOperationResult::succeeded, Sirikata::CraqOperationResult::traceToken, Sirikata::CraqOperationResult::tracking, and Sirikata::CraqOperationResult::whichOperation.
Referenced by Sirikata::AsyncConnectionGet::processValueFound(), and Sirikata::AsyncConnectionGet::processValueNotFound().
void Sirikata::CraqObjectSegmentation::craqSetResult | ( | CraqOperationResult * | cor | ) | [virtual] |
References Sirikata::SpaceContext::id(), Sirikata::OSegCache::insert(), Sirikata::ObjectSegmentation::mContext, mCraqCache, mObjects, Sirikata::ObjectSegmentation::mStopping, Sirikata::ObjectSegmentation::mWriteListener, Sirikata::OSegWriteListener::osegAddNewFinished(), Sirikata::ObjectSegmentation::queueMigAck(), removeFromInTransOrLookup(), removeFromReceivingObjects(), Sirikata::OSegWriteListener::SUCCESS, trackedAddMessages, Sirikata::CraqOperationResult::trackedMessage, and trackingMessages.
Referenced by Sirikata::AsyncConnectionSet::processStoredValue(), and Sirikata::AsyncConnectionGet::processStoredValue().
Sirikata::Protocol::OSeg::MigrateMessageAcknowledge * Sirikata::CraqObjectSegmentation::generateAcknowledgeMessage | ( | const UUID & | obj_id, |
float | radius, | ||
ServerID | serverToAckTo | ||
) |
References Sirikata::SpaceContext::id(), and Sirikata::ObjectSegmentation::mContext.
Referenced by addMigratedObject().
Sirikata::Protocol::OSeg::AddedObjectMessage * Sirikata::CraqObjectSegmentation::generateAddedMessage | ( | const UUID & | obj_id, |
float | radius | ||
) | [private] |
Referenced by addNewObject().
int Sirikata::CraqObjectSegmentation::getPushback | ( | ) | [virtual] |
Reimplemented from Sirikata::ObjectSegmentation.
References mOSegQueueLen.
int Sirikata::CraqObjectSegmentation::getUniqueTrackID | ( | ) | [private] |
References mAtomicTrackID.
Referenced by addMigratedObject(), and addNewObject().
void Sirikata::CraqObjectSegmentation::handleMigrateMessageAck | ( | const Sirikata::Protocol::OSeg::MigrateMessageAcknowledge & | msg | ) | [virtual] |
void Sirikata::CraqObjectSegmentation::handleUpdateOSegMessage | ( | const Sirikata::Protocol::OSeg::UpdateOSegMessage & | update_oseg_msg | ) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References Sirikata::ObjectSegmentation::mStopping, mStrand, Sirikata::Network::IOStrand::post(), and processUpdateOSegMessage().
Implements Sirikata::ObjectSegmentation.
References beginCraqLookup(), checkMigratingFromNotCompleteYet(), checkOwn(), CONTEXT_SPACETRACE, Sirikata::SpaceContext::id(), Sirikata::ObjectSegmentation::mContext, mOSegQueueLen, Sirikata::ObjectSegmentation::mStopping, Sirikata::OSegEntry::notNull(), Sirikata::CraqEntry::null(), numCacheHits, numLookups, numMigrationNotCompleteYet, numOnThisServer, Sirikata::OSegLookupTraceToken::OSEG_TRACE_CHECK_CACHE_LOCAL_BEGIN, Sirikata::OSegLookupTraceToken::OSEG_TRACE_CHECK_CACHE_LOCAL_END, Sirikata::OSegLookupTraceToken::OSEG_TRACE_INITIAL_LOOKUP_TIME, Sirikata::OSegLookupTraceToken::osegQLenPostQuery, Sirikata::ObjectSegmentation::oStrand, Sirikata::Network::IOStrand::post(), satisfiesCache(), Sirikata::OSegEntry::server(), shouldLog(), and Sirikata::OSegLookupTraceToken::stamp().
void Sirikata::CraqObjectSegmentation::migrateObject | ( | const UUID & | obj_id, |
const OSegEntry & | new_server_id | ||
) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References clearToMigrate(), CONTEXT_SPACETRACE, Sirikata::Time::epoch(), Sirikata::SpaceContext::id(), Sirikata::Time::local(), Sirikata::ObjectSegmentation::mContext, mInTransitOrLookup, mObjects, Sirikata::ObjectSegmentation::mStopping, Sirikata::Time::raw(), Sirikata::OSegEntry::server(), Sirikata::TransLookup::sID, Sirikata::Context::simTime(), and Sirikata::UUID::toString().
void Sirikata::CraqObjectSegmentation::notFoundFunction | ( | CraqOperationResult * | nf | ) | [private] |
References Sirikata::CraqObjectSegmentation::NotFoundData::dur, Sirikata::Time::epoch(), Sirikata::CraqOperationResult::idToString(), Sirikata::Time::local(), mapDataKeyToUUID, mNfData, Sirikata::ObjectSegmentation::mStopping, Sirikata::CraqObjectSegmentation::NotFoundData::obj_id, Sirikata::CraqOperationResult::traceToken, and Sirikata::CraqObjectSegmentation::NotFoundData::traceToken.
Referenced by craqGetResult().
void Sirikata::CraqObjectSegmentation::processMigrateMessageAcknowledge | ( | const Sirikata::Protocol::OSeg::MigrateMessageAcknowledge & | msg | ) |
References callOsegLookupCompleted(), CONTEXT_SPACETRACE, Sirikata::SpaceContext::id(), Sirikata::OSegCache::insert(), inTransOrLookup_m, Sirikata::ObjectSegmentation::mContext, mCraqCache, mInTransitOrLookup, Sirikata::ObjectSegmentation::mStopping, Sirikata::ObjectSegmentation::mWriteListener, and Sirikata::OSegWriteListener::osegMigrationAcknowledged().
Referenced by handleMigrateMessageAck().
void Sirikata::CraqObjectSegmentation::processUpdateOSegMessage | ( | const Sirikata::Protocol::OSeg::UpdateOSegMessage & | update_oseg_msg | ) |
References Sirikata::OSegCache::insert(), mCraqCache, and Sirikata::ObjectSegmentation::mStopping.
Referenced by handleUpdateOSegMessage().
void Sirikata::CraqObjectSegmentation::removeFromInTransOrLookup | ( | const UUID & | obj_id | ) | [private] |
References inTransOrLookup_m, mInTransitOrLookup, and Sirikata::ObjectSegmentation::mStopping.
Referenced by craqSetResult().
void Sirikata::CraqObjectSegmentation::removeFromReceivingObjects | ( | const UUID & | obj_id | ) | [private] |
References mReceivingObjects, Sirikata::ObjectSegmentation::mStopping, and receivingObjects_m.
Referenced by craqSetResult().
void Sirikata::CraqObjectSegmentation::removeObject | ( | const UUID & | obj_id | ) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References Sirikata::OSegCache::get(), mCraqCache, and Sirikata::CraqEntry::null().
Referenced by cacheLookup(), and lookup().
bool Sirikata::CraqObjectSegmentation::shouldLog | ( | ) | [private] |
Referenced by lookup().
void Sirikata::CraqObjectSegmentation::stop | ( | ) | [virtual] |
Reimplemented from Sirikata::ObjectSegmentation.
References craqDhtGet1, craqDhtGet2, craqDhtSet, and Sirikata::AsyncCraqHybrid::stop().
int Sirikata::CraqObjectSegmentation::checkOwnTimeCount [private] |
Referenced by CraqObjectSegmentation().
double Sirikata::CraqObjectSegmentation::checkOwnTimeDur [private] |
Referenced by CraqObjectSegmentation().
Referenced by beginCraqLookup(), checkNotFoundData(), CraqObjectSegmentation(), and stop().
Referenced by beginCraqLookup(), CraqObjectSegmentation(), and stop().
Referenced by addMigratedObject(), addNewObject(), CraqObjectSegmentation(), and stop().
boost::mutex Sirikata::CraqObjectSegmentation::inTransOrLookup_m [private] |
std::map<std::string, UUID > Sirikata::CraqObjectSegmentation::mapDataKeyToUUID [private] |
Referenced by beginCraqLookup(), craqGetResult(), and notFoundFunction().
AtomicValue<int> Sirikata::CraqObjectSegmentation::mAtomicTrackID [private] |
Referenced by getUniqueTrackID().
Referenced by craqGetResult(), craqSetResult(), processMigrateMessageAcknowledge(), processUpdateOSegMessage(), and satisfiesCache().
Referenced by checkNotFoundData(), notFoundFunction(), and ~CraqObjectSegmentation().
Referenced by addMigratedObject(), checkOwn(), craqSetResult(), and migrateObject().
Referenced by addMigratedObject(), clearToMigrate(), and removeFromReceivingObjects().
Referenced by handleMigrateMessageAck(), and handleUpdateOSegMessage().
char Sirikata::CraqObjectSegmentation::myUniquePrefixKey [private] |
Referenced by beginCraqLookup(), checkNotFoundData(), convert_obj_id_to_dht_key(), and CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numAlreadyLookingUp [private] |
Referenced by beginCraqLookup(), and CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numCacheHits [private] |
Referenced by cacheLookup(), CraqObjectSegmentation(), lookup(), and ~CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numCraqLookups [private] |
Referenced by beginCraqLookup(), CraqObjectSegmentation(), and ~CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numLookingUpDebug [private] |
Referenced by beginCraqLookup(), and CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numLookups [private] |
Referenced by CraqObjectSegmentation(), lookup(), and ~CraqObjectSegmentation().
Referenced by CraqObjectSegmentation(), lookup(), and ~CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numOnThisServer [private] |
Referenced by CraqObjectSegmentation(), lookup(), and ~CraqObjectSegmentation().
int Sirikata::CraqObjectSegmentation::numServices [private] |
Referenced by CraqObjectSegmentation().
Referenced by CraqObjectSegmentation(), and ~CraqObjectSegmentation().
boost::mutex Sirikata::CraqObjectSegmentation::receivingObjects_m [private] |
Referenced by addMigratedObject(), clearToMigrate(), and removeFromReceivingObjects().
Referenced by addNewObject(), craqSetResult(), and ~CraqObjectSegmentation().
Referenced by addMigratedObject(), and craqSetResult().