17#include "TDirectory.h"
70 ((TH1 *)
fObject)->SetDirectory(
nullptr);
80 auto om = slot->
GetOM();
86 auto om = slot->
GetOM();
103 return std::make_unique<TGo4ObjectAccess>(
fObject);
112 slot->
SetPar(
"ObjectProxy::ObjName", objname);
118 if (
fObject->InheritsFrom(TH1::Class())) {
120 TDirectory *olddir = h1->GetDirectory();
122 h1->SetDirectory(olddir);
130 const char *objname = slot ? slot->
GetPar(
"ObjectProxy::ObjName") :
nullptr;
131 if (!objname || !dir)
return;
162 return cl && cl->InheritsFrom(TObject::Class());
173 ((TH1 *)
fObject)->SetDirectory(
nullptr);
191 Long_t sz = obj->IsA()->Size();
193 if (obj->InheritsFrom(TH1::Class())) {
194 TH1 *histo =
dynamic_cast<TH1 *
> (obj);
195 Int_t nbins = histo->GetNbinsX()+2;
196 if (histo->GetDimension()>1)
197 nbins = nbins*(histo->GetNbinsY()+2);
198 if (histo->GetDimension()>2)
199 nbins = nbins * (histo->GetNbinsZ()+2);
201 if (strchr(histo->ClassName(),
'S')) binsize =
sizeof(Short_t);
else
202 if (strchr(histo->ClassName(),
'D')) binsize =
sizeof(Double_t);
else
203 if (strchr(histo->ClassName(),
'F')) binsize =
sizeof(Float_t);
else
204 if (strchr(histo->ClassName(),
'I')) binsize =
sizeof(Int_t);
else
205 if (strchr(histo->ClassName(),
'C')) binsize =
sizeof(Char_t);
206 sz += binsize * nbins;
207 }
else if (obj->InheritsFrom(TTree::Class())) {
208 TTree *t = (TTree *) obj;
209 sz += t->GetZipBytes();
210 }
else if (obj->InheritsFrom(TGo4Picture::Class())) {
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.
void RegisterObjectWith(TObject *obj, TGo4Slot *slot)
void UnregisterObject(TObject *obj, TGo4Slot *slot)
Int_t GetObjectKind() const override
void ReadData(TGo4Slot *slot, TDirectory *dir) override
const char * GetContainedClassName() const override
void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override
Int_t GetObjectSizeInfo() const override
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
Picture cconfiguration in Go4.
Long_t GetTotalSize()
Returns total size, used by picture in memory.
virtual Int_t GetObjectSizeInfo() const
virtual TGo4ObjectManager * GetOM() const
void ForwardEvent(TGo4Slot *source, Int_t id, void *param=nullptr)
void SetPar(const char *name, const char *value)
const char * GetPar(const char *name) const