MiXiM
2.3
|
#include <BonnMotionFileCache.h>
Public Member Functions | |
virtual const BonnMotionFile * | getFile (const char *filename) |
Static Public Member Functions | |
static BonnMotionFileCache * | getInstance () |
static void | deleteInstance () |
Protected Types | |
typedef std::map< std::string, BonnMotionFile > | BMFileMap |
Protected Member Functions | |
void | parseFile (const char *filename, BonnMotionFile &bmFile) |
Protected Attributes | |
BMFileMap | cache |
Static Protected Attributes | |
static BonnMotionFileCache * | inst |
Singleton object to read and store BonnMotion files. Used within BonnMotionMobility. Needed because otherwise every node would have to open and read the file independently.
void BonnMotionFileCache::deleteInstance | ( | ) | [static] |
Deletes the singleton instance.
{ if (inst) { delete inst; inst = NULL; } }
const BonnMotionFile * BonnMotionFileCache::getFile | ( | const char * | filename | ) | [virtual] |
Returns the given document.
Referenced by BonnMotionMobility::initialize().
{ // if found, return it from cache BMFileMap::iterator it = cache.find(std::string(filename)); if (it!=cache.end()) return &(it->second); // load and store in cache BonnMotionFile& bmFile = cache[filename]; parseFile(filename, bmFile); return &bmFile; }
BonnMotionFileCache * BonnMotionFileCache::getInstance | ( | ) | [static] |
Returns the singleton instance.
Referenced by BonnMotionMobility::initialize().
{ if (!inst) inst = new BonnMotionFileCache; return inst; }