00001 // ===================================================================== 00024 // ===================================================================== 00025 #ifndef CLDAQ__TCRATE_HH 00026 #define CLDAQ__TCRATE_HH 00027 00028 #include "Tglobals.h" 00029 #include "TModuleTable.hh" 00030 00031 class TModule; 00032 00033 00053 class TCrate 00054 { 00055 00056 private: 00057 TModuleTable theModuleTable; 00058 00059 public: 00060 TCrate(); 00061 ~TCrate(); 00062 00063 public: 00064 Tint InstallModule( TModule* module, const Tstring& id, const TstringList& group ); 00065 Tint InstallModule( TModule* module, const Tstring& id, const Tstring& group = "" ); 00066 Tint RemoveModule( Tint index ); 00067 Tint RemoveModule( const Tstring& id ); 00068 Tint RemoveModule( const TstringList& groups ); 00069 Tvoid ClearCrate(); 00070 TModule* FindModule( const Tstring& id ); 00071 TModule* GetModule( Tint index ); 00072 TModule* GetModule( const Tstring& id ); 00073 00074 public: 00075 const TModuleTable& GetModuleTable() const; 00076 TModuleTable& GetModuleTable(); 00077 Tvoid SetModuleTable( const TModuleTable& table ); 00078 00079 public: 00080 Tvoid Clear(); 00081 Tvoid Clear( const TstringList& groups ); 00082 Tvoid Clear( const Tstring& group ); 00083 Tvoid Update(); 00084 Tvoid Update( const TstringList& groups ); 00085 Tvoid Update( const Tstring& group ); 00086 Tvoid Initialize(); 00087 Tvoid Initialize( const TstringList& groups ); 00088 Tvoid Initialize( const Tstring& group ); 00089 Tvoid ClearAllModules(); 00090 Tvoid UpdateAllModules(); 00091 Tvoid InitializeAllModules(); 00092 Tvoid ClearModule( const Tstring& id ); 00093 Tvoid UpdateModule( const Tstring& id ); 00094 Tvoid InitializeModule( const Tstring& id ); 00095 00096 }; 00097 00098 inline const TModuleTable& TCrate::GetModuleTable() const 00099 { 00100 return theModuleTable; 00101 } 00102 00103 inline TModuleTable& TCrate::GetModuleTable() 00104 { 00105 return theModuleTable; 00106 } 00107 00108 inline Tvoid TCrate::SetModuleTable( const TModuleTable& table ) 00109 { 00110 theModuleTable = table; 00111 return; 00112 } 00113 00114 #endif