00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef BONNMOTIONFILECACHE_H
00020 #define BONNMOTIONFILECACHE_H
00021
00022 #include "BaseMobility.h"
00023
00024 class BonnMotionFileCache;
00025
00032 class BonnMotionFile
00033 {
00034 public:
00035 typedef std::vector<double> Line;
00036 private:
00037 friend class BonnMotionFileCache;
00038 typedef std::list<Line> LineList;
00039 LineList lines;
00040 public:
00041 const Line *getLine(int nodeId) const;
00042 };
00043
00044
00053 class BonnMotionFileCache
00054 {
00055 protected:
00056 typedef std::map<std::string,BonnMotionFile> BMFileMap;
00057 BMFileMap cache;
00058 static BonnMotionFileCache *inst;
00059 void parseFile(const char *filename, BonnMotionFile& bmFile);
00060 BonnMotionFileCache() {}
00061 virtual ~BonnMotionFileCache() {}
00062
00063 public:
00067 static BonnMotionFileCache *getInstance();
00068
00072 static void deleteInstance();
00073
00077 virtual const BonnMotionFile *getFile(const char *filename);
00078 };
00079
00080 #endif
00081