00001 00002 #ifndef DBISIMFLAGASSOCIATION 00003 #define DBISIMFLAGASSOCIATION 00004 00027 #include <iosfwd> 00028 using std::ostream; 00029 #include <list> 00030 using std::list; 00031 #include <map> 00032 using std::map; 00033 00034 #include "Conventions/SimFlag.h" 00035 00036 class DbiSimFlagAssociation; 00037 class Registry; 00038 00039 ostream& operator<<(ostream& s, const DbiSimFlagAssociation& simFlagAss); 00040 00041 class DbiSimFlagAssociation 00042 { 00043 00044 00045 public: 00046 00047 // Typedefs for tired fingers. 00048 typedef list<SimFlag::SimFlag_t> SimList_t; 00049 typedef map<SimFlag::SimFlag_t,SimList_t > SimMap_t; 00050 00051 // Constructors and destructors. 00052 DbiSimFlagAssociation(); 00053 virtual ~DbiSimFlagAssociation(); 00054 00055 // State testing member functions 00056 00057 SimList_t Get(const SimFlag::SimFlag_t value)const; 00058 void Print(ostream& s)const; 00059 void Show(); 00060 00062 static const DbiSimFlagAssociation& Instance(); 00063 00064 // State changing member functions. 00065 00066 void Clear() { fAssociations.clear(); } 00067 void Set(const SimFlag::SimFlag_t value, SimList_t list) { 00068 fAssociations[value] = list; } 00069 void Set(Registry& reg); 00070 00071 private: 00072 00074 static const DbiSimFlagAssociation* fgInstance; 00075 00076 // Data members 00077 00078 SimMap_t fAssociations; 00079 00080 ClassDef(DbiSimFlagAssociation,0) // Association between SimFlag types. 00081 00082 }; 00083 00084 00085 #endif // DBISIMFLAGASSOCIATION
1.3.9.1