Sirikata
|
#include <FCache.hpp>
Classes | |
class | FCachePropDataStruct |
Public Member Functions | |
FCache (double avgPopPar, std::string cacheName, FCacheScoreFunc scoreFunc, FCacheScoreFuncPrint scoreFuncPrint, SpaceContext *contex) | |
FCache (double avgPopPar, std::string cacheName, FCacheScoreFunc scoreFunc, FCacheScoreFuncPrint scoreFuncPrint, SpaceContext *context, int CACHE_SIZE) | |
virtual | ~FCache () |
virtual void | insert (const UUID &toInsert, ServerID bid, CacheTimeMS tms, double vMag, double weight, double distance, double radius, double lookupWeight, double unitsScaling) |
virtual const OSegEntry & | lookup (const UUID &lookingFor) |
virtual std::string | getCacheName () |
virtual void | remove (const UUID &toRemove) |
Static Public Member Functions | |
static void | checkThisRecord (const FCacheRecord *bcr) |
static void | printVecRecs (const std::vector< FCacheRecord * > &recs) |
Public Attributes | |
SpaceContext * | ctx |
OSegEntry | mCraqEntry |
Private Types | |
typedef std::map< UUID, FCacheRecord * > | FCacheDataMap |
typedef std::pair< UUID, FCacheRecord * > | FCacheInsertionPair |
typedef std::vector< UUID > | FCacheObjVec |
typedef std::map< int, bool > | FCacheValidMap |
Private Member Functions | |
void | updatePopAndIncrement (FCacheRecord *) |
void | updatePopNoIncrement (FCacheRecord *) |
void | updatePopNoIncrement (std::vector< FCacheRecord * > &) |
void | updateRecord (FCacheRecord *rec, ServerID bid, double weight, double distance, double radius, double vMag) |
void | generateRandomCacheProper (int numToSelect, std::vector< FCacheRecord * > &randRecs) |
void | printCacheRecordVec (const std::vector< FCacheRecord * > &vec) |
void | checkStaticTimeSanity () |
void | checkCacheProperSanity () |
void | printCacheProper () |
void | removeCacheProper (FCacheRecord *rec) |
void | printWorstRecords () |
void | killRecord () |
Private Attributes | |
double | ewmaRecPopPar |
std::string | mName |
FCacheScoreFunc | mScoreFunc |
FCacheScoreFuncPrint | mScoreFuncPrint |
unsigned int | MAX_SIZE_CACHE_PROPER |
FCachePropDataStruct | cacheProper |
std::vector< FCacheRecord * > | worstRecords |
Static Private Attributes | |
static const int | FCACHE_RAND_SELECT_NUMBER = 15 |
static const int | FCACHE_KEEP_NUMBER = 3 |
typedef std::map<UUID, FCacheRecord*> Sirikata::FCache::FCacheDataMap [private] |
typedef std::pair<UUID,FCacheRecord*> Sirikata::FCache::FCacheInsertionPair [private] |
typedef std::vector<UUID> Sirikata::FCache::FCacheObjVec [private] |
typedef std::map<int,bool> Sirikata::FCache::FCacheValidMap [private] |
Sirikata::FCache::FCache | ( | double | avgPopPar, |
std::string | cacheName, | ||
FCacheScoreFunc | scoreFunc, | ||
FCacheScoreFuncPrint | scoreFuncPrint, | ||
SpaceContext * | contex | ||
) |
Sirikata::FCache::FCache | ( | double | avgPopPar, |
std::string | cacheName, | ||
FCacheScoreFunc | scoreFunc, | ||
FCacheScoreFuncPrint | scoreFuncPrint, | ||
SpaceContext * | context, | ||
int | CACHE_SIZE | ||
) |
Sirikata::FCache::~FCache | ( | ) | [virtual] |
References worstRecords.
void Sirikata::FCache::checkCacheProperSanity | ( | ) | [private] |
void Sirikata::FCache::checkStaticTimeSanity | ( | ) | [private] |
static void Sirikata::FCache::checkThisRecord | ( | const FCacheRecord * | bcr | ) | [static] |
void Sirikata::FCache::generateRandomCacheProper | ( | int | numToSelect, |
std::vector< FCacheRecord * > & | randRecs | ||
) | [private] |
std::string Sirikata::FCache::getCacheName | ( | ) | [virtual] |
Implements Sirikata::Cache.
References mName.
void Sirikata::FCache::insert | ( | const UUID & | toInsert, |
ServerID | bid, | ||
CacheTimeMS | tms, | ||
double | vMag, | ||
double | weight, | ||
double | distance, | ||
double | radius, | ||
double | lookupWeight, | ||
double | unitsScaling | ||
) | [virtual] |
Implements Sirikata::Cache.
References cacheProper, ctx, Sirikata::JS::JSPresence::distance(), Sirikata::FCache::FCachePropDataStruct::getRecord(), Sirikata::FCache::FCachePropDataStruct::hasRoom(), Sirikata::FCache::FCachePropDataStruct::insert(), killRecord(), Sirikata::Time::null(), Sirikata::Context::simTime(), and updateRecord().
void Sirikata::FCache::killRecord | ( | ) | [private] |
Implements Sirikata::Cache.
References Sirikata::FCacheRecord::bID, cacheProper, Sirikata::FCache::FCachePropDataStruct::getRecord(), mCraqEntry, Sirikata::OSegEntry::null(), Sirikata::FCacheRecord::radius, Sirikata::OSegEntry::setRadius(), Sirikata::OSegEntry::setServer(), and updatePopAndIncrement().
void Sirikata::FCache::printCacheProper | ( | ) | [private] |
void Sirikata::FCache::printCacheRecordVec | ( | const std::vector< FCacheRecord * > & | vec | ) | [private] |
void Sirikata::FCache::printVecRecs | ( | const std::vector< FCacheRecord * > & | recs | ) | [static] |
References PTR_AS_INT.
void Sirikata::FCache::printWorstRecords | ( | ) | [private] |
References worstRecords.
void Sirikata::FCache::remove | ( | const UUID & | toRemove | ) | [virtual] |
Implements Sirikata::Cache.
References cacheProper, Sirikata::FCache::FCachePropDataStruct::getRecord(), removeCacheProper(), and worstRecords.
void Sirikata::FCache::removeCacheProper | ( | FCacheRecord * | rec | ) | [private] |
References cacheProper, and Sirikata::FCache::FCachePropDataStruct::remove().
Referenced by remove().
void Sirikata::FCache::updatePopAndIncrement | ( | FCacheRecord * | bcRec | ) | [private] |
References ctx, ewmaRecPopPar, Sirikata::FCacheRecord::lastEvictNum, Sirikata::FCacheRecord::mLastAccessTime, Sirikata::Time::null(), Sirikata::FCacheRecord::popAvg, Sirikata::FCacheRecord::printRecord(), Sirikata::FCacheRecord::reqsSinceEvict, and Sirikata::Context::simTime().
Referenced by lookup().
void Sirikata::FCache::updatePopNoIncrement | ( | std::vector< FCacheRecord * > & | bcRecVec | ) | [private] |
References updatePopNoIncrement().
void Sirikata::FCache::updatePopNoIncrement | ( | FCacheRecord * | bcRec | ) | [private] |
void Sirikata::FCache::updateRecord | ( | FCacheRecord * | rec, |
ServerID | bid, | ||
double | weight, | ||
double | distance, | ||
double | radius, | ||
double | vMag | ||
) | [private] |
Referenced by Sirikata::FCache::FCachePropDataStruct::clear(), Sirikata::FCache::FCachePropDataStruct::empty(), generateRandomCacheProper(), Sirikata::FCache::FCachePropDataStruct::getRandom(), Sirikata::FCache::FCachePropDataStruct::getRecord(), Sirikata::FCache::FCachePropDataStruct::getSize(), Sirikata::FCache::FCachePropDataStruct::hasRoom(), Sirikata::FCache::FCachePropDataStruct::insert(), insert(), killRecord(), lookup(), Sirikata::FCache::FCachePropDataStruct::popFirst(), Sirikata::FCache::FCachePropDataStruct::printCacheProper(), Sirikata::FCache::FCachePropDataStruct::remove(), remove(), removeCacheProper(), Sirikata::FCache::FCachePropDataStruct::sanityCheck(), and Sirikata::FCache::FCachePropDataStruct::~FCachePropDataStruct().
double Sirikata::FCache::ewmaRecPopPar [private] |
Referenced by updatePopAndIncrement(), and updatePopNoIncrement().
const int Sirikata::FCache::FCACHE_KEEP_NUMBER = 3 [static, private] |
const int Sirikata::FCache::FCACHE_RAND_SELECT_NUMBER = 15 [static, private] |
Referenced by killRecord().
unsigned int Sirikata::FCache::MAX_SIZE_CACHE_PROPER [private] |
Referenced by lookup().
std::string Sirikata::FCache::mName [private] |
Referenced by getCacheName().
FCacheScoreFunc Sirikata::FCache::mScoreFunc [private] |
Referenced by killRecord().
std::vector<FCacheRecord*> Sirikata::FCache::worstRecords [private] |
Referenced by killRecord(), printWorstRecords(), remove(), and ~FCache().