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