Re: [ROOT] Removing an obsolete class

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Mon Jul 31 2000 - 14:11:35 MEST


Hi George,

   if the object of the obsolete class has been embedded then the best
way is to put some dummy calls to read the now unneeded information:

Int_t   dum1;
Float_t dum2;
R__b >> dum1;
R__b >> dum2;
R__b >> dum2;

or manipulate the buffer offset:

R__b.SetBufferOffset(R__b.Length() + classlen);  // skip bytes take by obsolete
class

If the class is not embedded but used via a pointer, then just
removing the class should work. TBuffer can handle missing classes and skip
the data.

Cheers, Fons.




George Heintzelman wrote:
> 
> Rooters,
> 
> We have in our code an obsolete class that we would like to remove from
> the structure. The only problem is that it is written out as a data
> member of an existing class.
> 
> We intend to simply remove this data member, so we are not worried
> about the loss of information. However, I need to make sure that the
> revised streamer can still read the old files, ideally skipping over
> the now-unused information. How can I tell the streamer to do this? (I
> don't believe that there is a valid streamerinfo for this class, if
> that makes a difference.)
> 
> Thanks,
> 
> George

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:30 MET