Re: [ROOT] Writing if more than one list refs the same object.

From: Thomas Bretz (tbretz@uni-sw.gwdg.de)
Date: Wed Nov 14 2001 - 15:43:20 MET


Hi Rene, 

reading your mail some more questions came to my mind...

> If you had tried your own example, you could have seen that name3 is written
> and read only once in case you write an object MyClass, eg myc.Write();

Is this also true if I use TTree::Fill to write the branch?

> We introduce recently in 3.02 two new classes TRef and TRefArray that
> address this particular problem.

I just look into the Classes and members refernce guide, and had to
search for the class description. It is only in the TRef.cxx but not in
TRef.html. How ever I have a question about TRef and the usage of
TObjectIgnoreStreamer.

Assume I have
class B : public A {}
class A : public TObject {}

In the documentation of TClass::IgnoreTObjectStreamer I found that I
should call IgnoreTObjectStreamer for the directly derived class (in
this example class A) instead of a 'next level' class (like class B)

But in TRef::operator= you check the for
obj->IsA()->CanIgnoreStreamer(). Is the information about the
IgnoreTObjectSteamer flag provided to automatically 
to all classes which inherits from class A?

In the documentation I found:
... fRef.GetObject() or the dereferencing operator ->. ...

I was searching for the definition of the operator, but I coudn't find
it. How does it work?

Best Reagrds,
Thomas.



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET