GSI Object Oriented Online Offline (Go4)  GO4-6.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TGo4ObjectProxy.h
Go to the documentation of this file.
1 // $Id: TGo4ObjectProxy.h 2627 2019-10-01 08:02:45Z linev $
2 //-----------------------------------------------------------------------
3 // The GSI Online Offline Object Oriented (Go4) Project
4 // Experiment Data Processing at EE department, GSI
5 //-----------------------------------------------------------------------
6 // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7 // Planckstr. 1, 64291 Darmstadt, Germany
8 // Contact: http://go4.gsi.de
9 //-----------------------------------------------------------------------
10 // This software can be used under the license agreements as stated
11 // in Go4License.txt file which is part of the distribution.
12 //-----------------------------------------------------------------------
13 
14 #ifndef TGO4OBJECTPROXY_H
15 #define TGO4OBJECTPROXY_H
16 
17 #include "TGo4Proxy.h"
18 
19 class TGo4ObjectAccess : public TGo4Access {
20  public:
21  TGo4ObjectAccess(TObject* obj);
22  virtual Bool_t CanGetObject() const;
23  virtual Bool_t GetObject(TObject* &obj, Bool_t &owner) const;
24  virtual TClass* GetObjectClass() const;
25  virtual const char* GetObjectName() const;
26  virtual const char* GetObjectClassName() const;
27 
28  private:
29  TObject* fObject;
30 };
31 
32 // **************************************************************
33 
34 class TGo4ObjectProxy : public TGo4Proxy {
35  public:
37  TGo4ObjectProxy(TObject* obj, Bool_t owner = kFALSE);
38  virtual ~TGo4ObjectProxy();
39 
40  virtual void Initialize(TGo4Slot* slot);
41  virtual void Finalize(TGo4Slot* slot);
42  virtual Bool_t RemoveRegisteredObject(TObject* obj);
43 
44  virtual TGo4Access* ProvideAccess(const char* name);
45  virtual TGo4LevelIter* MakeIter() { return 0; }
46 
47  virtual Int_t GetObjectKind();
48  virtual const char* GetContainedClassName();
49  virtual const char* GetContainedObjectInfo();
50  virtual Int_t GetObjectSizeInfo();
51 
52  virtual void WriteData(TGo4Slot* slot, TDirectory* dir, Bool_t onlyobjs);
53  virtual void ReadData(TGo4Slot* slot, TDirectory* dir);
54 
55  virtual Bool_t IsAcceptObject(TClass* cl);
56  virtual Bool_t AssignObject(TGo4Slot* slot, TObject* obj, Bool_t owner);
57  virtual TObject* GetAssignedObject();
58 
59  static Long_t DefineObjectSize(TObject* obj);
60 
61  protected:
62 
63  TObject* fObject;
64  Bool_t fOwner;
65 
67 };
68 
69 #endif
virtual TGo4LevelIter * MakeIter()
virtual Bool_t IsAcceptObject(TClass *cl)
virtual Bool_t CanGetObject() const
virtual void ReadData(TGo4Slot *slot, TDirectory *dir)
virtual const char * GetContainedClassName()
virtual Bool_t GetObject(TObject *&obj, Bool_t &owner) const
static Long_t DefineObjectSize(TObject *obj)
virtual const char * GetObjectName() const
virtual Bool_t AssignObject(TGo4Slot *slot, TObject *obj, Bool_t owner)
virtual const char * GetContainedObjectInfo()
virtual void Initialize(TGo4Slot *slot)
virtual TClass * GetObjectClass() const
virtual void Finalize(TGo4Slot *slot)
virtual Int_t GetObjectSizeInfo()
virtual const char * GetObjectClassName() const
virtual Int_t GetObjectKind()
virtual TGo4Access * ProvideAccess(const char *name)
virtual void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs)
virtual TObject * GetAssignedObject()
ClassDef(TGo4ObjectProxy, 1)
TGo4ObjectAccess(TObject *obj)
virtual Bool_t RemoveRegisteredObject(TObject *obj)
virtual ~TGo4ObjectProxy()