00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TGO4DIRPROXY_H
00017 #define TGO4DIRPROXY_H
00018
00019 #include "TGo4Proxy.h"
00020
00021 class TFile;
00022 class TDirectory;
00023
00024 class TGo4DirProxy : public TGo4Proxy {
00025 public:
00026 TGo4DirProxy();
00027 TGo4DirProxy(TDirectory* dir, Bool_t readright, Bool_t owner);
00028 virtual ~TGo4DirProxy();
00029
00030 virtual Bool_t HasSublevels() const { return fDir!=0; }
00031
00032 virtual TGo4LevelIter* MakeIter()
00033 { return (fDir==0) ? 0 : ProduceIter(fDir, fReadRight); }
00034
00035 virtual TGo4Access* MakeProxy(const char* name)
00036 { return ProduceProxy(fDir, fReadRight, name); }
00037
00038 virtual void WriteData(TGo4Slot* slot, TDirectory* dir, Bool_t onlyobjs);
00039 virtual void ReadData(TGo4Slot* slot, TDirectory* dir);
00040
00041 virtual Int_t GetObjectKind();
00042 virtual const char* GetContainedClassName();
00043 virtual const char* GetContainedObjectInfo();
00044 virtual Int_t GetObjectSizeInfo();
00045
00046 static TGo4Access* ProduceProxy(TDirectory* dir, Bool_t readright, const char* name);
00047 static TGo4LevelIter* ProduceIter(TDirectory* dir, Bool_t readright);
00048
00049 Bool_t UpdateObjectInFile(const char* filepath, TObject* obj);
00050
00051 Bool_t IsFile() const;
00052 const char* GetFileName() const;
00053
00054 protected:
00055 void SetDir(TDirectory* dir, Bool_t readright, Bool_t owner);
00056 void ClearDir();
00057
00058 TDirectory* fDir;
00059 Bool_t fOwner;
00060 Bool_t fReadRight;
00061
00062 ClassDef(TGo4DirProxy, 1);
00063 };
00064
00065 #endif
00066
00067