00001 // ===================================================================== 00002 // $Id: TCrate.hh,v 1.1.1.1 2003/06/27 02:56:41 goiwai Exp $ 00003 // $Name: CLDAQ-1-06-00 $ 00004 // ===================================================================== 00005 #ifndef __TCRATE_HH 00006 #define __TCRATE_HH 00007 00008 #include "Tglobals.h" 00009 #include "TModuleTable.hh" 00010 00011 class TModule; 00012 00013 class TCrate 00014 { 00015 00016 private: 00017 TModuleTable theModuleTable; 00018 00019 public: 00020 TCrate(); 00021 ~TCrate(); 00022 00023 public: 00024 Tint InstallModule( TModule* module, const Tstring& id, const TstringList& group ); 00025 Tint InstallModule( TModule* module, const Tstring& id, const Tstring& group = "" ); 00026 Tint RemoveModule( Tint index ); 00027 Tint RemoveModule( const Tstring& id ); 00028 Tint RemoveModule( const TstringList& groups ); 00029 Tvoid ClearCrate(); 00030 TModule* FindModule( const Tstring& id ); 00031 TModule* GetModule( Tint index ); 00032 TModule* GetModule( const Tstring& id ); 00033 00034 public: 00035 const TModuleTable& GetModuleTable() const; 00036 TModuleTable& GetModuleTable(); 00037 Tvoid SetModuleTable( const TModuleTable& table ); 00038 00039 public: 00040 Tvoid Clear(); 00041 Tvoid Clear( const TstringList& groups ); 00042 Tvoid Clear( const Tstring& group ); 00043 Tvoid Update(); 00044 Tvoid Update( const TstringList& groups ); 00045 Tvoid Update( const Tstring& group ); 00046 Tvoid Initialize(); 00047 Tvoid Initialize( const TstringList& groups ); 00048 Tvoid Initialize( const Tstring& group ); 00049 Tvoid ClearAllModules(); 00050 Tvoid UpdateAllModules(); 00051 Tvoid InitializeAllModules(); 00052 Tvoid ClearModule( const Tstring& id ); 00053 Tvoid UpdateModule( const Tstring& id ); 00054 Tvoid InitializeModule( const Tstring& id ); 00055 00056 }; 00057 00058 inline const TModuleTable& TCrate::GetModuleTable() const 00059 { 00060 return( theModuleTable ); 00061 } 00062 00063 inline TModuleTable& TCrate::GetModuleTable() 00064 { 00065 return( theModuleTable ); 00066 } 00067 00068 inline Tvoid TCrate::SetModuleTable( const TModuleTable& table ) 00069 { 00070 theModuleTable = table; 00071 return; 00072 } 00073 00074 #endif