Sirikata
|
#include <LocalObjectSegmentation.hpp>
Public Member Functions | |
LocalObjectSegmentation (SpaceContext *con, Network::IOStrand *o_strand, CoordinateSegmentation *cseg, OSegCache *cache) | |
virtual OSegEntry | cacheLookup (const UUID &obj_id) |
virtual OSegEntry | lookup (const UUID &obj_id) |
virtual void | addNewObject (const UUID &obj_id, float radius) |
virtual void | addMigratedObject (const UUID &obj_id, float radius, ServerID idServerAckTo, bool) |
virtual void | removeObject (const UUID &obj_id) |
virtual bool | clearToMigrate (const UUID &obj_id) |
virtual void | migrateObject (const UUID &obj_id, const OSegEntry &new_server_id) |
virtual void | handleMigrateMessageAck (const Sirikata::Protocol::OSeg::MigrateMessageAcknowledge &msg) |
virtual void | handleUpdateOSegMessage (const Sirikata::Protocol::OSeg::UpdateOSegMessage &update_oseg_msg) |
Private Types | |
typedef std::tr1::unordered_map< UUID, OSegEntry, UUID::Hasher > | OSegMap |
typedef OSegMap::iterator | OSegMapIter |
typedef OSegMap::const_iterator | OSegMapCIter |
Private Attributes | |
CoordinateSegmentation * | mCSeg |
OSegCache * | mCache |
OSegMap | mOSeg |
typedef std::tr1::unordered_map<UUID, OSegEntry, UUID::Hasher> Sirikata::LocalObjectSegmentation::OSegMap [private] |
typedef OSegMap::const_iterator Sirikata::LocalObjectSegmentation::OSegMapCIter [private] |
typedef OSegMap::iterator Sirikata::LocalObjectSegmentation::OSegMapIter [private] |
Sirikata::LocalObjectSegmentation::LocalObjectSegmentation | ( | SpaceContext * | con, |
Network::IOStrand * | o_strand, | ||
CoordinateSegmentation * | cseg, | ||
OSegCache * | cache | ||
) |
void Sirikata::LocalObjectSegmentation::addMigratedObject | ( | const UUID & | obj_id, |
float | radius, | ||
ServerID | idServerAckTo, | ||
bool | |||
) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References Sirikata::SpaceContext::id(), Sirikata::ObjectSegmentation::mContext, and mOSeg.
void Sirikata::LocalObjectSegmentation::addNewObject | ( | const UUID & | obj_id, |
float | radius | ||
) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References Sirikata::SpaceContext::id(), Sirikata::ObjectSegmentation::mContext, mOSeg, Sirikata::ObjectSegmentation::mWriteListener, Sirikata::OSegWriteListener::OBJ_ALREADY_REGISTERED, Sirikata::OSegWriteListener::osegAddNewFinished(), and Sirikata::OSegWriteListener::SUCCESS.
Implements Sirikata::ObjectSegmentation.
References Sirikata::OSegCache::get(), and mCache.
bool Sirikata::LocalObjectSegmentation::clearToMigrate | ( | const UUID & | obj_id | ) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References Sirikata::Logging::error, and LOCALOSEG_LOG.
virtual void Sirikata::LocalObjectSegmentation::handleMigrateMessageAck | ( | const Sirikata::Protocol::OSeg::MigrateMessageAcknowledge & | msg | ) | [inline, virtual] |
Implements Sirikata::ObjectSegmentation.
virtual void Sirikata::LocalObjectSegmentation::handleUpdateOSegMessage | ( | const Sirikata::Protocol::OSeg::UpdateOSegMessage & | update_oseg_msg | ) | [inline, virtual] |
Implements Sirikata::ObjectSegmentation.
Implements Sirikata::ObjectSegmentation.
References LOCALOSEG_LOG, mOSeg, Sirikata::OSegEntry::null(), and Sirikata::Logging::warn.
void Sirikata::LocalObjectSegmentation::migrateObject | ( | const UUID & | obj_id, |
const OSegEntry & | new_server_id | ||
) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References Sirikata::Logging::error, and LOCALOSEG_LOG.
void Sirikata::LocalObjectSegmentation::removeObject | ( | const UUID & | obj_id | ) | [virtual] |
Implements Sirikata::ObjectSegmentation.
References mOSeg.
Referenced by cacheLookup().
Referenced by addMigratedObject(), addNewObject(), lookup(), and removeObject().