GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4ObjectProxy.h
Go to the documentation of this file.
1// $Id$
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
20 public:
21 TGo4ObjectAccess(TObject *obj);
22 Bool_t CanGetObject() const override;
23 Bool_t GetObject(TObject *&obj, Bool_t &owner) const override;
24 TClass *GetObjectClass() const override;
25 const char *GetObjectName() const override;
26 const char *GetObjectClassName() const override;
27
28 private:
29 TObject *fObject{nullptr};
30};
31
32// **************************************************************
33
34class TGo4ObjectProxy : public TGo4Proxy {
35 public:
37 TGo4ObjectProxy(TObject *obj, Bool_t owner = kFALSE);
38 virtual ~TGo4ObjectProxy();
39
40 void Initialize(TGo4Slot *slot) override;
41 void Finalize(TGo4Slot *slot) override;
42 Bool_t RemoveRegisteredObject(TObject *obj) override;
43
44 std::unique_ptr<TGo4Access> ProvideAccess(const char *name) override;
45 TGo4LevelIter *MakeIter() override { return nullptr; }
46
47 Int_t GetObjectKind() const override;
48 const char *GetContainedClassName() const override;
49 const char *GetContainedObjectInfo() override;
50 Int_t GetObjectSizeInfo() const override;
51
52 void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override;
53 void ReadData(TGo4Slot *slot, TDirectory *dir) override;
54
55 Bool_t IsAcceptObject(TClass *cl) const override;
56 Bool_t AssignObject(TGo4Slot *slot, TObject *obj, Bool_t owner) override;
57 TObject *GetAssignedObject() override;
58
59 static Long_t DefineObjectSize(TObject *obj);
60
61 protected:
62
63 TObject *fObject{nullptr};
64 Bool_t fOwner{kFALSE};
65
67};
68
69#endif
TClass * GetObjectClass() const override
Bool_t GetObject(TObject *&obj, Bool_t &owner) const override
TGo4ObjectAccess(TObject *obj)
const char * GetObjectClassName() const override
const char * GetObjectName() const override
Bool_t CanGetObject() const override
Returns kTRUE, when object can be directly obtained with GetObject() method.
Int_t GetObjectKind() const override
void ReadData(TGo4Slot *slot, TDirectory *dir) override
TGo4LevelIter * MakeIter() override
const char * GetContainedClassName() const override
void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override
Int_t GetObjectSizeInfo() const override
ClassDefOverride(TGo4ObjectProxy, 0)
void Finalize(TGo4Slot *slot) override
void Initialize(TGo4Slot *slot) override
static Long_t DefineObjectSize(TObject *obj)
const char * GetContainedObjectInfo() override
TObject * GetAssignedObject() override
virtual ~TGo4ObjectProxy()
Bool_t RemoveRegisteredObject(TObject *obj) override
std::unique_ptr< TGo4Access > ProvideAccess(const char *name) override
Bool_t IsAcceptObject(TClass *cl) const override
Bool_t AssignObject(TGo4Slot *slot, TObject *obj, Bool_t owner) override