GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4ObjectManager.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 TGO4OBJECTMANAGER_H
15#define TGO4OBJECTMANAGER_H
16
17#include "TGo4Slot.h"
18#include "TGo4AccessWrapper.h"
19
20#include "TObjArray.h"
21
22class TFile;
23class TDirectory;
24class TTree;
25class TFolder;
26class TGo4Access;
27
29 friend class TGo4Access;
30
31 public:
33
34 TGo4ObjectManager(const char *name, const char *title);
35
36 virtual ~TGo4ObjectManager();
37
38 void ProduceFullName(TString &name, TGo4Slot *toparent = nullptr) override;
39 TGo4ObjectManager *GetOM() const override;
40
41 void MakeFolder(const char *pathname);
42
43 TGo4Slot *Add(const char *pathname, TObject *obj, Bool_t owner = kFALSE, Bool_t canrename = kFALSE);
44
45 TGo4Slot *MakeObjSlot(const char *foldername, const char *name = nullptr, const char *title = nullptr);
46
47 TGo4Slot *AddLink(TGo4Slot *source, const char *pathname, const char *linkname, const char *linktitle);
48
49 TGo4Slot *AddLink(TGo4Slot *source, const char *pathname);
50
51 TGo4Slot *AddLink(const char *sourcename, const char *pathname);
52
54
55 void AddFile(const char *pathname, const char *filename);
56
57 void CloseFiles(const char *pathname);
58
59 void AddDir(const char *pathname, TDirectory *dir, Bool_t owner = kFALSE, Bool_t readright = kFALSE);
60
61 void AddTree(const char *pathname, TTree *tree, Bool_t owner = kFALSE);
62
63 void AddFolder(const char *pathname, TFolder *folder, Bool_t owner = kFALSE);
64
65 void AddROOTFolder(const char *pathname, const char *foldername);
66
67 void AddROOTFolders(const char *pathname, Bool_t selected = kTRUE);
68
69 void AddProxy(const char *pathname, TGo4Proxy* cont, const char *name, const char *title = "title");
70 TGo4Proxy* GetProxy(const char *name);
71
72 void DeleteSlot(const char *pathname);
73
74 void SaveDataToFile(TFile *f, Bool_t onlyobjs = kFALSE, TGo4Slot *startslot = nullptr);
75
76 void ReadDataFromFile(TFile *f);
77
78 void RegisterLink(TGo4Slot *source, TGo4Slot *target, Bool_t exapndchilds = kFALSE);
79 void UnregisterLink(TGo4Slot *target);
80
81 std::unique_ptr<TGo4Access> ProvideAccess(const char *name = nullptr) override
82 { return ProvideSlotAccess(name); }
83
84 void Event(TGo4Slot *source, Int_t id, void *param = nullptr) override;
85 void RetranslateEvent(TGo4Slot *source, Int_t id, void *param = nullptr);
86 void RegisterObjectWith(TObject *obj, TGo4Slot *slot);
87 void UnregisterObject(TObject *obj, TGo4Slot *slot);
88
89 void PrintSlots();
90
91 Int_t IterateSlots();
92
93 Int_t RequestObject(const char *source, const char *targetslot, Int_t waittime_millisec = 0);
94
95 void RecursiveRemove(TObject *obj) override;
96
97 protected:
98
99 virtual Bool_t AssignObject(const char *path, TObject *obj, Bool_t ownership);
100
101 void RemoveFromLinks(const TGo4Slot *slot);
102
103 TObjArray fLinks;
104
105 TObjArray fCleanups;
106
107 ClassDefOverride(TGo4ObjectManager,1); // Object manager of all Go4 GUI objects
108};
109
110#endif
void AddROOTFolder(const char *pathname, const char *foldername)
TGo4Slot * Add(const char *pathname, TObject *obj, Bool_t owner=kFALSE, Bool_t canrename=kFALSE)
void AddFile(const char *pathname, const char *filename)
friend class TGo4Access
ClassDefOverride(TGo4ObjectManager, 1)
list of registered cleanups
void UnregisterLink(TGo4Slot *target)
void AddDir(const char *pathname, TDirectory *dir, Bool_t owner=kFALSE, Bool_t readright=kFALSE)
void RegisterObjectWith(TObject *obj, TGo4Slot *slot)
void Event(TGo4Slot *source, Int_t id, void *param=nullptr) override
void AddProxy(const char *pathname, TGo4Proxy *cont, const char *name, const char *title="title")
void CloseFiles(const char *pathname)
void ReadDataFromFile(TFile *f)
void RetranslateEvent(TGo4Slot *source, Int_t id, void *param=nullptr)
void AddFolder(const char *pathname, TFolder *folder, Bool_t owner=kFALSE)
virtual Bool_t AssignObject(const char *path, TObject *obj, Bool_t ownership)
TGo4Slot * MakeObjSlot(const char *foldername, const char *name=nullptr, const char *title=nullptr)
std::unique_ptr< TGo4Access > ProvideAccess(const char *name=nullptr) override
void UnregisterObject(TObject *obj, TGo4Slot *slot)
void AddTree(const char *pathname, TTree *tree, Bool_t owner=kFALSE)
void ProduceFullName(TString &name, TGo4Slot *toparent=nullptr) override
TGo4ObjectManager * GetOM() const override
void AddROOTFolders(const char *pathname, Bool_t selected=kTRUE)
void RemoveFromLinks(const TGo4Slot *slot)
void SaveDataToFile(TFile *f, Bool_t onlyobjs=kFALSE, TGo4Slot *startslot=nullptr)
TObjArray fCleanups
list of links between slots
void RegisterLink(TGo4Slot *source, TGo4Slot *target, Bool_t exapndchilds=kFALSE)
Int_t RequestObject(const char *source, const char *targetslot, Int_t waittime_millisec=0)
TGo4Slot * AddLink(TGo4Slot *source, const char *pathname, const char *linkname, const char *linktitle)
TGo4Slot * GetLinked(TGo4Slot *link)
void RecursiveRemove(TObject *obj) override
void DeleteSlot(const char *pathname)
void MakeFolder(const char *pathname)
TGo4Proxy * GetProxy() const
Definition TGo4Slot.h:93
std::unique_ptr< TGo4Access > ProvideSlotAccess(const char *name)
Definition TGo4Slot.cxx:395