00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #ifndef TGO4DYNAMICLIST_H 00017 #define TGO4DYNAMICLIST_H 00018 00019 #include "TGo4DynamicEntry.h" 00020 #include "TObjArray.h" 00021 00022 class TH1; 00023 class TFolder; 00024 class TMutex; 00025 00026 class TGo4Condition; 00027 class TGo4EventElement; 00028 class TGo4DynamicListStatus; 00029 class TGo4DynamicEntryStatus; 00030 class TGo4HistogramEntryStatus; 00031 class TGo4HistogramEntry; 00032 00033 00041 class TGo4DynamicList : public TGo4DynamicEntry { 00042 public: 00043 00045 TGo4DynamicList(); 00046 00047 TGo4DynamicList(const Text_t* name); 00048 00049 virtual ~TGo4DynamicList(); 00050 00053 TNamed* GetObject(const Text_t * name); 00054 00056 TGo4DynamicEntry * GetEntry(const Text_t* name); 00057 00059 void DeleteEntry(const Text_t* name); 00060 00063 Bool_t AddEntry(TGo4DynamicEntry* en); 00064 00066 virtual Int_t Process(); 00067 00069 virtual void Clear(Option_t* option=""); 00070 00072 Bool_t IsEmpty() const { return (fxList!=0) ? fxList->IsEmpty() : kTRUE; } 00073 00074 private: 00079 void UpdateStatus(TGo4DynamicEntryStatus * state); 00080 00082 TObjArray* fxList; 00083 00085 TMutex * fxListMutex; 00086 00087 TIterator * fxListIterator; 00088 00090 TFolder * fxTempFolder; 00091 00092 public: 00093 00098 TGo4DynamicEntryStatus * CreateStatus(); 00099 00101 virtual void Reset(); 00102 00104 void ResetIterator(); 00105 00107 TGo4DynamicEntry* NextEntry(); 00108 00110 virtual void CleanupCondition(TGo4Condition * con); 00111 00113 virtual void CleanupHistogram(TH1 * his); 00114 00116 virtual void SetStatus(TGo4DynamicEntryStatus * state); 00117 00119 virtual Bool_t SetEntryStatus(const Text_t* name, TGo4DynamicEntryStatus * state); 00120 00122 TGo4DynamicEntryStatus * CreateEntryStatus(const Text_t * name); 00123 00129 virtual void CleanupEvent(TGo4EventElement * ev); 00130 00131 ClassDef(TGo4DynamicList,2) 00132 }; 00133 00134 #endif //TGO4DYNAMICLIST_H 00135 00136 //----------------------------END OF GO4 SOURCE FILE ---------------------