00001 // $Id: TGo4Iter.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 TGO4ITER_H 00015 #define TGO4ITER_H 00016 00017 #include "TGo4AccessWrapper.h" 00018 00019 #include "TObject.h" 00020 #include "TObjArray.h" 00021 #include "TString.h" 00022 00023 class TGo4Iter : public TGo4AccessWrapper { 00024 public: 00025 TGo4Iter(TGo4Slot* slot, Bool_t onlyslots = kFALSE); 00026 virtual ~TGo4Iter(); 00027 00028 Bool_t next(Bool_t goesinto = kTRUE); 00029 Bool_t nextobj(); 00030 00031 Bool_t isfolder(); 00032 const char* getname(); 00033 const char* getfullname(); 00034 00035 Int_t getkindofitem(); 00036 const char* getclassname(); 00037 const char* getinfo(); 00038 Int_t getsizeinfo(); 00039 Int_t getflag(const char* flagname); 00040 00041 Int_t level() const; 00042 Int_t levelchange() const { return fLevelChange; } 00043 Bool_t isslot() const { return getslot()!=0; } 00044 TGo4Slot* getslot() const; 00045 00046 virtual TGo4Access* ProvideAccess(const char* name = 0); 00047 00048 protected: 00049 TGo4Iter(); 00050 00051 TGo4LevelIter* currentiter() const 00052 { return (fStatus!=0) ? 0 : (TGo4LevelIter*) fLevels.Last(); } 00053 00054 TGo4Slot* fSlot; 00055 Bool_t fOnlySlots; 00056 TObjArray fLevels; 00057 Int_t fStatus; 00058 TString fFullName; 00059 Int_t fLevelChange; 00060 00061 ClassDef(TGo4Iter,1); 00062 }; 00063 00064 #endif