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 <list>
00023 #include <vector>
00024 #include <omnetpp.h>
00025 #include "BasicMobility.h"
00026
00027 class BonnMotionFileCache;
00028
00035 class BonnMotionFile
00036 {
00037 public:
00038 typedef std::vector<double> Line;
00039 private:
00040 friend class BonnMotionFileCache;
00041 typedef std::list<Line> LineList;
00042 LineList lines;
00043 public:
00044 const Line *getLine(int nodeId) const;
00045 };
00046
00047
00056 class BonnMotionFileCache
00057 {
00058 protected:
00059 typedef std::map<std::string,BonnMotionFile> BMFileMap;
00060 BMFileMap cache;
00061 static BonnMotionFileCache *inst;
00062 void parseFile(const char *filename, BonnMotionFile& bmFile);
00063 BonnMotionFileCache() {}
00064 virtual ~BonnMotionFileCache() {}
00065
00066 public:
00070 static BonnMotionFileCache *instance();
00071
00075 static void deleteInstance();
00076
00080 virtual const BonnMotionFile *getFile(const char *filename);
00081 };
00082
00083 #endif
00084