Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TGO4PROXY_H
00015 #define TGO4PROXY_H
00016
00017 #include "TObject.h"
00018
00019 class TGo4Slot;
00020 class TDirectory;
00021 class TGo4ObjectManager;
00022
00023
00024
00025 class TGo4Access {
00026 public:
00027 enum { kndNone = -1,
00028 kndObject = 0,
00029 kndFolder = 1,
00030 kndTreeBranch = 2,
00031 kndTreeLeaf = 3,
00032 kndGo4Param = 4,
00033 kndDataMember = 5,
00034 kndEventElement = 6 };
00035
00036 virtual ~TGo4Access() {}
00037
00039 virtual Bool_t IsRemote() const { return kFALSE; }
00040
00042 virtual Bool_t CanGetObject() const { return kFALSE; }
00043
00044 virtual Bool_t GetObject(TObject* &obj, Bool_t &owner) const;
00045 virtual TClass* GetObjectClass() const;
00046 virtual const char* GetObjectName() const;
00047 virtual const char* GetObjectClassName() const;
00048
00053 virtual Int_t AssignObjectTo(TGo4ObjectManager* rcv, const char* path);
00054
00055 protected:
00056 void DoObjectAssignement(TGo4ObjectManager* rcv,
00057 const char* path,
00058 TObject* obj,
00059 Bool_t owner);
00060 };
00061
00062
00063
00064 class TGo4LevelIter : public TObject {
00065 public:
00066 TGo4LevelIter() : TObject() {}
00067 virtual ~TGo4LevelIter() {}
00068
00069 virtual Bool_t next() { return kFALSE; }
00070 virtual Bool_t isfolder() { return kFALSE; }
00071 virtual Bool_t isslotsfolder() { return kFALSE; }
00072 virtual Int_t getflag(const char*) { return -1; }
00073 virtual TGo4LevelIter* subiterator() { return 0; }
00074 virtual TGo4Slot* getslot() { return 0; }
00075 virtual const char* name() { return 0; }
00076 virtual const char* info() { return 0; }
00077 virtual Int_t sizeinfo() { return 0; }
00078
00079 virtual Int_t GetKind() { return -1; }
00080 virtual const char* GetClassName() { return 0; }
00081 };
00082
00083
00084
00085 class TGo4Proxy : public TObject {
00086 public:
00087 TGo4Proxy() : TObject() {}
00088 virtual ~TGo4Proxy() {}
00089
00090 virtual void Initialize(TGo4Slot* slot) {}
00091 virtual void Finalize(TGo4Slot* slot) {}
00092 virtual Bool_t RemoveRegisteredObject(TObject* obj) { return kFALSE; }
00093
00094 virtual Bool_t Use() const { return kTRUE; }
00095
00096 virtual Bool_t HasSublevels() const { return kFALSE; }
00097 virtual TGo4Access* MakeProxy(const char*) { return 0; }
00098 virtual TGo4LevelIter* MakeIter() { return 0; }
00099
00100 virtual Int_t GetObjectKind() { return TGo4Access::kndNone; }
00101 virtual const char* GetContainedClassName() { return 0; }
00102 virtual const char* GetContainedObjectInfo() { return 0; }
00103 virtual Int_t GetObjectSizeInfo() { return -1; }
00104
00105 virtual void WriteData(TGo4Slot* slot, TDirectory* dir, Bool_t onlyobjs) {}
00106 virtual void ReadData(TGo4Slot* slot, TDirectory* dir) {}
00107
00108 virtual Bool_t IsAcceptObject(TClass* cl) { return kFALSE; }
00109 virtual Bool_t AssignObject(TGo4Slot* slot, TObject* obj, Bool_t owner) { return kFALSE; }
00110 virtual TObject* GetAssignedObject() { return 0; }
00111 virtual void Update(TGo4Slot* slot, Bool_t strong) {}
00112
00113 virtual Bool_t ProcessEvent(TGo4Slot* slot, TGo4Slot* source, Int_t id, void* param) { return kTRUE; }
00114
00115 protected:
00116
00117
00118 ClassDef(TGo4Proxy, 1);
00119 };
00120
00121 #endif