00001 // ===================================================================== 00002 // $Id: TAnalysisManager.hh,v 1.1.1.1 2003/06/27 02:56:41 goiwai Exp $ 00003 // $Name: CLDAQ-1-06-02 $ 00004 // ===================================================================== 00005 #ifndef __TANALYSISMANAGER_HH 00006 #define __TANALYSISMANAGER_HH 00007 00008 #include "Tglobals.h" 00009 #include "TAnalyser.hh" 00010 #include "TAnalysisStatusTable.hh" 00011 #include "TAnalysisAction.hh" 00012 00013 class TExtractor; 00014 00015 class TAnalysisManager 00016 { 00017 00018 protected: 00019 static TAnalysisManager* theAnalysisManager; 00020 00021 protected: 00022 TAnalysisStatusTable theStatusTable; 00023 TAnalyser* theAnalyser; 00024 TAnalysisAction* theAnalysisAction; 00025 00026 public: 00027 TAnalysisManager( TAnalyser* analyser = 0 ); 00028 virtual ~TAnalysisManager(); 00029 00030 public: 00031 virtual Tvoid StartAnalysis( const Tstring& id ); 00032 virtual Tvoid StopAnalysis( const Tstring& id ); 00033 virtual Tvoid UpdateAnalysis( const Tstring& id ); 00034 virtual Tvoid SuspendAnalysis( const Tstring& id ); 00035 virtual Tvoid ResumeAnalysis( const Tstring& id ); 00036 virtual Tvoid StartAnalysis(); 00037 virtual Tvoid StopAnalysis(); 00038 virtual Tvoid UpdateAnalysis(); 00039 virtual Tvoid SuspendAnalysis(); 00040 virtual Tvoid ResumeAnalysis(); 00041 00042 public: 00043 virtual Tvoid ShowStatus() const; 00044 00045 public: 00046 TAnalyser* GetAnalyser() const; 00047 Tvoid SetAnalyser( TAnalyser* analyser ); 00048 Tvoid SetExtractor( TExtractor* extractor ); 00049 const TAnalysisStatusTable& GetStatusTable() const; 00050 TAnalysisStatusTable& GetStatusTable(); 00051 Tvoid SetStatusTable( const TAnalysisStatusTable& table ); 00052 TAnalysisAction* GetAnalysisAction() const; 00053 Tvoid SetAnalysisAction( TAnalysisAction* action ); 00054 00055 public: 00056 virtual Tvoid GoAnalysisLoop( const Tstring& id ); 00057 virtual Tvoid WaitReturnFromAnalysisLoop( const Tstring& id ); 00058 00059 protected: 00060 static Tvoid* doAnalysisLoop( Tvoid* arguments ); 00061 00062 public: 00063 static TAnalysisManager* GetAnalysisManager(); 00064 00065 }; 00066 00067 inline TAnalysisManager* TAnalysisManager::GetAnalysisManager() 00068 { 00069 if ( theAnalysisManager == 0 ) 00070 return( 0 ); 00071 return( theAnalysisManager ); 00072 } 00073 00074 inline TAnalyser* TAnalysisManager::GetAnalyser() const 00075 { 00076 return( theAnalyser ); 00077 } 00078 00079 inline const TAnalysisStatusTable& TAnalysisManager::GetStatusTable() const 00080 { 00081 return( theStatusTable ); 00082 } 00083 00084 inline TAnalysisStatusTable& TAnalysisManager::GetStatusTable() 00085 { 00086 return( theStatusTable ); 00087 } 00088 00089 inline Tvoid TAnalysisManager::SetStatusTable( const TAnalysisStatusTable& table ) 00090 { 00091 theStatusTable = table; 00092 return; 00093 } 00094 00095 inline Tvoid TAnalysisManager::SetExtractor( TExtractor* extractor ) 00096 { 00097 if ( theAnalyser != 0 ) 00098 theAnalyser -> AddExtractor( extractor ); 00099 return; 00100 } 00101 00102 inline TAnalysisAction* TAnalysisManager::GetAnalysisAction() const 00103 { 00104 return( theAnalysisAction ); 00105 } 00106 00107 #endif