MiXiM  2.3

#include <BonnMotionFileCache.h>

Collaboration diagram for BonnMotionFileCache:

List of all members.

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

Detailed Description

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.

Author:
Andras Varga

Member Function Documentation

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;
}

The documentation for this class was generated from the following files: