Schema evolution will work if you replace the illegal N=0, by N=1 (see also my previous mail) Rene Brun Salvatore Rappoccio wrote: > > Hi, All, > > I have a class that I have been allowing ROOT to generate Streamers for: > > class X { > > X(); > X( const X & ); > > private: > TH1F * x; > TH1F * y; > > ClassDef(X,1) > }; > > Now, I need to extend the class to have an array for "x" and "y": > > class X { > > X(); > X( const X &); > > enum Number_t { N=0, N_NUMBER_TYPES }; > > private: > TH1F* x[N]; > TH1F* y[N]; > > ClassDef(X,2) > }; > > Will the automatic Streamer generator be able to pick up this change? I > imagine not. So if not, what is the order of the variables streamed in the > automatic Streamer? Is there a version number written out? I imagine it to > be: > > version >> x >> y; > > but I can't really be sure. The automatic generation looks like: > > void X::Streamer( TBuffer &R__b) > { > // Stream an object of class X. > > if (R__b.IsReading()) { > X::Class()->ReadBuffer(R__b, this); > } else { > X::Class()->WriteBuffer(R__b, this); > } > } > > so I can't figure out the order of the objects read in and out are. After > I know the order, it is of course trivial to write a streamer to handle > both versions, but I can't figure out what the order is. > > Thanks, > Sal Rappoccio
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET