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