GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
TGo4CanvasProxy.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 TGO4CANVASPROXY_H
15 #define TGO4CANVASPROXY_H
16 
17 #include "TGo4Proxy.h"
18 
19 class TCanvas;
20 
21 class TGo4CanvasProxy : public TGo4Proxy {
22  public:
24  TGo4CanvasProxy(TCanvas *c, Bool_t owner = kFALSE);
25  virtual ~TGo4CanvasProxy();
26 
27  Bool_t HasSublevels() const override { return fCanvas != nullptr; }
28  Int_t GetObjectKind() const override;
29  const char *GetContainedClassName() const override;
30 
31  void Initialize(TGo4Slot *slot) override;
32  void Finalize(TGo4Slot *slot) override;
33  Bool_t RemoveRegisteredObject(TObject *obj) override;
34 
35  TGo4LevelIter *MakeIter() override
36  { return fCanvas ? ProduceIter(fCanvas) : nullptr; }
37 
38  std::unique_ptr<TGo4Access> ProvideAccess(const char *name) override
39  { return CreateAccess(fCanvas, name); }
40 
41  void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override;
42  void ReadData(TGo4Slot *slot, TDirectory *dir) override;
43 
44  Bool_t IsAcceptObject(TClass *cl) const override;
45  Bool_t AssignObject(TGo4Slot *slot, TObject *obj, Bool_t owner) override;
46  TObject *GetAssignedObject() override;
47 
48  static std::unique_ptr<TGo4Access> CreateAccess(TCanvas *canv, const char *name);
49  static TGo4LevelIter *ProduceIter(TCanvas *canv);
50 
51  protected:
52  TCanvas *fCanvas{nullptr};
53  Bool_t fOwner{kFALSE};
54 
56 };
57 
58 
59 #endif
std::unique_ptr< TGo4Access > ProvideAccess(const char *name) override
Bool_t IsAcceptObject(TClass *cl) const override
TGo4LevelIter * MakeIter() override
void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override
void Initialize(TGo4Slot *slot) override
Bool_t AssignObject(TGo4Slot *slot, TObject *obj, Bool_t owner) override
static TGo4LevelIter * ProduceIter(TCanvas *canv)
const char * GetContainedClassName() const override
virtual ~TGo4CanvasProxy()
void Finalize(TGo4Slot *slot) override
Bool_t HasSublevels() const override
Int_t GetObjectKind() const override
Bool_t RemoveRegisteredObject(TObject *obj) override
static std::unique_ptr< TGo4Access > CreateAccess(TCanvas *canv, const char *name)
void ReadData(TGo4Slot *slot, TDirectory *dir) override
TObject * GetAssignedObject() override
ClassDefOverride(TGo4CanvasProxy, 1)