41          if (evtsource==
fxSource) 
return kTRUE;
 
 
 
   79   gROOT->GetListOfCleanups()->
Add(
this);
 
 
   87   gROOT->GetListOfCleanups()->
Add(
this);
 
 
   98   gROOT->GetListOfCleanups()->Remove(
this);
 
 
  113   if (pathname && (*pathname != 0))
 
 
  119   if (!obj) 
return nullptr;
 
  124      if (canrename && (strcmp(obj->GetName(),slot->GetName()) != 0)) {
 
  125         TNamed *n = 
dynamic_cast<TNamed*
> (obj);
 
  126         if (n) n->SetName(slot->GetName());
 
 
  137   AddDir(pathname, TFile::Open(filename), kTRUE, kTRUE);
 
 
  144   for (
int n = slot->
NumChilds() - 1; n >= 0; n--) {
 
 
  158   const char *name = (dir->InheritsFrom(TFile::Class())) ?
 
  159      gSystem->BaseName(dir->GetName()) : dir->GetName();
 
 
  201      TString name(pathname);
 
  202      if (name.Length()>0) name+=
"/root";
 
  206      slot->SetTitle(
"ROOT folders");
 
 
  228   return !slot ? nullptr : slot->
GetProxy();
 
 
  234   if (!folder) 
return nullptr;
 
  236      return new TGo4Slot(folder, name, title);
 
  242     extraname.Form(
"%s_v%d", name, cycle++);
 
  243   } 
while (folder->
FindChild(extraname.Data()));
 
  245   return new TGo4Slot(folder, extraname.Data(), title);
 
 
  251   if (!source) 
return nullptr;
 
  258   for (Int_t indx = 
fLinks.GetLast(); indx >= 0; indx--) {
 
  263      TString namesrc, nametgt;
 
 
  273   if (!source) 
return nullptr;
 
 
  293   return linkcont ? linkcont->
GetLink() : 
nullptr;
 
 
  309   Bool_t docompress = kFALSE;
 
  310   for (Int_t n = 0; n <= 
fLinks.GetLast(); n++) {
 
 
  326   for (Int_t indx = 
fLinks.GetLast(); indx >= 0; indx--) {
 
  334            Info(
"RetranslateEvent",
"src = %p %s tgt = %p %s id = %d", source, source->
GetFullName().Data(), target, target->
GetFullName().Data(), 
id);
 
  336         target->
Event(source, 
id, param);
 
 
  344      Info(
"Event",
"src %s id %d", source->
GetFullName().Data(), 
id);
 
 
  358   Bool_t usefile = (f != 
nullptr);
 
  360   TDirectory *olddir = gDirectory;
 
  362   TDirectory *curdir = f;
 
  364   if (!startslot) startslot = 
this;
 
  368   bool isxml = f && f->InheritsFrom(
"TXMLFile");
 
  370   while (iter.
next()) {
 
  372      if (usefile && !isxml) {
 
  375         while ((levelchange++<0) && curdir) {
 
  376             curdir = 
dynamic_cast<TDirectory *
> (curdir->GetMother());
 
  381            curdir = curdir->mkdir(iter.
getname(),
"subdirectory");
 
  391   if (olddir) olddir->cd();
 
 
  396   Bool_t usefile = (f != 
nullptr);
 
  398   TDirectory *olddir = gDirectory;
 
  400   TDirectory *curdir = f;
 
  404   while (iter.
next()) {
 
  407         while ((levelchange++<0) && curdir)
 
  408             curdir = 
dynamic_cast<TDirectory *
> (curdir->GetMother());
 
  411             curdir->GetObject(iter.
getname(), curdir);
 
  420   if (olddir) olddir->cd();
 
 
  427   obj->SetBit(kMustCleanup);
 
 
  432   Bool_t compress = kFALSE;
 
  433   for (
int indx = 
fCleanups.GetLast(); indx >= 0; indx--) {
 
  435      if (entry->
GetSlot()!=slot) 
continue;
 
  436      if (!obj || (entry->
GetObject() == obj)) {
 
 
  448   if (!obj || (obj == 
this)) 
return;
 
  450   Bool_t compress = kFALSE;
 
  451   for (
int indx = 
fCleanups.GetLast(); indx >= 0; indx--) {
 
  453      if (!entry) 
continue;
 
 
  471   while (iter.
next()) {
 
  472      printf(
"%*c%s\n", (iter.
level()+1)*2, 
' ', iter.
getname());
 
 
  482   while (iter.
next()) cnt++;
 
 
  489   if (slot) 
delete slot;
 
 
  498   if (!tgtslot) 
return 0;
 
  501   if (!proxy) 
return 0;
 
  503   TClass *cl = proxy->GetObjectClass();
 
  508   Int_t res = proxy->AssignObjectTo(
this, targetslot);
 
  511      proxy.reset(
nullptr);
 
  515   if ((res==2) && (waittime_millisec>0)) {
 
  517      gSystem->ProcessEvents();
 
  519      while ((tgtslot->
GetAssignFlag()<0) && (waittime_millisec>0)) {
 
  521         waittime_millisec-=10;
 
  522         gSystem->ProcessEvents();
 
 
static TFolder * LocateROOTFolder(const char *rootfolder)
Bool_t next(Bool_t goesinto=kTRUE)
TGo4Slot * getslot() const
Int_t levelchange() const
TGo4Slot * GetLink() const
TGo4ObjManCleanup(TObject *obj, TGo4Slot *slot)
TGo4Slot * GetSlot() const
TObject * GetObject() const
Bool_t CheckEventSource(const TGo4Slot *evtsource)
TGo4Slot * GetSource() const
TGo4ObjManLink(TGo4Slot *source, TGo4Slot *target, Bool_t expandchilds)
TGo4Slot * GetTarget() const
Bool_t DoChildsExpand() const
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)
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)
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)
virtual ~TGo4ObjectManager()
void MakeFolder(const char *pathname)
TString GetFullName(TGo4Slot *toparent=nullptr)
Bool_t IsParent(const TGo4Slot *slot) const
TGo4Proxy * GetProxy() const
void SetProxy(TGo4Proxy *cont)
TGo4Slot * GetSlot(const char *name, Bool_t force=kFALSE)
void SaveData(TDirectory *dir, Bool_t onlyobjs=kFALSE)
TGo4Slot * FindChild(const char *name) const
void ForwardEvent(TGo4Slot *source, Int_t id, void *param=nullptr)
void RecursiveRemove(TObject *obj) override
std::unique_ptr< TGo4Access > ProvideSlotAccess(const char *name)
virtual void ProduceFullName(TString &name, TGo4Slot *toparent=nullptr)
Bool_t AssignObject(TObject *obj, Bool_t owner)
void DeleteChilds(const char *startedwith=nullptr)
void ReadData(TDirectory *dir)
TGo4Slot * GetChild(Int_t n) const
virtual void Event(TGo4Slot *source, Int_t id, void *param=nullptr)
Int_t GetAssignFlag() const