00001 00007 // Author: 00008 // Ron Fox 00009 // NSCL 00010 // Michigan State University 00011 // East Lansing, MI 48824-1321 00012 // mailto:fox@nscl.msu.edu 00013 // 00014 00015 #ifndef __CDIGITIZERDICTIONARY_H //Required for current class 00016 #define __CDIGITIZERDICTIONARY_H 00017 00018 // 00019 // Include files: 00020 // 00021 00022 00023 #ifndef __STL_STRING 00024 #include <string> 00025 #define __STL_STRING 00026 #endif 00027 00028 00029 #ifndef __STL_MAP 00030 #include <map> 00031 #define __STL_MAP 00032 #endif 00033 00034 00035 // forward class definitions 00036 00037 class CReadableObject; 00038 00039 // 00040 00041 class CDigitizerDictionary 00042 { 00043 public: 00044 typedef map<string, CReadableObject*> DigitizerMap; 00045 typedef DigitizerMap::iterator ModuleIterator; 00046 private: 00047 DigitizerMap m_Modules; 00048 00049 public: 00050 // 00051 CDigitizerDictionary (); 00052 ~CDigitizerDictionary ( ); 00053 private: 00054 CDigitizerDictionary (const CDigitizerDictionary& rhs); 00055 CDigitizerDictionary& operator=(const CDigitizerDictionary& rhs); 00056 int operator== (const CDigitizerDictionary& rhs) const; 00057 int operator!= (const CDigitizerDictionary& rhs) const; 00058 public: 00059 00060 // Selectors: 00061 00062 public: 00063 DigitizerMap getMap() const { 00064 return m_Modules; 00065 } 00066 // Mutators: 00067 00068 protected: 00069 void setMap(DigitizerMap& rMap) { 00070 m_Modules = rMap; 00071 } 00072 public: 00073 00074 ModuleIterator DigitizerBegin () ; // 00075 ModuleIterator DigitizerEnd () ; // 00076 int DigitizerSize () ; // 00077 void DigitizerAdd (CReadableObject* pDigitizer) ; // 00078 ModuleIterator DigitizerFind (const string& rName) ; // 00079 void Remove(ModuleIterator p) { 00080 m_Modules.erase(p); 00081 } 00082 00083 // Utility functions: 00084 protected: 00085 void DestroyMap(); 00086 }; 00087 00088 #endif