00001 // ===================================================================== 00021 // ===================================================================== 00022 #ifndef __TANALYSISMANAGER_HH 00023 #define __TANALYSISMANAGER_HH 00024 00025 #include "Tglobals.h" 00026 #include "TAnalyser.hh" 00027 #include "TAnalysisStatusTable.hh" 00028 #include "TAnalysisAction.hh" 00029 00030 class TExtractor; 00031 00032 00052 class TAnalysisManager 00053 { 00054 00055 protected: 00056 static TAnalysisManager* theAnalysisManager; 00057 00058 protected: 00059 TAnalysisStatusTable theStatusTable; 00060 TAnalyser* theAnalyser; 00061 TAnalysisAction* theAnalysisAction; 00062 00063 public: 00064 TAnalysisManager( TAnalyser* analyser = 0 ); 00065 virtual ~TAnalysisManager(); 00066 00067 public: 00068 virtual Tvoid StartAnalysis( const Tstring& id ); 00069 virtual Tvoid StopAnalysis( const Tstring& id ); 00070 virtual Tvoid UpdateAnalysis( const Tstring& id ); 00071 virtual Tvoid SuspendAnalysis( const Tstring& id ); 00072 virtual Tvoid ResumeAnalysis( const Tstring& id ); 00073 virtual Tvoid StartAnalysis(); 00074 virtual Tvoid StopAnalysis(); 00075 virtual Tvoid UpdateAnalysis(); 00076 virtual Tvoid SuspendAnalysis(); 00077 virtual Tvoid ResumeAnalysis(); 00078 00079 public: 00080 virtual Tvoid ShowStatus() const; 00081 00082 public: 00083 TAnalyser* GetAnalyser() const; 00084 Tvoid SetAnalyser( TAnalyser* analyser ); 00085 Tvoid SetExtractor( TExtractor* extractor ); 00086 const TAnalysisStatusTable& GetStatusTable() const; 00087 TAnalysisStatusTable& GetStatusTable(); 00088 Tvoid SetStatusTable( const TAnalysisStatusTable& table ); 00089 TAnalysisAction* GetAnalysisAction() const; 00090 Tvoid SetAnalysisAction( TAnalysisAction* action ); 00091 00092 public: 00093 virtual Tvoid GoAnalysisLoop( const Tstring& id ); 00094 virtual Tvoid WaitReturnFromAnalysisLoop( const Tstring& id ); 00095 00096 protected: 00097 static Tvoid* doAnalysisLoop( Tvoid* arguments ); 00098 00099 public: 00100 static TAnalysisManager* GetAnalysisManager(); 00101 00102 }; 00103 00104 inline TAnalysisManager* TAnalysisManager::GetAnalysisManager() 00105 { 00106 if ( theAnalysisManager == 0 ) 00107 return 0; 00108 return theAnalysisManager; 00109 } 00110 00111 inline TAnalyser* TAnalysisManager::GetAnalyser() const 00112 { 00113 return theAnalyser; 00114 } 00115 00116 inline const TAnalysisStatusTable& TAnalysisManager::GetStatusTable() const 00117 { 00118 return theStatusTable; 00119 } 00120 00121 inline TAnalysisStatusTable& TAnalysisManager::GetStatusTable() 00122 { 00123 return theStatusTable; 00124 } 00125 00126 inline Tvoid TAnalysisManager::SetStatusTable( const TAnalysisStatusTable& table ) 00127 { 00128 theStatusTable = table; 00129 return; 00130 } 00131 00132 inline Tvoid TAnalysisManager::SetExtractor( TExtractor* extractor ) 00133 { 00134 if ( theAnalyser != 0 ) 00135 theAnalyser -> AddExtractor( extractor ); 00136 return; 00137 } 00138 00139 inline TAnalysisAction* TAnalysisManager::GetAnalysisAction() const 00140 { 00141 return theAnalysisAction; 00142 } 00143 00144 #endif