00001 // $Id: TGo4AnalysisStatus.h 478 2009-10-29 12:26:09Z linev $ 00002 //----------------------------------------------------------------------- 00003 // The GSI Online Offline Object Oriented (Go4) Project 00004 // Experiment Data Processing at EE department, GSI 00005 //----------------------------------------------------------------------- 00006 // Copyright (C) 2000- GSI Helmholtzzentrum für Schwerionenforschung GmbH 00007 // Planckstr. 1, 64291 Darmstadt, Germany 00008 // Contact: http://go4.gsi.de 00009 //----------------------------------------------------------------------- 00010 // This software can be used under the license agreements as stated 00011 // in Go4License.txt file which is part of the distribution. 00012 //----------------------------------------------------------------------- 00013 00014 #ifndef TGO4ANALYSISSTATUS_H 00015 #define TGO4ANALYSISSTATUS_H 00016 00017 #include "TGo4Status.h" 00018 #include "TString.h" 00019 00020 class TIterator; 00021 class TMutex; 00022 class TGo4AnalysisStepStatus; 00023 class TObjArray; 00024 00030 class TGo4AnalysisStatus : public TGo4Status { 00031 00032 friend class TGo4Analysis; 00033 00034 public: 00035 00037 TGo4AnalysisStatus(); 00038 00039 TGo4AnalysisStatus(const char* name); 00040 00041 virtual ~TGo4AnalysisStatus(); 00042 00043 void SetStepChecking(Int_t on) { fbStepCheckingMode=on; } 00044 Int_t IsStepChecking() const { return fbStepCheckingMode; } 00045 00046 void SetFirstStepIndex(Int_t i) { fiFirstStepIndex=i; } 00047 Int_t GetFirstStepIndex() const { return fiFirstStepIndex; } 00048 00049 void SetLastStepIndex(Int_t i) { fiLastStepIndex=i; } 00050 Int_t GetLastStepIndex() const { return fiLastStepIndex; } 00051 00052 void SetAutoSaveInterval(Int_t i) { fiAutoSaveInterval=i; } 00053 Int_t GetAutoSaveInterval() const { return fiAutoSaveInterval; } 00054 00055 void SetAutoSaveCompression(Int_t i=5) { fiAutoSaveCompression=i; } 00056 Int_t GetAutoSaveCompression() const { return fiAutoSaveCompression; } 00057 00058 void SetAutoSaveOverwrite(Bool_t over=kTRUE) { fbAutoSaveOverwrite = over ? 1 : 0; } 00059 Int_t IsAutoSaveOverwrite() const { return fbAutoSaveOverwrite; } 00060 00061 void SetAutoFileName(const char* name) { fxAutoFileName = name; } 00062 const char* GetAutoFileName() const { return fxAutoFileName.Data(); } 00063 00064 void SetConfigFileName(const char* name) { fxConfigFileName = name; } 00065 const char* GetConfigFileName() const { return fxConfigFileName.Data(); } 00066 00067 void SetAutoSaveOn(Bool_t on=kTRUE) { fbAutoSaveOn=on; } 00068 Int_t IsAutoSaveOn() const { return fbAutoSaveOn; } 00069 00071 TGo4AnalysisStepStatus* GetStepStatus(const char* name); 00072 00074 Bool_t AddStepStatus(TGo4AnalysisStepStatus * next); 00075 00076 void ResetStepIterator(); 00077 00079 TGo4AnalysisStepStatus * NextStepStatus(); 00080 00082 Int_t GetNumberOfSteps(); 00083 00085 TGo4AnalysisStepStatus* GetStepStatus(Int_t indx); 00086 00089 virtual Int_t PrintStatus(Text_t* buffer=0, Int_t buflen=0); 00090 00091 private: 00092 00095 TObjArray* fxStepArray; 00096 00098 TMutex * fxStepMutex; 00099 00101 TIterator* fxStepIterator; 00102 00107 Int_t fbStepCheckingMode; 00108 00112 Int_t fiFirstStepIndex; 00113 00118 Int_t fiLastStepIndex; 00119 00123 Int_t fiAutoSaveInterval; 00124 00126 Int_t fiAutoSaveCompression; 00127 00130 Int_t fbAutoSaveOverwrite; 00131 00134 Int_t fbAutoSaveOn; 00135 00137 TString fxAutoFileName; 00138 00140 TString fxConfigFileName; 00141 00142 ClassDef(TGo4AnalysisStatus,2) 00143 00144 }; 00145 00146 #endif //TGO4ANALYSISSTATUS_H