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