00001
00002
00003
00004
00005
00006
00007
00008 #ifndef EVDB_PRINTABLE_H
00009 #define EVDB_PRINTABLE_H
00010 #include <string>
00011 #include <map>
00012
00013
00014 namespace evdb {
00016 class Printable {
00017 public:
00018 Printable();
00019 virtual ~Printable();
00020
00022 virtual void Print(const char* filename) = 0;
00023
00026 virtual const char* Description() const { return "??"; }
00027
00030 virtual const char* PrintTag() const = 0;
00031
00032 public:
00033 static void AddToListOfPrintables(const char* name, Printable* p);
00034 static void RemoveFromListOfPrintables(Printable* p);
00035 static std::map<std::string,Printable*>& GetPrintables();
00036
00037
00038 };
00039 }
00040
00041 #endif // EVDB_PRINTABLE_H
00042
00043