diff --git a/cont/src/TContainerConverters.cxx b/cont/src/TContainerConverters.cxx index 6464843b9a589b62ecdb400900b9a15eda626910..f32b7382623fbd27cf4eefa2beddc9e442be9c14 100644 --- a/cont/src/TContainerConverters.cxx +++ b/cont/src/TContainerConverters.cxx @@ -1,4 +1,4 @@ -// @(#)root/cony:$Name: $:$Id: TContainerConverters.cxx,v 1.7 2007/01/29 15:10:48 brun Exp $ +// @(#)root/cony:$Name: $:$Id: TContainerConverters.cxx,v 1.8 2007/01/29 15:53:35 brun Exp $ // Author: Philippe Canal 11/11/2004 /************************************************************************* @@ -44,7 +44,7 @@ void TConvertClonesArrayToProxy::operator()(TBuffer &b, void *pmember, Int_t siz { // Read a TClonesArray in the TBuffer b and load it into a (stl) collection - TStreamerInfo *subinfo = fProxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)fProxy->GetValueClass()->GetStreamerInfo(); R__ASSERT(subinfo); Int_t nobjects, dummy; diff --git a/io/src/TContainerConverters.cxx b/io/src/TContainerConverters.cxx index 6464843b9a589b62ecdb400900b9a15eda626910..f32b7382623fbd27cf4eefa2beddc9e442be9c14 100644 --- a/io/src/TContainerConverters.cxx +++ b/io/src/TContainerConverters.cxx @@ -1,4 +1,4 @@ -// @(#)root/cony:$Name: $:$Id: TContainerConverters.cxx,v 1.7 2007/01/29 15:10:48 brun Exp $ +// @(#)root/cony:$Name: $:$Id: TContainerConverters.cxx,v 1.8 2007/01/29 15:53:35 brun Exp $ // Author: Philippe Canal 11/11/2004 /************************************************************************* @@ -44,7 +44,7 @@ void TConvertClonesArrayToProxy::operator()(TBuffer &b, void *pmember, Int_t siz { // Read a TClonesArray in the TBuffer b and load it into a (stl) collection - TStreamerInfo *subinfo = fProxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)fProxy->GetValueClass()->GetStreamerInfo(); R__ASSERT(subinfo); Int_t nobjects, dummy; diff --git a/io/src/TStreamerInfoReadBuffer.cxx b/io/src/TStreamerInfoReadBuffer.cxx index 323780590653a9ae66a3aadb66f42a45984e8a56..57d7722537a1ed8ccd20704992c171e85e071599 100644 --- a/io/src/TStreamerInfoReadBuffer.cxx +++ b/io/src/TStreamerInfoReadBuffer.cxx @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerInfoReadBuffer.cxx,v 1.43 2007/01/25 11:51:58 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerInfoReadBuffer.cxx,v 1.44 2007/01/28 18:31:37 brun Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -894,7 +894,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, vers &= ~( TBufferFile::kStreamedMemberWise ); TVirtualCollectionProxy *proxy = aElement->GetClassPointer()->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { void* env; void **contp = (void**)(arr[k]+ioffset); @@ -950,7 +950,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, vers &= ~( TBufferFile::kStreamedMemberWise ); TVirtualCollectionProxy *proxy = aElement->GetClassPointer()->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { int objectSize = cle->Size(); char *obj = arr[k]+ioffset; @@ -1029,7 +1029,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, } else { Int_t clversion = ((TStreamerBase*)aElement)->GetBaseVersion(); - cle->GetStreamerInfo(clversion)->ReadBuffer(b,arr,-1,narr,ioffset,arrayMode); + ((TStreamerInfo*)cle->GetStreamerInfo(clversion))->ReadBuffer(b,arr,-1,narr,ioffset,arrayMode); } continue; diff --git a/io/src/TStreamerInfoWriteBuffer.cxx b/io/src/TStreamerInfoWriteBuffer.cxx index 4396e84f0306a09dcfee9f99afcb237769dcaef3..a2c32b0e3f7775b2b1b607ed92ba3915c8793422 100644 --- a/io/src/TStreamerInfoWriteBuffer.cxx +++ b/io/src/TStreamerInfoWriteBuffer.cxx @@ -420,7 +420,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, UInt_t pos = b.WriteVersionMemberWise(thisVar->IsA(),kTRUE); TVirtualCollectionProxy *proxy = cl->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { char **contp = (char**)(arr[k]+ioffset); for(int j=0;j<fLength[i];++j) { @@ -460,7 +460,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, UInt_t pos = b.WriteVersionMemberWise(thisVar->IsA(),kTRUE); TVirtualCollectionProxy *proxy = cl->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { char *obj = (char*)(arr[k]+ioffset); Int_t n = fLength[i]; @@ -528,7 +528,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, } } else { TClass *cl = fComp[i].fClass; - cl->GetStreamerInfo()->WriteBufferAux(b,arr,-1,narr,ioffset,arrayMode); + ((TStreamerInfo*)cl->GetStreamerInfo())->WriteBufferAux(b,arr,-1,narr,ioffset,arrayMode); } continue; diff --git a/meta/inc/TStreamerElement.h b/meta/inc/TStreamerElement.h index 99e5b55f01a5c2474e6c39284b540b555060cf29..5dba5c6641081affb30ab2b48037522902878d1f 100644 --- a/meta/inc/TStreamerElement.h +++ b/meta/inc/TStreamerElement.h @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerElement.h,v 1.37 2005/04/21 06:24:46 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerElement.h,v 1.38 2005/06/23 18:19:26 pcanal Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -50,8 +50,8 @@ protected: public: - enum ESTLtype { kSTL = 300 /* TStreamerInfo::kSTL */, - kSTLstring = 365 /* TStreamerInfo::kSTLstring */, + enum ESTLtype { kSTL = 300 /* TVirtualStreamerInfo::kSTL */, + kSTLstring = 365 /* TVirtualStreamerInfo::kSTLstring */, kSTLvector = 1, kSTLlist = 2, kSTLdeque = 3, kSTLmap = 4, kSTLset = 5, kSTLmultimap=6, kSTLmultiset=7}; diff --git a/meta/src/TStreamerElement.cxx b/meta/src/TStreamerElement.cxx index e08c08316277e8150aa12475e866cc42d737312b..43c18af64980f12a1351a630a3f47bfbe918a29f 100644 --- a/meta/src/TStreamerElement.cxx +++ b/meta/src/TStreamerElement.cxx @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerElement.cxx,v 1.90 2007/01/15 10:03:12 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerElement.cxx,v 1.91 2007/01/29 16:09:47 brun Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -17,7 +17,7 @@ #include "TROOT.h" #include "TStreamerElement.h" -#include "TStreamerInfo.h" +#include "TVirtualStreamerInfo.h" #include "TClass.h" #include "TClassEdit.h" #include "TBaseClass.h" @@ -48,11 +48,11 @@ static TStreamerBasicType *InitCounter(const char *countClass, const char *count if (cl==0) return 0; - TStreamerBasicType *counter = TStreamerInfo::GetElementCounter(countName,cl); + TStreamerBasicType *counter = TVirtualStreamerInfo::GetElementCounter(countName,cl); //at this point the counter is may be declared to skip if (counter) { - if (counter->GetType() < TStreamerInfo::kCounter) counter->SetType(TStreamerInfo::kCounter); + if (counter->GetType() < TVirtualStreamerInfo::kCounter) counter->SetType(TVirtualStreamerInfo::kCounter); } return counter; } @@ -209,11 +209,11 @@ Bool_t TStreamerElement::CannotSplit() const if (!cl) return kFALSE; //basic type switch(fType) { - case TStreamerInfo::kAny +TStreamerInfo::kOffsetL: - case TStreamerInfo::kObject +TStreamerInfo::kOffsetL: - case TStreamerInfo::kTObject+TStreamerInfo::kOffsetL: - case TStreamerInfo::kTString+TStreamerInfo::kOffsetL: - case TStreamerInfo::kTNamed +TStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kAny +TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kObject +TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kTObject+TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kTString+TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kTNamed +TVirtualStreamerInfo::kOffsetL: return kTRUE; } @@ -358,7 +358,7 @@ void TStreamerElement::SetArrayDim(Int_t dim) // Set number of array dimensions. fArrayDim = dim; - if (dim) fType += TStreamerInfo::kOffsetL; + if (dim) fType += TVirtualStreamerInfo::kOffsetL; fNewType = fType; } @@ -483,12 +483,12 @@ TStreamerBase::TStreamerBase() //______________________________________________________________________________ TStreamerBase::TStreamerBase(const char *name, const char *title, Int_t offset) - : TStreamerElement(name,title,offset,TStreamerInfo::kBase,"BASE") + : TStreamerElement(name,title,offset,TVirtualStreamerInfo::kBase,"BASE") { // Create a TStreamerBase object. - if (strcmp(name,"TObject") == 0) fType = TStreamerInfo::kTObject; - if (strcmp(name,"TNamed") == 0) fType = TStreamerInfo::kTNamed; + if (strcmp(name,"TObject") == 0) fType = TVirtualStreamerInfo::kTObject; + if (strcmp(name,"TNamed") == 0) fType = TVirtualStreamerInfo::kTNamed; fNewType = fType; fBaseClass = TClass::GetClass(GetName()); fBaseVersion = fBaseClass->GetClassVersion(); @@ -525,7 +525,7 @@ void TStreamerBase::Init(TObject *) { // Setup the element. - if (fType == TStreamerInfo::kTObject || fType == TStreamerInfo::kTNamed) return; + if (fType == TVirtualStreamerInfo::kTObject || fType == TVirtualStreamerInfo::kTNamed) return; fBaseClass = TClass::GetClass(GetName()); if (!fBaseClass) return; if (!fBaseClass->GetMethodAny("StreamerNVirtual")) return; @@ -674,7 +674,7 @@ TStreamerBasicPointer::TStreamerBasicPointer(const char *name, const char *title { // Create a TStreamerBasicPointer object. - fType += TStreamerInfo::kOffsetP; + fType += TVirtualStreamerInfo::kOffsetP; fCountName = countName; fCountClass = countClass; fCountVersion = countVersion; //currently unused @@ -722,7 +722,7 @@ void TStreamerBasicPointer::SetArrayDim(Int_t dim) // Set number of array dimensions. fArrayDim = dim; - //if (dim) fType += TStreamerInfo::kOffsetL; + //if (dim) fType += TVirtualStreamerInfo::kOffsetL; fNewType = fType; } @@ -771,7 +771,7 @@ TStreamerLoop::TStreamerLoop() : fCounter(0) //______________________________________________________________________________ TStreamerLoop::TStreamerLoop(const char *name, const char *title, Int_t offset, const char *countName, const char *countClass, Int_t countVersion, const char *typeName) - : TStreamerElement(name,title,offset,TStreamerInfo::kStreamLoop,typeName) + : TStreamerElement(name,title,offset,TVirtualStreamerInfo::kStreamLoop,typeName) { // Create a TStreamerLoop object. @@ -886,8 +886,8 @@ ULong_t TStreamerBasicType::GetMethod() const { // return address of counter - if (fType == TStreamerInfo::kCounter || - fType == (TStreamerInfo::kCounter+TStreamerInfo::kSkip)) return (ULong_t)&fCounter; + if (fType == TVirtualStreamerInfo::kCounter || + fType == (TVirtualStreamerInfo::kCounter+TVirtualStreamerInfo::kSkip)) return (ULong_t)&fCounter; return 0; } @@ -943,9 +943,9 @@ TStreamerObject::TStreamerObject(const char *name, const char *title, Int_t offs { // Create a TStreamerObject object. - fType = TStreamerInfo::kObject; - if (strcmp(typeName,"TObject") == 0) fType = TStreamerInfo::kTObject; - if (strcmp(typeName,"TNamed") == 0) fType = TStreamerInfo::kTNamed; + fType = TVirtualStreamerInfo::kObject; + if (strcmp(typeName,"TObject") == 0) fType = TVirtualStreamerInfo::kTObject; + if (strcmp(typeName,"TNamed") == 0) fType = TVirtualStreamerInfo::kTNamed; fNewType = fType; Init(); } @@ -1029,7 +1029,7 @@ TStreamerObjectAny::TStreamerObjectAny() //______________________________________________________________________________ TStreamerObjectAny::TStreamerObjectAny(const char *name, const char *title, Int_t offset, const char *typeName) - : TStreamerElement(name,title,offset,TStreamerInfo::kAny,typeName) + : TStreamerElement(name,title,offset,TVirtualStreamerInfo::kAny,typeName) { // Create a TStreamerObjectAny object. Init(); @@ -1116,11 +1116,11 @@ TStreamerObjectPointer::TStreamerObjectPointer() //______________________________________________________________________________ TStreamerObjectPointer::TStreamerObjectPointer(const char *name, const char *title, Int_t offset, const char *typeName) - : TStreamerElement(name,title,offset,TStreamerInfo::kObjectP,typeName) + : TStreamerElement(name,title,offset,TVirtualStreamerInfo::kObjectP,typeName) { // Create a TStreamerObjectPointer object. - if (strncmp(title,"->",2) == 0) fType = TStreamerInfo::kObjectp; + if (strncmp(title,"->",2) == 0) fType = TVirtualStreamerInfo::kObjectp; fNewType = fType; Init(); } @@ -1170,7 +1170,7 @@ void TStreamerObjectPointer::SetArrayDim(Int_t dim) // Set number of array dimensions. fArrayDim = dim; - //if (dim) fType += TStreamerInfo::kOffsetL; + //if (dim) fType += TVirtualStreamerInfo::kOffsetL; fNewType = fType; } @@ -1214,11 +1214,11 @@ TStreamerObjectAnyPointer::TStreamerObjectAnyPointer() //______________________________________________________________________________ TStreamerObjectAnyPointer::TStreamerObjectAnyPointer(const char *name, const char *title, Int_t offset, const char *typeName) - : TStreamerElement(name,title,offset,TStreamerInfo::kAnyP,typeName) + : TStreamerElement(name,title,offset,TVirtualStreamerInfo::kAnyP,typeName) { // Create a TStreamerObjectAnyPointer object. - if (strncmp(title,"->",2) == 0) fType = TStreamerInfo::kAnyp; + if (strncmp(title,"->",2) == 0) fType = TVirtualStreamerInfo::kAnyp; fNewType = fType; Init(); } @@ -1268,7 +1268,7 @@ void TStreamerObjectAnyPointer::SetArrayDim(Int_t dim) // Set number of array dimensions. fArrayDim = dim; - //if (dim) fType += TStreamerInfo::kOffsetL; + //if (dim) fType += TVirtualStreamerInfo::kOffsetL; fNewType = fType; } @@ -1303,7 +1303,7 @@ TStreamerString::TStreamerString() //______________________________________________________________________________ TStreamerString::TStreamerString(const char *name, const char *title, Int_t offset) - : TStreamerElement(name,title,offset,TStreamerInfo::kTString,"TString") + : TStreamerElement(name,title,offset,TVirtualStreamerInfo::kTString,"TString") { // Create a TStreamerString object. @@ -1413,7 +1413,7 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset, else if (strstr(s,"multimap")) fSTLtype = kSTLmultimap; else if (strstr(s,"multiset")) fSTLtype = kSTLmultiset; if (fSTLtype == 0) { delete [] s; return;} - if (dmPointer) fSTLtype += TStreamerInfo::kOffsetP; + if (dmPointer) fSTLtype += TVirtualStreamerInfo::kOffsetP; // find STL contained type while (*sopen==' ') sopen++; @@ -1434,22 +1434,22 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset, TDataType *dt = (TDataType*)gROOT->GetListOfTypes()->FindObject(sopen); if (dt) { fCtype = dt->GetType(); - if (isPointer) fCtype += TStreamerInfo::kOffsetP; + if (isPointer) fCtype += TVirtualStreamerInfo::kOffsetP; } else { // this could also be a nested enums ... which should work ... be let's see. TClass *cl = TClass::GetClass(sopen); if (cl) { - if (isPointer) fCtype = TStreamerInfo::kObjectp; - else fCtype = TStreamerInfo::kObject; + if (isPointer) fCtype = TVirtualStreamerInfo::kObjectp; + else fCtype = TVirtualStreamerInfo::kObject; } else { G__ClassInfo info(sopen); if (info.IsValid() && info.Property()&G__BIT_ISENUM) { - if (isPointer) fCtype += TStreamerInfo::kOffsetP; + if (isPointer) fCtype += TVirtualStreamerInfo::kOffsetP; } else { if(strcmp(sopen,"string")) { // This case can happens when 'this' is a TStreamerElement for // a STL container containing something for which we do not have - // a TStreamerInfo (This happens in particular is the collection + // a TVirtualStreamerInfo (This happens in particular is the collection // objects themselves are always empty) and we do not have the // dictionary/shared library for the container. if (GetClassPointer() && GetClassPointer()->IsLoaded()) { @@ -1461,7 +1461,7 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset, } delete [] s; - if (TStreamerSTL::IsaPointer()) fType = TStreamerInfo::kSTLp; + if (TStreamerSTL::IsaPointer()) fType = TVirtualStreamerInfo::kSTLp; } //______________________________________________________________________________ @@ -1561,10 +1561,10 @@ void TStreamerSTL::SetStreamer(TMemberStreamer *streamer) //set pointer to Streamer function for this element //NOTE: we do not take ownership - if (fType==TStreamerInfo::kSTLp || 1) return; + if (fType==TVirtualStreamerInfo::kSTLp || 1) return; fStreamer = streamer; if (streamer && !IsaPointer() ) { - fType = TStreamerInfo::kStreamer; + fType = TVirtualStreamerInfo::kStreamer; fNewType = fType; } } @@ -1586,13 +1586,13 @@ void TStreamerSTL::Streamer(TBuffer &R__b) R__b >> fCtype; R__b.CheckByteCount(R__s, R__c, TStreamerSTL::IsA()); } - if (IsaPointer()) fType = TStreamerInfo::kSTLp; - else fType = TStreamerInfo::kSTL; + if (IsaPointer()) fType = TVirtualStreamerInfo::kSTLp; + else fType = TVirtualStreamerInfo::kSTL; return; } else { // To enable forward compatibility we actually save with the old value Int_t tmp = fType; - fType = TStreamerInfo::kStreamer; + fType = TVirtualStreamerInfo::kStreamer; TStreamerSTL::Class()->WriteBuffer(R__b,this); fType = tmp; } @@ -1625,9 +1625,9 @@ TStreamerSTLstring::TStreamerSTLstring(const char *name, const char *title, Int_ SetTitle(title); if (dmPointer) { - fType = TStreamerInfo::kSTLp; + fType = TVirtualStreamerInfo::kSTLp; } else { - fType = TStreamerInfo::kSTL; + fType = TVirtualStreamerInfo::kSTL; } fNewType = fType; diff --git a/meta/src/TStreamerInfoReadBuffer.cxx b/meta/src/TStreamerInfoReadBuffer.cxx index 323780590653a9ae66a3aadb66f42a45984e8a56..57d7722537a1ed8ccd20704992c171e85e071599 100644 --- a/meta/src/TStreamerInfoReadBuffer.cxx +++ b/meta/src/TStreamerInfoReadBuffer.cxx @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerInfoReadBuffer.cxx,v 1.43 2007/01/25 11:51:58 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerInfoReadBuffer.cxx,v 1.44 2007/01/28 18:31:37 brun Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -894,7 +894,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, vers &= ~( TBufferFile::kStreamedMemberWise ); TVirtualCollectionProxy *proxy = aElement->GetClassPointer()->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { void* env; void **contp = (void**)(arr[k]+ioffset); @@ -950,7 +950,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, vers &= ~( TBufferFile::kStreamedMemberWise ); TVirtualCollectionProxy *proxy = aElement->GetClassPointer()->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { int objectSize = cle->Size(); char *obj = arr[k]+ioffset; @@ -1029,7 +1029,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, } else { Int_t clversion = ((TStreamerBase*)aElement)->GetBaseVersion(); - cle->GetStreamerInfo(clversion)->ReadBuffer(b,arr,-1,narr,ioffset,arrayMode); + ((TStreamerInfo*)cle->GetStreamerInfo(clversion))->ReadBuffer(b,arr,-1,narr,ioffset,arrayMode); } continue; diff --git a/meta/src/TStreamerInfoWriteBuffer.cxx b/meta/src/TStreamerInfoWriteBuffer.cxx index 4396e84f0306a09dcfee9f99afcb237769dcaef3..a2c32b0e3f7775b2b1b607ed92ba3915c8793422 100644 --- a/meta/src/TStreamerInfoWriteBuffer.cxx +++ b/meta/src/TStreamerInfoWriteBuffer.cxx @@ -420,7 +420,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, UInt_t pos = b.WriteVersionMemberWise(thisVar->IsA(),kTRUE); TVirtualCollectionProxy *proxy = cl->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { char **contp = (char**)(arr[k]+ioffset); for(int j=0;j<fLength[i];++j) { @@ -460,7 +460,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, UInt_t pos = b.WriteVersionMemberWise(thisVar->IsA(),kTRUE); TVirtualCollectionProxy *proxy = cl->GetCollectionProxy(); - TStreamerInfo *subinfo = proxy->GetValueClass()->GetStreamerInfo(); + TStreamerInfo *subinfo = (TStreamerInfo*)proxy->GetValueClass()->GetStreamerInfo(); DOLOOP { char *obj = (char*)(arr[k]+ioffset); Int_t n = fLength[i]; @@ -528,7 +528,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, } } else { TClass *cl = fComp[i].fClass; - cl->GetStreamerInfo()->WriteBufferAux(b,arr,-1,narr,ioffset,arrayMode); + ((TStreamerInfo*)cl->GetStreamerInfo())->WriteBufferAux(b,arr,-1,narr,ioffset,arrayMode); } continue; diff --git a/sql/inc/TSQLFile.h b/sql/inc/TSQLFile.h index 09e438da0f5f8f7e6fa79e713d58191da705e130..a6134aa3b34de4506aefb7833cdb9768a0b3ecb1 100644 --- a/sql/inc/TSQLFile.h +++ b/sql/inc/TSQLFile.h @@ -1,4 +1,4 @@ -// @(#)root/sql:$Name: $:$Id: TSQLFile.h,v 1.9 2006/06/22 08:21:22 brun Exp $ +// @(#)root/sql:$Name: $:$Id: TSQLFile.h,v 1.10 2006/06/27 14:36:27 brun Exp $ // Author: Sergey Linev 20/11/2005 /************************************************************************* @@ -26,7 +26,7 @@ class TList; class TStreamerElement; -class TStreamerInfo; +class TVirtualStreamerInfo; class TSQLServer; class TSQLStatement; @@ -111,7 +111,7 @@ protected: Bool_t CreateClassTable(TSQLClassInfo* sqlinfo, TObjArray* colinfos); Bool_t CreateRawTable(TSQLClassInfo* sqlinfo); - Bool_t ProduceClassSelectQuery(TStreamerInfo* info, TSQLClassInfo* sqlinfo, TString& columns, TString& tables, Int_t& tablecnt); + Bool_t ProduceClassSelectQuery(TVirtualStreamerInfo* info, TSQLClassInfo* sqlinfo, TString& columns, TString& tables, Int_t& tablecnt); void AddIdEntry(Long64_t tableid, Int_t subid, Int_t type, const char* name, const char* sqlname, const char* info); void ReadSQLClassInfos(); diff --git a/sql/src/TSQLFile.cxx b/sql/src/TSQLFile.cxx index 0a738dc74a57eb512f6b3cdc3debd23a25472705..5f0e70a5b2d6a785cd31ddadb989a453a5b5cad0 100644 --- a/sql/src/TSQLFile.cxx +++ b/sql/src/TSQLFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/sql:$Name: $:$Id: TSQLFile.cxx,v 1.15 2006/06/27 14:36:27 brun Exp $ +// @(#)root/sql:$Name: $:$Id: TSQLFile.cxx,v 1.16 2007/01/22 05:58:29 brun Exp $ // Author: Sergey Linev 20/11/2005 /************************************************************************* @@ -174,7 +174,7 @@ #include "TObjString.h" #include "TList.h" #include "TArrayC.h" -#include "TStreamerInfo.h" +#include "TVirtualStreamerInfo.h" #include "TStreamerElement.h" #include "TProcessID.h" #include "TError.h" @@ -824,7 +824,7 @@ void TSQLFile::WriteHeader() //______________________________________________________________________________ void TSQLFile::WriteStreamerInfo() { - // Store all TStreamerInfo, used in file, in sql database + // Store all TVirtualStreamerInfo, used in file, in sql database // return; @@ -838,9 +838,9 @@ void TSQLFile::WriteStreamerInfo() TIter iter(gROOT->GetListOfStreamerInfo()); - TStreamerInfo* info = 0; + TVirtualStreamerInfo* info = 0; - while ((info = (TStreamerInfo*) iter()) !=0 ) { + while ((info = (TVirtualStreamerInfo*) iter()) !=0 ) { Int_t uid = info->GetNumber(); if (fClassIndex->fArray[uid]) { if (gDebug>1) Info("WriteStreamerInfo","Add %s",info->GetName()); @@ -848,11 +848,11 @@ void TSQLFile::WriteStreamerInfo() } } if (list.GetSize()==0) return; - fClassIndex->fArray[0] = 2; //to prevent adding classes in TStreamerInfo::TagFile + fClassIndex->fArray[0] = 2; //to prevent adding classes in TVirtualStreamerInfo::TagFile WriteSpecialObject(sqlio::Ids_StreamerInfos, &list, "StreamerInfo", "StreamerInfos of this file"); - fClassIndex->fArray[0] = 0; //to prevent adding classes in TStreamerInfo::TagFile + fClassIndex->fArray[0] = 0; //to prevent adding classes in TVirtualStreamerInfo::TagFile } //______________________________________________________________________________ @@ -1263,14 +1263,14 @@ TString TSQLFile::MakeSelectQuery(TClass* cl) } //______________________________________________________________________________ -Bool_t TSQLFile::ProduceClassSelectQuery(TStreamerInfo* info, +Bool_t TSQLFile::ProduceClassSelectQuery(TVirtualStreamerInfo* info, TSQLClassInfo* sqlinfo, TString& columns, TString& tables, Int_t& tablecnt) { // used by MakeClassSelectQuery method to add columns from table of - // class, specified by TStreamerInfo structure + // class, specified by TVirtualStreamerInfo structure if ((info==0) || (sqlinfo==0)) return kFALSE; @@ -2572,7 +2572,7 @@ Long64_t TSQLFile::StoreObjectInTables(Long64_t keyid, const void* obj, const TC const char* TSQLFile::SQLCompatibleType(Int_t typ) const { // returns sql type name which is most closer to ROOT basic type - // typ should be from TStreamerInfo:: constansts like TStreamerInfo::kInt + // typ should be from TVirtualStreamerInfo:: constansts like TVirtualStreamerInfo::kInt return (typ<0) || (typ>18) ? 0 : fBasicTypes[typ]; } @@ -2582,7 +2582,7 @@ const char* TSQLFile::SQLIntType() const { // return SQL integer type - return SQLCompatibleType(TStreamerInfo::kInt); + return SQLCompatibleType(TVirtualStreamerInfo::kInt); } //______________________________________________________________________________ diff --git a/tree/src/TBranch.cxx b/tree/src/TBranch.cxx index 956f1bc16ca6d774ad7defad19475e6a9755f3d3..95185b0dabb5f949dad2dae2a6a8c850189bdebf 100644 --- a/tree/src/TBranch.cxx +++ b/tree/src/TBranch.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranch.cxx,v 1.120 2007/01/20 19:29:35 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranch.cxx,v 1.121 2007/01/31 07:33:31 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -30,7 +30,6 @@ #include "TLeafS.h" #include "TMessage.h" #include "TROOT.h" -#include "TStreamerInfo.h" #include "TSystem.h" #include "TMath.h" #include "TTree.h" diff --git a/tree/src/TBranchBrowsable.cxx b/tree/src/TBranchBrowsable.cxx index 0c1923cc9bc7f49efb710899500c18ed2102b7ae..dc3f040c6822aac5690c9e72fa15bc1d37e5bd24 100644 --- a/tree/src/TBranchBrowsable.cxx +++ b/tree/src/TBranchBrowsable.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranchBrowsable.cxx,v 1.11 2007/01/30 11:24:31 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranchBrowsable.cxx,v 1.12 2007/02/03 18:33:15 brun Exp $ // Author: Axel Naumann 14/10/2004 /************************************************************************* @@ -595,7 +595,7 @@ Int_t TNonSplitBrowsable::GetBrowsables(TList& li, const TBranch* branch, TClass* clContained=0; GetCollectionContainedType(branch, parent, clContained); - TStreamerInfo* streamerInfo=clContained?clContained->GetStreamerInfo():0; + TVirtualStreamerInfo* streamerInfo= clContained?clContained->GetStreamerInfo():0; if (!streamerInfo || !streamerInfo->GetElements() || !streamerInfo->GetElements()->GetSize()) return 0; @@ -638,7 +638,7 @@ Int_t TNonSplitBrowsable::GetBrowsables(TList& li, const TBranch* branch, if (!clElements) continue; // now loop over the class's streamer elements - TStreamerInfo* streamerInfo=clElements->GetStreamerInfo(); + TVirtualStreamerInfo* streamerInfo= clElements->GetStreamerInfo(); TIter iElem(streamerInfo->GetElements()); TStreamerElement* elem=0; while ((elem=(TStreamerElement*)iElem())) { diff --git a/tree/src/TBranchElement.cxx b/tree/src/TBranchElement.cxx index c4a6a8a105a95e08d6f4d9e4a6d8be1543e57c52..ae752c36ae924f52ab5ba9c2101973396f3a497c 100644 --- a/tree/src/TBranchElement.cxx +++ b/tree/src/TBranchElement.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranchElement.cxx,v 1.214 2007/01/30 11:24:31 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranchElement.cxx,v 1.215 2007/01/31 07:33:31 brun Exp $ // Authors Rene Brun , Philippe Canal, Markus Frank 14/01/2001 /************************************************************************* @@ -180,7 +180,7 @@ TBranchElement::TBranchElement(const char* bname, TStreamerInfo* sinfo, Int_t id // fEntryOffsetLen = 0; - if (btype || (fStreamerType <= TStreamerInfo::kBase) || (fStreamerType == TStreamerInfo::kCharStar) || (fStreamerType == TStreamerInfo::kBits) || (fStreamerType > TStreamerInfo::kBool)) { + if (btype || (fStreamerType <= TVirtualStreamerInfo::kBase) || (fStreamerType == TVirtualStreamerInfo::kCharStar) || (fStreamerType == TVirtualStreamerInfo::kBits) || (fStreamerType > TVirtualStreamerInfo::kBool)) { fEntryOffsetLen = 1000; } @@ -230,7 +230,7 @@ TBranchElement::TBranchElement(const char* bname, TStreamerInfo* sinfo, Int_t id // -- We are a sub-branch of a split object. ULong_t* elems = sinfo->GetElems(); TStreamerElement* element = (TStreamerElement*) elems[id]; - if ((fStreamerType == TStreamerInfo::kObject) || (fStreamerType == TStreamerInfo::kBase) || (fStreamerType == TStreamerInfo::kTNamed) || (fStreamerType == TStreamerInfo::kTObject) || (fStreamerType == TStreamerInfo::kObjectp) || (fStreamerType == TStreamerInfo::kObjectP)) { + if ((fStreamerType == TVirtualStreamerInfo::kObject) || (fStreamerType == TVirtualStreamerInfo::kBase) || (fStreamerType == TVirtualStreamerInfo::kTNamed) || (fStreamerType == TVirtualStreamerInfo::kTObject) || (fStreamerType == TVirtualStreamerInfo::kObjectp) || (fStreamerType == TVirtualStreamerInfo::kObjectP)) { // -- If we are an object data member which inherits from TObject, // flag it so that later during i/o we will register the object // with the buffer so that pointers are handled correctly. @@ -428,7 +428,7 @@ TBranchElement::TBranchElement(const char* bname, TStreamerInfo* sinfo, Int_t id BuildTitle(name); return; } - } else if (!strchr(elem_type, '*') && ((fStreamerType == TStreamerInfo::kObject) || (fStreamerType == TStreamerInfo::kAny))) { + } else if (!strchr(elem_type, '*') && ((fStreamerType == TVirtualStreamerInfo::kObject) || (fStreamerType == TVirtualStreamerInfo::kAny))) { // -- Create sub-branches for members that are classes. // // Note: This can only happen if we were called directly @@ -473,7 +473,7 @@ TBranchElement::TBranchElement(const char* bname, TClonesArray* clones, Int_t ba , fClassName("TClonesArray") , fParentName() // FIXME: Bad, the streamer info will be optimized here. -, fInfo(TClonesArray::Class()->GetStreamerInfo()) +, fInfo((TStreamerInfo*)TClonesArray::Class()->GetStreamerInfo()) , fCurrentClass() , fParentClass() , fBranchClass(TClonesArray::Class()) @@ -593,7 +593,7 @@ TBranchElement::TBranchElement(const char* bname, TVirtualCollectionProxy* cont, fInfo = 0; fID = -1; fInit = kTRUE; - fStreamerType = -1; // TStreamerInfo::kSTLp; + fStreamerType = -1; // TVirtualStreamerInfo::kSTLp; fType = 0; fClassVersion = cont->GetCollectionClass()->GetClassVersion(); fCheckSum = cont->GetCollectionClass()->GetCheckSum(); @@ -1040,7 +1040,7 @@ void TBranchElement::FillLeaves(TBuffer& b) return; } Int_t n = si->WriteBufferAux(b, &fObject, fID, 1, 0, 0); - if ((fStreamerType == TStreamerInfo::kCounter) && (n > fMaximum)) { + if ((fStreamerType == TVirtualStreamerInfo::kCounter) && (n > fMaximum)) { fMaximum = n; } } else if (fType == 3) { @@ -1049,7 +1049,7 @@ void TBranchElement::FillLeaves(TBuffer& b) // FIXME: What if GetClonesName() is the zero pointer or an empty string? TClass* cl = TClass::GetClass(GetClonesName()); // FIXME: What if cl is a zero pointer here? - TStreamerInfo* si = cl->GetStreamerInfo(); + TVirtualStreamerInfo* si = cl->GetStreamerInfo(); if (!si) { Error("FillLeaves", "Cannot get streamer info for branch '%s' class '%s'", GetName(), cl->GetName()); return; @@ -1126,15 +1126,15 @@ void TBranchElement::FillLeaves(TBuffer& b) } switch (atype) { // Note: Type 0 is a base class and cannot happen here, see Unroll(). - case TStreamerInfo::kChar /* 1 */: { b.WriteFastArray((Char_t*) fAddress, n); break; } - case TStreamerInfo::kShort /* 2 */: { b.WriteFastArray((Short_t*) fAddress, n); break; } - case TStreamerInfo::kInt /* 3 */: { b.WriteFastArray((Int_t*) fAddress, n); break; } - case TStreamerInfo::kLong /* 4 */: { b.WriteFastArray((Long_t*) fAddress, n); break; } - case TStreamerInfo::kFloat /* 5 */: { b.WriteFastArray((Float_t*) fAddress, n); break; } - case TStreamerInfo::kCounter /* 6 */: { b.WriteFastArray((Int_t*) fAddress, n); break; } - // FIXME: We do nothing with type 7 (TStreamerInfo::kCharStar, char*) here! - case TStreamerInfo::kDouble /* 8 */: { b.WriteFastArray((Double_t*) fAddress, n); break; } - case TStreamerInfo::kDouble32 /* 9 */: { + case TVirtualStreamerInfo::kChar /* 1 */: { b.WriteFastArray((Char_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kShort /* 2 */: { b.WriteFastArray((Short_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kInt /* 3 */: { b.WriteFastArray((Int_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kLong /* 4 */: { b.WriteFastArray((Long_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kFloat /* 5 */: { b.WriteFastArray((Float_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kCounter /* 6 */: { b.WriteFastArray((Int_t*) fAddress, n); break; } + // FIXME: We do nothing with type 7 (TVirtualStreamerInfo::kCharStar, char*) here! + case TVirtualStreamerInfo::kDouble /* 8 */: { b.WriteFastArray((Double_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kDouble32 /* 9 */: { Double_t* xx = (Double_t*) fAddress; for (Int_t ii = 0; ii < n; ++ii) { b << (Float_t) xx[ii]; @@ -1142,15 +1142,15 @@ void TBranchElement::FillLeaves(TBuffer& b) break; } // Note: Type 10 is unused for now. - case TStreamerInfo::kUChar /* 11 */: { b.WriteFastArray((UChar_t*) fAddress, n); break; } - case TStreamerInfo::kUShort /* 12 */: { b.WriteFastArray((UShort_t*) fAddress, n); break; } - case TStreamerInfo::kUInt /* 13 */: { b.WriteFastArray((UInt_t*) fAddress, n); break; } - case TStreamerInfo::kULong /* 14 */: { b.WriteFastArray((ULong_t*) fAddress, n); break; } - // FIXME: This is wrong!!! TStreamerInfo::kBits is a variable length type. - case TStreamerInfo::kBits /* 15 */: { b.WriteFastArray((UInt_t*) fAddress, n); break; } - case TStreamerInfo::kLong64 /* 16 */: { b.WriteFastArray((Long64_t*) fAddress, n); break; } - case TStreamerInfo::kULong64 /* 17 */: { b.WriteFastArray((ULong64_t*) fAddress, n); break; } - case TStreamerInfo::kBool /* 18 */: { b.WriteFastArray((Bool_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kUChar /* 11 */: { b.WriteFastArray((UChar_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kUShort /* 12 */: { b.WriteFastArray((UShort_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kUInt /* 13 */: { b.WriteFastArray((UInt_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kULong /* 14 */: { b.WriteFastArray((ULong_t*) fAddress, n); break; } + // FIXME: This is wrong!!! TVirtualStreamerInfo::kBits is a variable length type. + case TVirtualStreamerInfo::kBits /* 15 */: { b.WriteFastArray((UInt_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kLong64 /* 16 */: { b.WriteFastArray((Long64_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kULong64 /* 17 */: { b.WriteFastArray((ULong64_t*) fAddress, n); break; } + case TVirtualStreamerInfo::kBool /* 18 */: { b.WriteFastArray((Bool_t*) fAddress, n); break; } // Note: Type 19 is unused for now. } } else { @@ -1160,7 +1160,7 @@ void TBranchElement::FillLeaves(TBuffer& b) } else { TClonesArray* clones = (TClonesArray*) fObject; Int_t n = clones->GetEntriesFast(); - TStreamerInfo* si = GetInfo(); + TStreamerInfo* si = (TStreamerInfo*)GetInfo(); if (!si) { Error("FillLeaves", "Cannot get streamer info for branch '%s'", GetName()); return; @@ -1180,7 +1180,7 @@ void TBranchElement::FillLeaves(TBuffer& b) TVirtualCollectionProxy::TPushPop helper(GetCollectionProxy(), fObject); n = GetCollectionProxy()->Size(); // Note: We cannot pop the proxy here because we need it for the i/o. - TStreamerInfo* si = GetInfo(); + TStreamerInfo* si = (TStreamerInfo*)GetInfo(); if (!si) { Error("FillLeaves", "Cannot get streamer info for branch '%s'", GetName()); return; @@ -1224,29 +1224,29 @@ void TBranchElement::InitInfo() if (cl == TClonesArray::Class()) { fClassVersion = TClonesArray::Class()->GetClassVersion(); } - Bool_t optim = TStreamerInfo::CanOptimize(); - TStreamerInfo::Optimize(kFALSE); - fInfo = cl->GetStreamerInfo(fClassVersion); - TStreamerInfo::Optimize(optim); + Bool_t optim = TVirtualStreamerInfo::CanOptimize(); + TVirtualStreamerInfo::Optimize(kFALSE); + fInfo = (TStreamerInfo*)cl->GetStreamerInfo(fClassVersion); + TVirtualStreamerInfo::Optimize(optim); // FIXME: Check that the found streamer info checksum matches our branch class checksum here. // Check to see if the class code was unloaded/reloaded // since we were created. - if (fCheckSum && (cl->IsForeign() || (!cl->IsLoaded() && (fClassVersion == 1) && cl->GetStreamerInfos()->At(1) && (fCheckSum != ((TStreamerInfo*) cl->GetStreamerInfos()->At(1))->GetCheckSum())))) { + if (fCheckSum && (cl->IsForeign() || (!cl->IsLoaded() && (fClassVersion == 1) && cl->GetStreamerInfos()->At(1) && (fCheckSum != ((TVirtualStreamerInfo*) cl->GetStreamerInfos()->At(1))->GetCheckSum())))) { // Try to compensate for a class that got unloaded on us. // Search through the streamer infos by checksum // and take the first match. Int_t ninfos = cl->GetStreamerInfos()->GetEntriesFast(); for (Int_t i = 1; i < ninfos; ++i) { - TStreamerInfo* info = (TStreamerInfo*) cl->GetStreamerInfos()->At(i); + TVirtualStreamerInfo* info = (TVirtualStreamerInfo*) cl->GetStreamerInfos()->At(i); if (!info) { continue; } if (info->GetCheckSum() == fCheckSum) { fClassVersion = i; - Bool_t optim = TStreamerInfo::CanOptimize(); - TStreamerInfo::Optimize(kFALSE); - fInfo = cl->GetStreamerInfo(fClassVersion); - TStreamerInfo::Optimize(optim); + Bool_t optim = TVirtualStreamerInfo::CanOptimize(); + TVirtualStreamerInfo::Optimize(kFALSE); + fInfo = (TStreamerInfo*)cl->GetStreamerInfo(fClassVersion); + TVirtualStreamerInfo::Optimize(optim); break; } } @@ -1264,10 +1264,10 @@ void TBranchElement::InitInfo() // Streamer info has not yet been compiled. // // Optimizing does not work with splitting. - Bool_t optim = TStreamerInfo::CanOptimize(); - TStreamerInfo::Optimize(kFALSE); + Bool_t optim = TVirtualStreamerInfo::CanOptimize(); + TVirtualStreamerInfo::Optimize(kFALSE); fInfo->Compile(); - TStreamerInfo::Optimize(optim); + TVirtualStreamerInfo::Optimize(optim); } if (!fInit) { // We were read in from a file, figure out what our fID should be, @@ -1322,7 +1322,7 @@ TVirtualCollectionProxy* TBranchElement::GetCollectionProxy() } } else { // We are not a top-level branch. - TStreamerInfo* si = thiscast->GetInfo(); + TVirtualStreamerInfo* si = thiscast->GetInfo(); TStreamerElement* se = (TStreamerElement*) si->GetElems()[fID]; className = se->GetTypeName(); } @@ -1350,7 +1350,7 @@ TClass* TBranchElement::GetCurrentClass() return cl; } - TStreamerInfo* brInfo = GetInfo(); + TVirtualStreamerInfo* brInfo = GetInfo(); if (!brInfo) { cl = TClass::GetClass(GetClassName()); R__ASSERT(cl && cl->GetCollectionProxy()); @@ -1372,7 +1372,7 @@ TClass* TBranchElement::GetCurrentClass() if (!dm) { // Either the class is not loaded or the data member is gone if (! motherCl->IsLoaded()) { - TStreamerInfo* newInfo = motherCl->GetStreamerInfo(); + TVirtualStreamerInfo* newInfo = motherCl->GetStreamerInfo(); if (newInfo != brInfo) { TStreamerElement* newElems = (TStreamerElement*) newInfo->GetElements()->FindObject(currentStreamerElement->GetName()); newType = newElems->GetClassPointer()->GetName(); @@ -1735,7 +1735,7 @@ void TBranchElement::InitializeOffsets() // member of a base class or a split class, in which case our // streamer info will be for our containing sub-object, while // we are actually a different type. - TStreamerInfo* si = GetInfo(); + TVirtualStreamerInfo* si = GetInfo(); // Note: We tested to make sure the streamer info was available previously. ULong_t* elems = si->GetElems(); if (!elems) { @@ -1768,7 +1768,7 @@ void TBranchElement::InitializeOffsets() continue; } TBranchElement* subBranch = (TBranchElement*) aSubBranch; - TStreamerInfo* sinfo = subBranch->GetInfo(); + TVirtualStreamerInfo* sinfo = subBranch->GetInfo(); if (!sinfo) { Warning("InitializeOffsets", "No streamer info for branch: %s subbranch: %s", GetName(), subBranch->GetName()); fInitOffsets = kTRUE; @@ -2204,12 +2204,12 @@ void TBranchElement::PrintValue(Int_t lenmax) const } else if (fType == 31 || fType == 41) { // TClonesArray or STL container sub-branch. Int_t n = TMath::Min(10, fNdata); - Int_t atype = fStreamerType + TStreamerInfo::kOffsetL; - if (fStreamerType == TStreamerInfo::kChar) { - // TStreamerInfo::kOffsetL + TStreamerInfo::kChar is + Int_t atype = fStreamerType + TVirtualStreamerInfo::kOffsetL; + if (fStreamerType == TVirtualStreamerInfo::kChar) { + // TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar is // printed as a string and could print weird characters. // So we print an unsigned char instead (not perfect, but better). - atype = TStreamerInfo::kOffsetL + TStreamerInfo::kUChar; + atype = TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUChar; } if (atype > 54) { // FIXME: More logic required here (like in ReadLeaves) @@ -2580,7 +2580,7 @@ void TBranchElement::ReadLeaves(TBuffer& b) return; } GetInfo()->ReadBuffer(b, (char**) &fObject, fID); - if (fStreamerType == TStreamerInfo::kCounter) { + if (fStreamerType == TVirtualStreamerInfo::kCounter) { fNdata = (Int_t) GetValue(0, 0); } } @@ -2619,8 +2619,8 @@ void TBranchElement::ReleaseObject() // -- We are a TClonesArray master branch. TClonesArray::Class()->Destructor(fObject); fObject = 0; - if ((fStreamerType == TStreamerInfo::kObjectp) || - (fStreamerType == TStreamerInfo::kObjectP)) { + if ((fStreamerType == TVirtualStreamerInfo::kObjectp) || + (fStreamerType == TVirtualStreamerInfo::kObjectP)) { // -- We are a pointer to a TClonesArray. // We must zero the pointer in the object. *((char**) fAddress) = 0; @@ -2635,7 +2635,7 @@ void TBranchElement::ReleaseObject() proxy->Destructor(fObject); fObject = 0; } - if (fStreamerType == TStreamerInfo::kSTLp) { + if (fStreamerType == TVirtualStreamerInfo::kSTLp) { // -- We are a pointer to an STL container. // We must zero the pointer in the object. *((char**) fAddress) = 0; @@ -2886,16 +2886,16 @@ void TBranchElement::SetAddress(void* add) // Reset the proxy. fSTLtype = kNone; switch(fStreamerType) { - case TStreamerInfo::kAny: - case TStreamerInfo::kSTL: - fStreamerType = TStreamerInfo::kObject; + case TVirtualStreamerInfo::kAny: + case TVirtualStreamerInfo::kSTL: + fStreamerType = TVirtualStreamerInfo::kObject; break; - case TStreamerInfo::kAnyp: - case TStreamerInfo::kSTLp: - fStreamerType = TStreamerInfo::kObjectp; + case TVirtualStreamerInfo::kAnyp: + case TVirtualStreamerInfo::kSTLp: + fStreamerType = TVirtualStreamerInfo::kObjectp; break; - case TStreamerInfo::kAnyP: - fStreamerType = TStreamerInfo::kObjectP; + case TVirtualStreamerInfo::kAnyP: + fStreamerType = TVirtualStreamerInfo::kObjectP; break; } fClonesName = oldProxy->GetValueClass()->GetName(); @@ -2935,7 +2935,7 @@ void TBranchElement::SetAddress(void* add) // -- We are a TClonesArray master branch. if (fAddress) { // -- We have been given a non-zero address, allocate if necessary. - if (fStreamerType == TStreamerInfo::kObject) { + if (fStreamerType == TVirtualStreamerInfo::kObject) { // -- We are *not* a top-level branch and we are *not* a pointer to a TClonesArray. // Case of an embedded TClonesArray. fObject = fAddress; @@ -2948,8 +2948,8 @@ void TBranchElement::SetAddress(void* add) // -- We are either a top-level branch or we are a subbranch which is a pointer to a TClonesArray. // Streamer type should be -1 (for a top-level branch) or kObject(p|P) here. if ((fStreamerType != -1) && - (fStreamerType != TStreamerInfo::kObjectp) && - (fStreamerType != TStreamerInfo::kObjectP)) { + (fStreamerType != TVirtualStreamerInfo::kObjectp) && + (fStreamerType != TVirtualStreamerInfo::kObjectP)) { Error("SetAddress", "TClonesArray with fStreamerType: %d", fStreamerType); } else if (fStreamerType == -1) { // -- We are a top-level branch. @@ -2973,7 +2973,7 @@ void TBranchElement::SetAddress(void* add) } } else { // -- We have been given a zero address, allocate for top-level only. - if (fStreamerType == TStreamerInfo::kObject) { + if (fStreamerType == TVirtualStreamerInfo::kObject) { // -- We are *not* a top-level branch and we are *not* a pointer to a TClonesArray. // Case of an embedded TClonesArray. Error("SetAddress", "Embedded TClonesArray given a zero address for branch '%s'", GetName()); @@ -2981,8 +2981,8 @@ void TBranchElement::SetAddress(void* add) // -- We are either a top-level branch or we are a subbranch which is a pointer to a TClonesArray. // Streamer type should be -1 (for a top-level branch) or kObject(p|P) here. if ((fStreamerType != -1) && - (fStreamerType != TStreamerInfo::kObjectp) && - (fStreamerType != TStreamerInfo::kObjectP)) { + (fStreamerType != TVirtualStreamerInfo::kObjectp) && + (fStreamerType != TVirtualStreamerInfo::kObjectP)) { Error("SetAddress", "TClonesArray with fStreamerType: %d", fStreamerType); } else if (fStreamerType == -1) { // -- We are a top-level branch. @@ -3003,16 +3003,16 @@ void TBranchElement::SetAddress(void* add) TVirtualCollectionProxy* proxy = GetCollectionProxy(); if (fAddress) { // -- We have been given a non-zero address, allocate if necessary. - if ((fStreamerType == TStreamerInfo::kObject) || - (fStreamerType == TStreamerInfo::kAny) || - (fStreamerType == TStreamerInfo::kSTL)) { + if ((fStreamerType == TVirtualStreamerInfo::kObject) || + (fStreamerType == TVirtualStreamerInfo::kAny) || + (fStreamerType == TVirtualStreamerInfo::kSTL)) { // We are *not* a top-level branch and we are *not* a pointer to an STL container. // Case of an embedded STL container. fObject = fAddress; } else { // We are either a top-level branch or subbranch which is a pointer to an STL container. // Streamer type should be -1 (for a top-level branch) or kSTLp here. - if ((fStreamerType != -1) && (fStreamerType != TStreamerInfo::kSTLp)) { + if ((fStreamerType != -1) && (fStreamerType != TVirtualStreamerInfo::kSTLp)) { Error("SetAddress", "STL container with fStreamerType: %d", fStreamerType); } else if (fStreamerType == -1) { // -- We are a top-level branch. @@ -3050,16 +3050,16 @@ void TBranchElement::SetAddress(void* add) } } else { // -- We have been given a zero address, allocate for top-level only. - if ((fStreamerType == TStreamerInfo::kObject) || - (fStreamerType == TStreamerInfo::kAny) || - (fStreamerType == TStreamerInfo::kSTL)) { + if ((fStreamerType == TVirtualStreamerInfo::kObject) || + (fStreamerType == TVirtualStreamerInfo::kAny) || + (fStreamerType == TVirtualStreamerInfo::kSTL)) { // We are *not* a top-level branch and we are *not* a pointer to an STL container. // Case of an embedded STL container. Error("SetAddress", "Embedded STL container given a zero address for branch '%s'", GetName()); } else { // We are either a top-level branch or sub-branch which is a pointer to an STL container. // Streamer type should be -1 (for a top-level branch) or kSTLp here. - if ((fStreamerType != -1) && (fStreamerType != TStreamerInfo::kSTLp)) { + if ((fStreamerType != -1) && (fStreamerType != TVirtualStreamerInfo::kSTLp)) { Error("SetAddress", "STL container with fStreamerType: %d", fStreamerType); } else if (fStreamerType == -1) { // -- We are a top-level branch, allocate. @@ -3258,7 +3258,7 @@ void TBranchElement::Streamer(TBuffer& R__b) // something just because we got written to disk. TBranchElement::Class()->WriteBuffer(R__b, this); - // make sure that all TStreamerInfo objects referenced by + // make sure that all TVirtualStreamerInfo objects referenced by // this class are written to the file if (GetInfo()) { GetInfo()->ForceWriteInfo((TFile *)R__b.GetParent(), kTRUE); @@ -3342,12 +3342,12 @@ Int_t TBranchElement::Unroll(const char* name, TClass* clParent, TClass* cl, cha // independently in the tree. // - Bool_t optim = TStreamerInfo::CanOptimize(); + Bool_t optim = TVirtualStreamerInfo::CanOptimize(); if (splitlevel > 0) { - TStreamerInfo::Optimize(kFALSE); + TVirtualStreamerInfo::Optimize(kFALSE); } TStreamerInfo* sinfo = fTree->BuildStreamerInfo(cl); - TStreamerInfo::Optimize(optim); + TVirtualStreamerInfo::Optimize(optim); // // Do nothing if we couldn't build the streamer info for cl. diff --git a/tree/src/TTree.cxx b/tree/src/TTree.cxx index 88ae86e054beb015e0ab9c28e83483f4494d1d68..45d246bf0b42e97a921f7413c5016eb23ac3a56a 100644 --- a/tree/src/TTree.cxx +++ b/tree/src/TTree.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TTree.cxx,v 1.317 2007/01/25 22:53:05 pcanal Exp $ +// @(#)root/tree:$Name: $:$Id: TTree.cxx,v 1.318 2007/01/30 11:24:32 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -1888,7 +1888,7 @@ TStreamerInfo* TTree::BuildStreamerInfo(TClass* cl, void* pointer /* = 0 */) return 0; } cl->BuildRealData(pointer); - TStreamerInfo* sinfo = cl->GetStreamerInfo(cl->GetClassVersion()); + TStreamerInfo* sinfo = (TStreamerInfo*)cl->GetStreamerInfo(cl->GetClassVersion()); if (fDirectory) { sinfo->ForceWriteInfo(fDirectory->GetFile()); } diff --git a/tree/src/TTreeCloner.cxx b/tree/src/TTreeCloner.cxx index 10f6a0ccaeca88626ae56222f07a1b954b7d6c66..1d9c782616e6dca7b04dd01e7a7482b15ab704a1 100644 --- a/tree/src/TTreeCloner.cxx +++ b/tree/src/TTreeCloner.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TTreeCloner.cxx,v 1.14 2007/01/25 11:48:59 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TTreeCloner.cxx,v 1.15 2007/01/30 11:24:32 brun Exp $ // Author: Philippe Canal 07/11/2005 /************************************************************************* @@ -305,11 +305,11 @@ void TTreeCloner::CopyStreamerInfos() TClass *cl = TClass::GetClass(oldInfo->GetName()); // Insure that the TStreamerInfo is loaded - curInfo = cl->GetStreamerInfo(oldInfo->GetClassVersion()); + curInfo = (TStreamerInfo*)cl->GetStreamerInfo(oldInfo->GetClassVersion()); if (oldInfo->GetClassVersion()==1) { // We may have a Foreign class let's look using the // checksum: - curInfo = cl->FindStreamerInfo(oldInfo->GetCheckSum()); + curInfo = (TStreamerInfo*)cl->FindStreamerInfo(oldInfo->GetCheckSum()); } curInfo->TagFile(toFile); } diff --git a/treeplayer/inc/TBranchProxyClassDescriptor.h b/treeplayer/inc/TBranchProxyClassDescriptor.h index f7cac72c3a98714cd5d0c228cd732775b5439e7a..37db283fc1b4e1ac1c2c1c9e9ac0407f2859f120 100644 --- a/treeplayer/inc/TBranchProxyClassDescriptor.h +++ b/treeplayer/inc/TBranchProxyClassDescriptor.h @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TBranchProxyClassDescriptor.h,v 1.6 2005/11/11 23:21:43 pcanal Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TBranchProxyClassDescriptor.h,v 1.7 2006/05/23 08:37:42 brun Exp $ // Author: Philippe Canal 06/06/2004 /************************************************************************* @@ -20,7 +20,7 @@ #endif class TTree; -class TStreamerInfo; +class TVirtualStreamerInfo; namespace ROOT { @@ -41,7 +41,7 @@ namespace ROOT { TString fRawSymbol; TString fBranchName; TString fSubBranchPrefix; - TStreamerInfo *fInfo; // TStreamerInfo describing this class + TVirtualStreamerInfo *fInfo; // TVirtualStreamerInfo describing this class UInt_t fMaxDatamemberType; @@ -49,11 +49,11 @@ namespace ROOT { public: - TBranchProxyClassDescriptor(const char *type, TStreamerInfo *info, const char *branchname, + TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname, UInt_t isclones, UInt_t splitlevel); TBranchProxyClassDescriptor(const char *branchname); - TBranchProxyClassDescriptor(const char *type, TStreamerInfo *info, const char *branchname, + TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname, const char *branchPrefix, UInt_t isclones, UInt_t splitlevel); TBranchProxyClassDescriptor(const TBranchProxyClassDescriptor &b) :TNamed(b){;} @@ -64,7 +64,7 @@ namespace ROOT { const char* GetRawSymbol() const; - TStreamerInfo *GetInfo() const { return fInfo; } + TVirtualStreamerInfo *GetInfo() const { return fInfo; } UInt_t GetSplitLevel() const; diff --git a/treeplayer/src/TBranchProxyClassDescriptor.cxx b/treeplayer/src/TBranchProxyClassDescriptor.cxx index 6baca664f038645049cfe23593c16d50427ac1b6..3936401838710698d1aadb340ce8ccb769c81f30 100644 --- a/treeplayer/src/TBranchProxyClassDescriptor.cxx +++ b/treeplayer/src/TBranchProxyClassDescriptor.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TBranchProxyClassDescriptor.cxx,v 1.9 2006/04/19 08:22:26 rdm Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TBranchProxyClassDescriptor.cxx,v 1.10 2007/01/30 11:24:32 brun Exp $ // Author: Philippe Canal 06/06/2004 /************************************************************************* @@ -14,7 +14,7 @@ #include "TClass.h" #include "TError.h" -#include "TStreamerInfo.h" +#include "TVirtualStreamerInfo.h" namespace ROOT { @@ -41,7 +41,7 @@ namespace ROOT { } TBranchProxyClassDescriptor::TBranchProxyClassDescriptor(const char *type, - TStreamerInfo *info, + TVirtualStreamerInfo *info, const char *branchname, UInt_t isclones, UInt_t splitlevel) : @@ -77,7 +77,7 @@ namespace ROOT { if (fSubBranchPrefix.Length() && fSubBranchPrefix[fSubBranchPrefix.Length()-1]=='.') fSubBranchPrefix.Remove(fSubBranchPrefix.Length()-1); } - TBranchProxyClassDescriptor::TBranchProxyClassDescriptor(const char *type, TStreamerInfo *info, + TBranchProxyClassDescriptor::TBranchProxyClassDescriptor(const char *type, TVirtualStreamerInfo *info, const char *branchname, const char *branchPrefix, UInt_t isclones, UInt_t splitlevel) : diff --git a/treeplayer/src/TFormLeafInfo.cxx b/treeplayer/src/TFormLeafInfo.cxx index 386b88314f133c23e134d380c83cfe551d856ea6..8b6f85ceceb17c952bb5b6e0fc1824a3e9c9f093 100644 --- a/treeplayer/src/TFormLeafInfo.cxx +++ b/treeplayer/src/TFormLeafInfo.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TFormLeafInfo.cxx,v 1.33 2006/09/06 07:53:36 pcanal Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TFormLeafInfo.cxx,v 1.34 2007/01/30 11:24:32 brun Exp $ // Author: Philippe Canal 01/06/2004 /************************************************************************* @@ -470,7 +470,7 @@ Bool_t TFormLeafInfo::Update() // A delimiter happened let's see if what we have seen // so far does point to a data member. *current = '\0'; - element = cl->GetStreamerInfo()->GetStreamerElement(work,offset); + element = ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(work,offset); if (element) { Int_t type = element->GetNewType(); if (type<60) { @@ -1016,7 +1016,7 @@ Int_t TFormLeafInfoClones::GetCounterValue(TLeaf* leaf) if (!fCounter) { TClass *clonesClass = TClonesArray::Class(); Int_t c_offset; - TStreamerElement *counter = clonesClass->GetStreamerInfo()->GetStreamerElement("fLast",c_offset); + TStreamerElement *counter = ((TStreamerInfo*)clonesClass->GetStreamerInfo())->GetStreamerElement("fLast",c_offset); fCounter = new TFormLeafInfo(clonesClass,c_offset,counter); } return (Int_t)fCounter->ReadValue((char*)GetLocalValuePointer(leaf)) + 1; @@ -1030,7 +1030,7 @@ Int_t TFormLeafInfoClones::ReadCounterValue(char* where) if (!fCounter) { TClass *clonesClass = TClonesArray::Class(); Int_t c_offset; - TStreamerElement *counter = clonesClass->GetStreamerInfo()->GetStreamerElement("fLast",c_offset); + TStreamerElement *counter = ((TStreamerInfo*)clonesClass->GetStreamerInfo())->GetStreamerElement("fLast",c_offset); fCounter = new TFormLeafInfo(clonesClass,c_offset,counter); } return (Int_t)fCounter->ReadValue(where) + 1; @@ -2055,7 +2055,7 @@ TFormLeafInfoMultiVarDim::TFormLeafInfoMultiVarDim( TClass* classptr, TStreamerBasicPointer * elem = (TStreamerBasicPointer*)element; Int_t counterOffset; - TStreamerElement* counter = classptr->GetStreamerInfo()->GetStreamerElement(elem->GetCountName(),counterOffset); + TStreamerElement* counter = ((TStreamerInfo*)classptr->GetStreamerInfo())->GetStreamerElement(elem->GetCountName(),counterOffset); if (!parent) return; fCounter2 = parent->DeepCopy(); TFormLeafInfo ** next = &(fCounter2->fNext); diff --git a/treeplayer/src/TTreeFormula.cxx b/treeplayer/src/TTreeFormula.cxx index 4a867a8c3bd52b32688a456b7ed4af5e68c89b01..bd0d27e1b9a690f561c863f712686decb8c9303d 100644 --- a/treeplayer/src/TTreeFormula.cxx +++ b/treeplayer/src/TTreeFormula.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TTreeFormula.cxx,v 1.210 2007/02/02 08:08:54 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TTreeFormula.cxx,v 1.211 2007/02/03 18:33:15 brun Exp $ // Author: Rene Brun 19/01/96 /************************************************************************* @@ -452,7 +452,7 @@ Int_t TTreeFormula::RegisterDimensions(Int_t code, TFormLeafInfo *leafinfo, TStreamerBasicPointer *array = (TStreamerBasicPointer*)elem; TClass *cl = leafinfo->fClass; Int_t offset; - TStreamerElement* counter = cl->GetStreamerInfo()->GetStreamerElement(array->GetCountName(),offset); + TStreamerElement* counter = ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(array->GetCountName(),offset); if (maininfo==0 || maininfo==leafinfo || 1) { leafinfo->fCounter = new TFormLeafInfo(cl,offset,counter); } else { @@ -470,7 +470,7 @@ Int_t TTreeFormula::RegisterDimensions(Int_t code, TFormLeafInfo *leafinfo, TClass * clonesClass = TClonesArray::Class(); Int_t c_offset; - TStreamerElement *counter = clonesClass->GetStreamerInfo()->GetStreamerElement("fLast",c_offset); + TStreamerElement *counter = ((TStreamerInfo*)clonesClass->GetStreamerInfo())->GetStreamerElement("fLast",c_offset); leafinfo->fCounter = new TFormLeafInfo(clonesClass,c_offset,counter); } else if (!useCollectionObject && elem->GetClassPointer() && elem->GetClassPointer()->GetCollectionProxy() ) { @@ -1483,7 +1483,7 @@ Int_t TTreeFormula::ParseWithLeaf(TLeaf* leaf, const char* subExpression, Bool_t if (!cl) { Warning("DefinedVariable","Missing class for %s!",name.Data()); } else { - element = cl->GetStreamerInfo()->GetStreamerElement(work,offset); + element = ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(work,offset); } if (!element && !prevUseCollectionObject) { @@ -1494,7 +1494,7 @@ Int_t TTreeFormula::ParseWithLeaf(TLeaf* leaf, const char* subExpression, Bool_t while ((curelem = (TStreamerElement*)next())) { if (curelem->GetClassPointer() == TClonesArray::Class()) { Int_t clones_offset; - cl->GetStreamerInfo()->GetStreamerElement(curelem->GetName(),clones_offset); + ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(curelem->GetName(),clones_offset); TFormLeafInfo* clonesinfo = new TFormLeafInfo(cl, clones_offset, curelem); TClonesArray * clones; @@ -1509,7 +1509,7 @@ Int_t TTreeFormula::ParseWithLeaf(TLeaf* leaf, const char* subExpression, Bool_t } TClass *sub_cl = clones->GetClass(); - if (sub_cl) element = sub_cl->GetStreamerInfo()->GetStreamerElement(work,offset); + if (sub_cl) element = ((TStreamerInfo*)sub_cl->GetStreamerInfo())->GetStreamerElement(work,offset); delete clonesinfo; if (element) { @@ -1528,12 +1528,12 @@ Int_t TTreeFormula::ParseWithLeaf(TLeaf* leaf, const char* subExpression, Bool_t } else if (curelem->GetClassPointer() && curelem->GetClassPointer()->GetCollectionProxy()) { Int_t coll_offset; - cl->GetStreamerInfo()->GetStreamerElement(curelem->GetName(),coll_offset); + ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(curelem->GetName(),coll_offset); TClass *sub_cl = curelem->GetClassPointer()->GetCollectionProxy()->GetValueClass(); if (sub_cl) { - element = sub_cl->GetStreamerInfo()->GetStreamerElement(work,offset); + element = ((TStreamerInfo*)sub_cl->GetStreamerInfo())->GetStreamerElement(work,offset); } if (element) { if (numberOfVarDim>1) { @@ -1779,7 +1779,7 @@ Int_t TTreeFormula::ParseWithLeaf(TLeaf* leaf, const char* subExpression, Bool_t Error("DefinedVariable","Failed to access class type of reference target (%s)",element->GetName()); return -1; } - element = cl->GetStreamerInfo()->GetStreamerElement(work,offset); + element = ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(work,offset); } else { Error("DefinedVariable","Failed to access class type of reference target (%s)",element->GetName()); @@ -2751,7 +2751,7 @@ TLeaf* TTreeFormula::GetLeafWithDatamember(const char* topchoice, const char* ne // Now that we have the class, let's check if the topchoice is of its datamember // or if the nextchoice is a datamember of one of its datamember. Int_t offset; - TStreamerInfo* info = cl->GetStreamerInfo(); + TStreamerInfo* info = (TStreamerInfo*)cl->GetStreamerInfo(); TStreamerElement* element = info?info->GetStreamerElement(topchoice,offset):0; if (!element) { TIter next( cl->GetStreamerInfo()->GetElements() ); @@ -2779,7 +2779,7 @@ TLeaf* TTreeFormula::GetLeafWithDatamember(const char* topchoice, const char* ne } Int_t clones_offset; - cl->GetStreamerInfo()->GetStreamerElement(curelem->GetName(),clones_offset); + ((TStreamerInfo*)cl->GetStreamerInfo())->GetStreamerElement(curelem->GetName(),clones_offset); TFormLeafInfo* sub_clonesinfo = new TFormLeafInfo(cl, clones_offset, curelem); if (leafinfo) if (leafinfo->fNext) leafinfo->fNext->fNext = sub_clonesinfo; @@ -2799,7 +2799,7 @@ TLeaf* TTreeFormula::GetLeafWithDatamember(const char* topchoice, const char* ne TClass *sub_cl = clones->GetClass(); // Now that we finally have the inside class, let's query it. - element = sub_cl->GetStreamerInfo()->GetStreamerElement(nextchoice,offset); + element = ((TStreamerInfo*)sub_cl->GetStreamerInfo())->GetStreamerElement(nextchoice,offset); if (element) break; } // if clones array else if (curelem->GetClassPointer() && curelem->GetClassPointer()->GetCollectionProxy()) { @@ -2810,7 +2810,7 @@ TLeaf* TTreeFormula::GetLeafWithDatamember(const char* topchoice, const char* ne sub_cl = sub_cl->GetCollectionProxy()->GetValueClass(); // Now that we finally have the inside class, let's query it. - if (sub_cl) element = sub_cl->GetStreamerInfo()->GetStreamerElement(nextchoice,offset); + if (sub_cl) element = ((TStreamerInfo*)sub_cl->GetStreamerInfo())->GetStreamerElement(nextchoice,offset); if (element) break; } diff --git a/treeplayer/src/TTreeProxyGenerator.cxx b/treeplayer/src/TTreeProxyGenerator.cxx index ee81dae6e3cfca6f9cd9c651523de27f3399a5bd..4377d1a71fa716335828b76943651b2e395c1251 100644 --- a/treeplayer/src/TTreeProxyGenerator.cxx +++ b/treeplayer/src/TTreeProxyGenerator.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TTreeProxyGenerator.cxx,v 1.26 2007/01/20 19:29:35 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TTreeProxyGenerator.cxx,v 1.27 2007/01/30 11:24:32 brun Exp $ // Author: Philippe Canal 06/06/2004 /************************************************************************* @@ -68,7 +68,7 @@ class TStreamerElement; #include "TFriendElement.h" #include "TLeaf.h" #include "TTree.h" -#include "TStreamerInfo.h" +#include "TVirtualStreamerInfo.h" #include "TStreamerElement.h" #include "TSystem.h" #include "TLeafObject.h" @@ -441,7 +441,7 @@ namespace ROOT { Int_t bid = branch->GetID(); TStreamerElement *element = 0; - TStreamerInfo *info = branch->GetInfo(); + TVirtualStreamerInfo *info = branch->GetInfo(); if (bid==-2) { Error("AnalyzeBranch","Support for branch ID: %d not yet implement.", @@ -462,77 +462,77 @@ namespace ROOT { Bool_t ispointer = false; switch(element->GetType()) { - case TStreamerInfo::kBool: { proxyTypeName = "T" + middle + "BoolProxy"; break; } - case TStreamerInfo::kChar: { proxyTypeName = "T" + middle + "CharProxy"; break; } - case TStreamerInfo::kShort: { proxyTypeName = "T" + middle + "ShortProxy"; break; } - case TStreamerInfo::kInt: { proxyTypeName = "T" + middle + "IntProxy"; break; } - case TStreamerInfo::kLong: { proxyTypeName = "T" + middle + "LongProxy"; break; } - case TStreamerInfo::kLong64: { proxyTypeName = "T" + middle + "Long64Proxy"; break; } - case TStreamerInfo::kFloat: { proxyTypeName = "T" + middle + "FloatProxy"; break; } - case TStreamerInfo::kDouble: { proxyTypeName = "T" + middle + "DoubleProxy"; break; } - case TStreamerInfo::kDouble32:{ proxyTypeName = "T" + middle + "Double32Proxy"; break; } - case TStreamerInfo::kUChar: { proxyTypeName = "T" + middle + "UCharProxy"; break; } - case TStreamerInfo::kUShort: { proxyTypeName = "T" + middle + "UShortProxy"; break; } - case TStreamerInfo::kUInt: { proxyTypeName = "T" + middle + "UIntProxy"; break; } - case TStreamerInfo::kULong: { proxyTypeName = "T" + middle + "ULongProxy"; break; } - case TStreamerInfo::kULong64: { proxyTypeName = "T" + middle + "ULong64Proxy"; break; } - case TStreamerInfo::kBits: { proxyTypeName = "T" + middle + "UIntProxy"; break; } - - case TStreamerInfo::kCharStar: { proxyTypeName = GetArrayType(element,"Char",container); break; } + case TVirtualStreamerInfo::kBool: { proxyTypeName = "T" + middle + "BoolProxy"; break; } + case TVirtualStreamerInfo::kChar: { proxyTypeName = "T" + middle + "CharProxy"; break; } + case TVirtualStreamerInfo::kShort: { proxyTypeName = "T" + middle + "ShortProxy"; break; } + case TVirtualStreamerInfo::kInt: { proxyTypeName = "T" + middle + "IntProxy"; break; } + case TVirtualStreamerInfo::kLong: { proxyTypeName = "T" + middle + "LongProxy"; break; } + case TVirtualStreamerInfo::kLong64: { proxyTypeName = "T" + middle + "Long64Proxy"; break; } + case TVirtualStreamerInfo::kFloat: { proxyTypeName = "T" + middle + "FloatProxy"; break; } + case TVirtualStreamerInfo::kDouble: { proxyTypeName = "T" + middle + "DoubleProxy"; break; } + case TVirtualStreamerInfo::kDouble32:{ proxyTypeName = "T" + middle + "Double32Proxy"; break; } + case TVirtualStreamerInfo::kUChar: { proxyTypeName = "T" + middle + "UCharProxy"; break; } + case TVirtualStreamerInfo::kUShort: { proxyTypeName = "T" + middle + "UShortProxy"; break; } + case TVirtualStreamerInfo::kUInt: { proxyTypeName = "T" + middle + "UIntProxy"; break; } + case TVirtualStreamerInfo::kULong: { proxyTypeName = "T" + middle + "ULongProxy"; break; } + case TVirtualStreamerInfo::kULong64: { proxyTypeName = "T" + middle + "ULong64Proxy"; break; } + case TVirtualStreamerInfo::kBits: { proxyTypeName = "T" + middle + "UIntProxy"; break; } + + case TVirtualStreamerInfo::kCharStar: { proxyTypeName = GetArrayType(element,"Char",container); break; } // array of basic types array[8] - case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: { proxyTypeName = GetArrayType(element,"Bool",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: { proxyTypeName = GetArrayType(element,"Char",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: { proxyTypeName = GetArrayType(element,"Short",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: { proxyTypeName = GetArrayType(element,"Int",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong: { proxyTypeName = GetArrayType(element,"Long",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong64: { proxyTypeName = GetArrayType(element,"Long64",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kFloat: { proxyTypeName = GetArrayType(element,"Float",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble: { proxyTypeName = GetArrayType(element,"Double",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble32:{ proxyTypeName = GetArrayType(element,"Double32",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kUChar: { proxyTypeName = GetArrayType(element,"UChar",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kUShort: { proxyTypeName = GetArrayType(element,"UShort",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kUInt: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong: { proxyTypeName = GetArrayType(element,"ULong",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong64: { proxyTypeName = GetArrayType(element,"ULong64",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kBits: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBool: { proxyTypeName = GetArrayType(element,"Bool",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar: { proxyTypeName = GetArrayType(element,"Char",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kShort: { proxyTypeName = GetArrayType(element,"Short",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kInt: { proxyTypeName = GetArrayType(element,"Int",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong: { proxyTypeName = GetArrayType(element,"Long",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong64: { proxyTypeName = GetArrayType(element,"Long64",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kFloat: { proxyTypeName = GetArrayType(element,"Float",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble: { proxyTypeName = GetArrayType(element,"Double",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble32:{ proxyTypeName = GetArrayType(element,"Double32",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUChar: { proxyTypeName = GetArrayType(element,"UChar",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUShort: { proxyTypeName = GetArrayType(element,"UShort",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUInt: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong: { proxyTypeName = GetArrayType(element,"ULong",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong64: { proxyTypeName = GetArrayType(element,"ULong64",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBits: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } // pointer to an array of basic types array[n] - case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: { proxyTypeName = GetArrayType(element,"Bool",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: { proxyTypeName = GetArrayType(element,"Char",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: { proxyTypeName = GetArrayType(element,"Short",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: { proxyTypeName = GetArrayType(element,"Int",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong: { proxyTypeName = GetArrayType(element,"Long",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong64: { proxyTypeName = GetArrayType(element,"Long64",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kFloat: { proxyTypeName = GetArrayType(element,"Float",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble: { proxyTypeName = GetArrayType(element,"Double",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble32:{ proxyTypeName = GetArrayType(element,"Double32",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kUChar: { proxyTypeName = GetArrayType(element,"UChar",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kUShort: { proxyTypeName = GetArrayType(element,"UShort",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kUInt: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong: { proxyTypeName = GetArrayType(element,"ULong",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong64: { proxyTypeName = GetArrayType(element,"ULong64",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kBits: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBool: { proxyTypeName = GetArrayType(element,"Bool",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kChar: { proxyTypeName = GetArrayType(element,"Char",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kShort: { proxyTypeName = GetArrayType(element,"Short",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kInt: { proxyTypeName = GetArrayType(element,"Int",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong: { proxyTypeName = GetArrayType(element,"Long",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong64: { proxyTypeName = GetArrayType(element,"Long64",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kFloat: { proxyTypeName = GetArrayType(element,"Float",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble: { proxyTypeName = GetArrayType(element,"Double",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble32:{ proxyTypeName = GetArrayType(element,"Double32",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUChar: { proxyTypeName = GetArrayType(element,"UChar",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUShort: { proxyTypeName = GetArrayType(element,"UShort",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUInt: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong: { proxyTypeName = GetArrayType(element,"ULong",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong64: { proxyTypeName = GetArrayType(element,"ULong64",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBits: { proxyTypeName = GetArrayType(element,"UInt",container ); break; } // array counter //[n] - case TStreamerInfo::kCounter: { proxyTypeName = "T" + middle + "IntProxy"; break; } + case TVirtualStreamerInfo::kCounter: { proxyTypeName = "T" + middle + "IntProxy"; break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kObjectp: - case TStreamerInfo::kOffsetL + TStreamerInfo::kObjectP: - case TStreamerInfo::kObjectp: - case TStreamerInfo::kObjectP: - case TStreamerInfo::kAnyp: - case TStreamerInfo::kAnyP: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kObjectp: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kObjectP: + case TVirtualStreamerInfo::kObjectp: + case TVirtualStreamerInfo::kObjectP: + case TVirtualStreamerInfo::kAnyp: + case TVirtualStreamerInfo::kAnyP: // set as pointers and fall through to the next switches ispointer = true; - case TStreamerInfo::kOffsetL + TStreamerInfo::kObject: - case TStreamerInfo::kObject: - case TStreamerInfo::kTString: - case TStreamerInfo::kTNamed: - case TStreamerInfo::kTObject: - case TStreamerInfo::kAny: - case TStreamerInfo::kBase: { + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kObject: + case TVirtualStreamerInfo::kObject: + case TVirtualStreamerInfo::kTString: + case TVirtualStreamerInfo::kTNamed: + case TVirtualStreamerInfo::kTObject: + case TVirtualStreamerInfo::kAny: + case TVirtualStreamerInfo::kBase: { TClass *cl = element->GetClassPointer(); if (cl) { proxyTypeName = Form("T%sObjProxy<%s >", middle.Data(), cl->GetName()); @@ -604,7 +604,7 @@ namespace ROOT { TClass *cl = TClass::GetClass(cname); if (cl) { - TStreamerInfo *info = branch->GetInfo(); + TVirtualStreamerInfo *info = branch->GetInfo(); if (strcmp(cl->GetName(),info->GetName())!=0) { info = cl->GetStreamerInfo(); // might be the wrong version } @@ -632,7 +632,7 @@ namespace ROOT { TClass *cl = TClass::GetClass(cname); if (cl) { - TStreamerInfo *info = branch->GetInfo(); + TVirtualStreamerInfo *info = branch->GetInfo(); if (strcmp(cl->GetName(),info->GetName())!=0) { info = cl->GetStreamerInfo(); // might be the wrong version } @@ -641,7 +641,7 @@ namespace ROOT { isclones, 0 /* unsplit object */); } if (cldesc) { - TStreamerInfo *info = cl->GetStreamerInfo(); + TVirtualStreamerInfo *info = cl->GetStreamerInfo(); TStreamerElement *elem = 0; TIter next(info->GetElements()); @@ -694,7 +694,7 @@ namespace ROOT { dataMemberName.Remove(0,strlen(mom->GetName())+1); } else { TBranchElement *current = mom; - TStreamerInfo *momInfo = current->GetInfo(); + TVirtualStreamerInfo *momInfo = current->GetInfo(); Int_t bid = current->GetID(); TStreamerElement *momElement = bid>=0 ? (TStreamerElement *)momInfo->GetElements()->At(bid) : 0; while( momElement && momElement->IsBase() ) { @@ -790,9 +790,9 @@ namespace ROOT { TStreamerElement* branchStreamerElem = 0; - TStreamerInfo *momInfo = topdesc ? topdesc->GetInfo() : ((TBranchElement*)branch->GetMother())->GetInfo(); + TVirtualStreamerInfo *momInfo = topdesc ? topdesc->GetInfo() : ((TBranchElement*)branch->GetMother())->GetInfo(); if (cname != momInfo->GetName()) { - // We do not have the correct TStreamerInfo, this is + // We do not have the correct TVirtualStreamerInfo, this is // because there is no proper 'branch' holding this sub-object // they are all stored in the branch for the owner of the object @@ -946,7 +946,7 @@ namespace ROOT { subbranch = (TBranch*)next(); if (subbranch) { - // Find the TStreamerInfo + // Find the TVirtualStreamerInfo TString subname = subbranch->GetName(); if ( brprefix.Length() != 0 ) { Debug(6,"Base class check %s %s\n",subname.Data(),brprefix.Data()); @@ -1234,7 +1234,7 @@ namespace ROOT { } if (NeedToEmulate(cl,0) || branchname[strlen(branchname)-1] == '.' || branch->GetSplitLevel()) { TBranchElement *be = dynamic_cast<TBranchElement*>(branch); - TStreamerInfo *info = (be && !isclones) ? be->GetInfo() : cl->GetStreamerInfo(); // the 2nd hand need to be fixed + TVirtualStreamerInfo *info = (be && !isclones) ? be->GetInfo() : cl->GetStreamerInfo(); // the 2nd hand need to be fixed desc = new TBranchProxyClassDescriptor(cl->GetName(), info, branchname, isclones, branch->GetSplitLevel()); } else { @@ -1248,7 +1248,7 @@ namespace ROOT { // We have a non-splitted object! if (desc) { - TStreamerInfo *info = cl->GetStreamerInfo(); + TVirtualStreamerInfo *info = cl->GetStreamerInfo(); TStreamerElement *elem = 0; TIter next(info->GetElements()); @@ -1354,78 +1354,78 @@ namespace ROOT { Bool_t ispointer = false; switch(element->GetType()) { - case TStreamerInfo::kBool: { type = "T" + middle + "BoolProxy"; break; } - case TStreamerInfo::kChar: { type = "T" + middle + "CharProxy"; break; } - case TStreamerInfo::kShort: { type = "T" + middle + "ShortProxy"; break; } - case TStreamerInfo::kInt: { type = "T" + middle + "IntProxy"; break; } - case TStreamerInfo::kLong: { type = "T" + middle + "LongProxy"; break; } - case TStreamerInfo::kLong64: { type = "T" + middle + "Long64Proxy"; break; } - case TStreamerInfo::kFloat: { type = "T" + middle + "FloatProxy"; break; } - case TStreamerInfo::kDouble: { type = "T" + middle + "DoubleProxy"; break; } - case TStreamerInfo::kDouble32:{ type = "T" + middle + "Double32Proxy"; break; } - case TStreamerInfo::kUChar: { type = "T" + middle + "UCharProxy"; break; } - case TStreamerInfo::kUShort: { type = "T" + middle + "UShortProxy"; break; } - case TStreamerInfo::kUInt: { type = "T" + middle + "UIntProxy"; break; } - case TStreamerInfo::kULong: { type = "T" + middle + "ULongProxy"; break; } - case TStreamerInfo::kULong64: { type = "T" + middle + "ULong64Proxy"; break; } - case TStreamerInfo::kBits: { type = "T" + middle + "UIntProxy"; break; } - - case TStreamerInfo::kCharStar: { type = GetArrayType(element,"Char",container); break; } + case TVirtualStreamerInfo::kBool: { type = "T" + middle + "BoolProxy"; break; } + case TVirtualStreamerInfo::kChar: { type = "T" + middle + "CharProxy"; break; } + case TVirtualStreamerInfo::kShort: { type = "T" + middle + "ShortProxy"; break; } + case TVirtualStreamerInfo::kInt: { type = "T" + middle + "IntProxy"; break; } + case TVirtualStreamerInfo::kLong: { type = "T" + middle + "LongProxy"; break; } + case TVirtualStreamerInfo::kLong64: { type = "T" + middle + "Long64Proxy"; break; } + case TVirtualStreamerInfo::kFloat: { type = "T" + middle + "FloatProxy"; break; } + case TVirtualStreamerInfo::kDouble: { type = "T" + middle + "DoubleProxy"; break; } + case TVirtualStreamerInfo::kDouble32:{ type = "T" + middle + "Double32Proxy"; break; } + case TVirtualStreamerInfo::kUChar: { type = "T" + middle + "UCharProxy"; break; } + case TVirtualStreamerInfo::kUShort: { type = "T" + middle + "UShortProxy"; break; } + case TVirtualStreamerInfo::kUInt: { type = "T" + middle + "UIntProxy"; break; } + case TVirtualStreamerInfo::kULong: { type = "T" + middle + "ULongProxy"; break; } + case TVirtualStreamerInfo::kULong64: { type = "T" + middle + "ULong64Proxy"; break; } + case TVirtualStreamerInfo::kBits: { type = "T" + middle + "UIntProxy"; break; } + + case TVirtualStreamerInfo::kCharStar: { type = GetArrayType(element,"Char",container); break; } // array of basic types array[8] - case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: { type = GetArrayType(element,"Bool",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: { type = GetArrayType(element,"Char",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: { type = GetArrayType(element,"Short",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: { type = GetArrayType(element,"Int",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong: { type = GetArrayType(element,"Long",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong64: { type = GetArrayType(element,"Long64",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kFloat: { type = GetArrayType(element,"Float",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble: { type = GetArrayType(element,"Double",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble32:{ type = GetArrayType(element,"Double32",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kUChar: { type = GetArrayType(element,"UChar",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kUShort: { type = GetArrayType(element,"UShort",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kUInt: { type = GetArrayType(element,"UInt",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong: { type = GetArrayType(element,"ULong",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong64: { type = GetArrayType(element,"ULong64",container ); break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kBits: { type = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBool: { type = GetArrayType(element,"Bool",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar: { type = GetArrayType(element,"Char",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kShort: { type = GetArrayType(element,"Short",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kInt: { type = GetArrayType(element,"Int",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong: { type = GetArrayType(element,"Long",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong64: { type = GetArrayType(element,"Long64",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kFloat: { type = GetArrayType(element,"Float",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble: { type = GetArrayType(element,"Double",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble32:{ type = GetArrayType(element,"Double32",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUChar: { type = GetArrayType(element,"UChar",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUShort: { type = GetArrayType(element,"UShort",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUInt: { type = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong: { type = GetArrayType(element,"ULong",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong64: { type = GetArrayType(element,"ULong64",container ); break; } + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBits: { type = GetArrayType(element,"UInt",container ); break; } // pointer to an array of basic types array[n] - case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: { type = GetArrayType(element,"Bool",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: { type = GetArrayType(element,"Char",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: { type = GetArrayType(element,"Short",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: { type = GetArrayType(element,"Int",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong: { type = GetArrayType(element,"Long",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong64: { type = GetArrayType(element,"Long64",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kFloat: { type = GetArrayType(element,"Float",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble: { type = GetArrayType(element,"Double",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble32:{ type = GetArrayType(element,"Double32",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kUChar: { type = GetArrayType(element,"UChar",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kUShort: { type = GetArrayType(element,"UShort",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kUInt: { type = GetArrayType(element,"UInt",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong: { type = GetArrayType(element,"ULong",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong64: { type = GetArrayType(element,"ULong64",container ); break; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kBits: { type = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBool: { type = GetArrayType(element,"Bool",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kChar: { type = GetArrayType(element,"Char",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kShort: { type = GetArrayType(element,"Short",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kInt: { type = GetArrayType(element,"Int",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong: { type = GetArrayType(element,"Long",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong64: { type = GetArrayType(element,"Long64",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kFloat: { type = GetArrayType(element,"Float",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble: { type = GetArrayType(element,"Double",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble32:{ type = GetArrayType(element,"Double32",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUChar: { type = GetArrayType(element,"UChar",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUShort: { type = GetArrayType(element,"UShort",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUInt: { type = GetArrayType(element,"UInt",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong: { type = GetArrayType(element,"ULong",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong64: { type = GetArrayType(element,"ULong64",container ); break; } + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBits: { type = GetArrayType(element,"UInt",container ); break; } // array counter //[n] - case TStreamerInfo::kCounter: { type = "T" + middle + "IntProxy"; break; } + case TVirtualStreamerInfo::kCounter: { type = "T" + middle + "IntProxy"; break; } - case TStreamerInfo::kOffsetL + TStreamerInfo::kObjectp: - case TStreamerInfo::kOffsetL + TStreamerInfo::kObjectP: - case TStreamerInfo::kObjectp: - case TStreamerInfo::kObjectP: - case TStreamerInfo::kAnyp: - case TStreamerInfo::kAnyP: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kObjectp: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kObjectP: + case TVirtualStreamerInfo::kObjectp: + case TVirtualStreamerInfo::kObjectP: + case TVirtualStreamerInfo::kAnyp: + case TVirtualStreamerInfo::kAnyP: // set as pointers and fall through to the next switches ispointer = true; - case TStreamerInfo::kOffsetL + TStreamerInfo::kObject: - case TStreamerInfo::kObject: - case TStreamerInfo::kTString: - case TStreamerInfo::kTNamed: - case TStreamerInfo::kTObject: - case TStreamerInfo::kAny: - case TStreamerInfo::kOffsetL + TStreamerInfo::kAny: - case TStreamerInfo::kBase: { + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kObject: + case TVirtualStreamerInfo::kObject: + case TVirtualStreamerInfo::kTString: + case TVirtualStreamerInfo::kTNamed: + case TVirtualStreamerInfo::kTObject: + case TVirtualStreamerInfo::kAny: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kAny: + case TVirtualStreamerInfo::kBase: { TClass *cl = element->GetClassPointer(); if (cl) { type = Form("T%sObjProxy<%s >", @@ -1503,7 +1503,7 @@ namespace ROOT { branch->GetName(), isclones, 0 /* non-split object */); - TStreamerInfo *info = cl->GetStreamerInfo(); + TVirtualStreamerInfo *info = cl->GetStreamerInfo(); TStreamerElement *elem = 0; TString subpath = path; diff --git a/xml/src/TXMLPlayer.cxx b/xml/src/TXMLPlayer.cxx index c21ea62b05b4a24fa7e7e2f6d4e03a88dd923807..5ac4ff82d98d4bffe3edb8bd90411ce627176481 100644 --- a/xml/src/TXMLPlayer.cxx +++ b/xml/src/TXMLPlayer.cxx @@ -1,4 +1,4 @@ -// @(#)root/xml:$Name: $:$Id: TXMLPlayer.cxx,v 1.12 2007/01/29 15:10:49 brun Exp $ +// @(#)root/xml:$Name: $:$Id: TXMLPlayer.cxx,v 1.13 2007/01/30 11:24:32 brun Exp $ // Author: Sergey Linev, Rene Brun 10.05.2004 /************************************************************************* @@ -106,7 +106,7 @@ #include "Riostream.h" #include "TROOT.h" #include "TClass.h" -#include "TStreamerInfo.h" +#include "TVirtualStreamerInfo.h" #include "TStreamerElement.h" #include "TObjArray.h" #include "TObjString.h" @@ -249,27 +249,27 @@ TString TXMLPlayer::GetBasicTypeName(TStreamerElement* el) { // return simple data types for given TStreamerElement object - if (el->GetType() == TStreamerInfo::kCounter) return "int"; + if (el->GetType() == TVirtualStreamerInfo::kCounter) return "int"; switch (el->GetType() % 20) { - case TStreamerInfo::kChar: return "char"; - case TStreamerInfo::kShort: return "short"; - case TStreamerInfo::kInt: return "int"; - case TStreamerInfo::kLong: return "long"; - case TStreamerInfo::kLong64: return "long long"; - case TStreamerInfo::kFloat: return "float"; - case TStreamerInfo::kDouble32: - case TStreamerInfo::kDouble: return "double"; - case TStreamerInfo::kUChar: { + case TVirtualStreamerInfo::kChar: return "char"; + case TVirtualStreamerInfo::kShort: return "short"; + case TVirtualStreamerInfo::kInt: return "int"; + case TVirtualStreamerInfo::kLong: return "long"; + case TVirtualStreamerInfo::kLong64: return "long long"; + case TVirtualStreamerInfo::kFloat: return "float"; + case TVirtualStreamerInfo::kDouble32: + case TVirtualStreamerInfo::kDouble: return "double"; + case TVirtualStreamerInfo::kUChar: { char first = el->GetTypeNameBasic()[0]; if ((first=='B') || (first=='b')) return "bool"; return "unsigned char"; } - case TStreamerInfo::kBool: return "bool"; - case TStreamerInfo::kUShort: return "unsigned short"; - case TStreamerInfo::kUInt: return "unsigned int"; - case TStreamerInfo::kULong: return "unsigned long"; - case TStreamerInfo::kULong64: return "unsigned long long"; + case TVirtualStreamerInfo::kBool: return "bool"; + case TVirtualStreamerInfo::kUShort: return "unsigned short"; + case TVirtualStreamerInfo::kUInt: return "unsigned int"; + case TVirtualStreamerInfo::kULong: return "unsigned long"; + case TVirtualStreamerInfo::kULong64: return "unsigned long long"; } return "int"; } @@ -279,29 +279,29 @@ TString TXMLPlayer::GetBasicTypeReaderMethodName(Int_t type, const char* realnam { // return functions name to read simple data type from xml file - if (type == TStreamerInfo::kCounter) return "ReadInt"; + if (type == TVirtualStreamerInfo::kCounter) return "ReadInt"; switch (type % 20) { - case TStreamerInfo::kChar: return "ReadChar"; - case TStreamerInfo::kShort: return "ReadShort"; - case TStreamerInfo::kInt: return "ReadInt"; - case TStreamerInfo::kLong: return "ReadLong"; - case TStreamerInfo::kLong64: return "ReadLong64"; - case TStreamerInfo::kFloat: return "ReadFloat"; - case TStreamerInfo::kDouble32: - case TStreamerInfo::kDouble: return "ReadDouble"; - case TStreamerInfo::kUChar: { + case TVirtualStreamerInfo::kChar: return "ReadChar"; + case TVirtualStreamerInfo::kShort: return "ReadShort"; + case TVirtualStreamerInfo::kInt: return "ReadInt"; + case TVirtualStreamerInfo::kLong: return "ReadLong"; + case TVirtualStreamerInfo::kLong64: return "ReadLong64"; + case TVirtualStreamerInfo::kFloat: return "ReadFloat"; + case TVirtualStreamerInfo::kDouble32: + case TVirtualStreamerInfo::kDouble: return "ReadDouble"; + case TVirtualStreamerInfo::kUChar: { Bool_t isbool = false; if (realname!=0) isbool = (TString(realname).Index("bool",0, TString::kIgnoreCase)>=0); if (isbool) return "ReadBool"; return "ReadUChar"; } - case TStreamerInfo::kBool: return "ReadBool"; - case TStreamerInfo::kUShort: return "ReadUShort"; - case TStreamerInfo::kUInt: return "ReadUInt"; - case TStreamerInfo::kULong: return "ReadULong"; - case TStreamerInfo::kULong64: return "ReadULong64"; + case TVirtualStreamerInfo::kBool: return "ReadBool"; + case TVirtualStreamerInfo::kUShort: return "ReadUShort"; + case TVirtualStreamerInfo::kUInt: return "ReadUInt"; + case TVirtualStreamerInfo::kULong: return "ReadULong"; + case TVirtualStreamerInfo::kULong64: return "ReadULong64"; } return "ReadValue"; } @@ -407,7 +407,7 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) // Produce source code of streamer function for specified class if (cl==0) return; - TStreamerInfo* info = cl->GetStreamerInfo(); + TVirtualStreamerInfo* info = cl->GetStreamerInfo(); TObjArray* elements = info->GetElements(); if (elements==0) return; @@ -454,21 +454,21 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) switch (typ) { // basic types - case TStreamerInfo::kBool: - case TStreamerInfo::kChar: - case TStreamerInfo::kShort: - case TStreamerInfo::kInt: - case TStreamerInfo::kLong: - case TStreamerInfo::kLong64: - case TStreamerInfo::kFloat: - case TStreamerInfo::kDouble: - case TStreamerInfo::kUChar: - case TStreamerInfo::kUShort: - case TStreamerInfo::kUInt: - case TStreamerInfo::kULong: - case TStreamerInfo::kULong64: - case TStreamerInfo::kDouble32: - case TStreamerInfo::kCounter: { + case TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kDouble32: + case TVirtualStreamerInfo::kCounter: { char endch[5]; fs << tab2 << ElementSetter(cl, el->GetName(), endch); fs << "buf." << GetBasicTypeReaderMethodName(el->GetType(), 0) @@ -477,20 +477,20 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // array of basic types like bool[10] - case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: - case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: - case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: - case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong: - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong64: - case TStreamerInfo::kOffsetL + TStreamerInfo::kFloat: - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble: - case TStreamerInfo::kOffsetL + TStreamerInfo::kUChar: - case TStreamerInfo::kOffsetL + TStreamerInfo::kUShort: - case TStreamerInfo::kOffsetL + TStreamerInfo::kUInt: - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong: - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong64: - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble32: { + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble32: { fs << tab2 << "buf.ReadArray(" << ElementGetter(cl, el->GetName(), (el->GetArrayDim()>1) ? 1 : 0); fs << ", " << el->GetArrayLength() @@ -499,20 +499,20 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // array of basic types like bool[n] - case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: - case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: - case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: - case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong: - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong64: - case TStreamerInfo::kOffsetP + TStreamerInfo::kFloat: - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble: - case TStreamerInfo::kOffsetP + TStreamerInfo::kUChar: - case TStreamerInfo::kOffsetP + TStreamerInfo::kUShort: - case TStreamerInfo::kOffsetP + TStreamerInfo::kUInt: - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong: - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong64: - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble32: { + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble32: { TStreamerBasicPointer* elp = dynamic_cast<TStreamerBasicPointer*> (el); if (elp==0) { cout << "fatal error with TStreamerBasicPointer" << endl; @@ -527,7 +527,7 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) continue; } - case TStreamerInfo::kCharStar: { + case TVirtualStreamerInfo::kCharStar: { char endch[5]; fs << tab2 << ElementSetter(cl, el->GetName(), endch); fs << "buf.ReadCharStar(" << ElementGetter(cl, el->GetName()); @@ -535,7 +535,7 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) continue; } - case TStreamerInfo::kBase: { + case TVirtualStreamerInfo::kBase: { fs << tab2 << GetStreamerName(el->GetClassPointer()) << "(buf, dynamic_cast<" << el->GetClassPointer()->GetName() << "*>(obj), false);" << endl; @@ -543,8 +543,8 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // Class* Class not derived from TObject and with comment field //-> - case TStreamerInfo::kAnyp: - case TStreamerInfo::kAnyp + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kAnyp: + case TVirtualStreamerInfo::kAnyp + TVirtualStreamerInfo::kOffsetL: { if (el->GetArrayLength()>0) { fs << tab2 << "buf.ReadObjectArr(" << ElementGetter(cl, el->GetName()); fs << ", " << el->GetArrayLength() << ", -1" @@ -559,8 +559,8 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // Class* Class not derived from TObject and no comment - case TStreamerInfo::kAnyP: - case TStreamerInfo::kAnyP + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kAnyP: + case TVirtualStreamerInfo::kAnyP + TVirtualStreamerInfo::kOffsetL: { if (el->GetArrayLength()>0) { fs << tab2 << "for (int n=0;n<" << el->GetArrayLength() << ";n++) " << "delete (" << ElementGetter(cl, el->GetName()) << ")[n];" << endl; @@ -582,7 +582,7 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // Class NOT derived from TObject - case TStreamerInfo::kAny: { + case TVirtualStreamerInfo::kAny: { fs << tab2 << "buf.ReadObject(" << ElementGetter(cl, el->GetName(), 2); fs << ", \"" << el->GetName() << "\", " << GetStreamerName(el->GetClassPointer()) << ");" << endl; @@ -590,7 +590,7 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // Class NOT derived from TObject, array - case TStreamerInfo::kAny + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kAny + TVirtualStreamerInfo::kOffsetL: { fs << tab2 << "buf.ReadObjectArr(" << ElementGetter(cl, el->GetName()); fs << ", " << el->GetArrayLength() << ", sizeof(" << el->GetClassPointer()->GetName() @@ -600,10 +600,10 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // container with no virtual table (stl) and no comment - case TStreamerInfo::kSTLp: - case TStreamerInfo::kSTL: - case TStreamerInfo::kSTLp + TStreamerInfo::kOffsetL: - case TStreamerInfo::kSTL + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kSTLp: + case TVirtualStreamerInfo::kSTL: + case TVirtualStreamerInfo::kSTLp + TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kSTL + TVirtualStreamerInfo::kOffsetL: { TStreamerSTL* elstl = dynamic_cast<TStreamerSTL*> (el); if (elstl==0) break; // to make skip @@ -653,23 +653,23 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) switch (typ) { // write basic types - case TStreamerInfo::kBool: - case TStreamerInfo::kChar: - case TStreamerInfo::kShort: - case TStreamerInfo::kInt: - case TStreamerInfo::kLong: - case TStreamerInfo::kLong64: - case TStreamerInfo::kFloat: - case TStreamerInfo::kDouble: - case TStreamerInfo::kUChar: - case TStreamerInfo::kUShort: - case TStreamerInfo::kUInt: - case TStreamerInfo::kULong: - case TStreamerInfo::kULong64: - case TStreamerInfo::kDouble32: - case TStreamerInfo::kCounter: { + case TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kDouble32: + case TVirtualStreamerInfo::kCounter: { fs << tab2 << "buf.WriteValue("; - if (typ==TStreamerInfo::kUChar) + if (typ==TVirtualStreamerInfo::kUChar) fs <<"(unsigned char) " << ElementGetter(cl, el->GetName()); else fs << ElementGetter(cl, el->GetName()); @@ -678,20 +678,20 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // array of basic types - case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: - case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: - case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: - case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong: - case TStreamerInfo::kOffsetL + TStreamerInfo::kLong64: - case TStreamerInfo::kOffsetL + TStreamerInfo::kFloat: - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble: - case TStreamerInfo::kOffsetL + TStreamerInfo::kUChar: - case TStreamerInfo::kOffsetL + TStreamerInfo::kUShort: - case TStreamerInfo::kOffsetL + TStreamerInfo::kUInt: - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong: - case TStreamerInfo::kOffsetL + TStreamerInfo::kULong64: - case TStreamerInfo::kOffsetL + TStreamerInfo::kDouble32: { + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kDouble32: { fs << tab2 << "buf.WriteArray(" << ElementGetter(cl, el->GetName(), (el->GetArrayDim()>1) ? 1 : 0); fs << ", " << el->GetArrayLength() @@ -699,20 +699,20 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) continue; } - case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: - case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: - case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: - case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong: - case TStreamerInfo::kOffsetP + TStreamerInfo::kLong64: - case TStreamerInfo::kOffsetP + TStreamerInfo::kFloat: - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble: - case TStreamerInfo::kOffsetP + TStreamerInfo::kUChar: - case TStreamerInfo::kOffsetP + TStreamerInfo::kUShort: - case TStreamerInfo::kOffsetP + TStreamerInfo::kUInt: - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong: - case TStreamerInfo::kOffsetP + TStreamerInfo::kULong64: - case TStreamerInfo::kOffsetP + TStreamerInfo::kDouble32: { + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kOffsetP + TVirtualStreamerInfo::kDouble32: { TStreamerBasicPointer* elp = dynamic_cast<TStreamerBasicPointer*> (el); if (elp==0) { cout << "fatal error with TStreamerBasicPointer" << endl; @@ -724,13 +724,13 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) continue; } - case TStreamerInfo::kCharStar: { + case TVirtualStreamerInfo::kCharStar: { fs << tab2 << "buf.WriteCharStar(" << ElementGetter(cl, el->GetName()) << ", \"" << el->GetName() << "\");" << endl; continue; } - case TStreamerInfo::kBase: { + case TVirtualStreamerInfo::kBase: { fs << tab2 << GetStreamerName(el->GetClassPointer()) << "(buf, dynamic_cast<" << el->GetClassPointer()->GetName() << "*>(obj), false);" << endl; @@ -738,8 +738,8 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // Class* Class not derived from TObject and with comment field //-> - case TStreamerInfo::kAnyp: - case TStreamerInfo::kAnyp + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kAnyp: + case TVirtualStreamerInfo::kAnyp + TVirtualStreamerInfo::kOffsetL: { if (el->GetArrayLength()>0) { fs << tab2 << "buf.WriteObjectArr(" << ElementGetter(cl, el->GetName()); fs << ", " << el->GetArrayLength() << ", -1" @@ -754,8 +754,8 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // Class* Class not derived from TObject and no comment - case TStreamerInfo::kAnyP: - case TStreamerInfo::kAnyP + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kAnyP: + case TVirtualStreamerInfo::kAnyP + TVirtualStreamerInfo::kOffsetL: { if (el->GetArrayLength()>0) { fs << tab2 << "buf.WriteObjectPtrArr((void**) " << ElementGetter(cl, el->GetName(), 3); fs << ", " << el->GetArrayLength() @@ -769,14 +769,14 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) continue; } - case TStreamerInfo::kAny: { // Class NOT derived from TObject + case TVirtualStreamerInfo::kAny: { // Class NOT derived from TObject fs << tab2 << "buf.WriteObject(" << ElementGetter(cl, el->GetName(), 2); fs << ", \"" << el->GetName() << "\", " << GetStreamerName(el->GetClassPointer()) << ");" << endl; continue; } - case TStreamerInfo::kAny + TStreamerInfo::kOffsetL: { + case TVirtualStreamerInfo::kAny + TVirtualStreamerInfo::kOffsetL: { fs << tab2 << "buf.WriteObjectArr(" << ElementGetter(cl, el->GetName()); fs << ", " << el->GetArrayLength() << ", sizeof(" << el->GetClassPointer()->GetName() @@ -786,10 +786,10 @@ void TXMLPlayer::ProduceStreamerSource(ostream& fs, TClass* cl, TList* cllist) } // container with no virtual table (stl) and no comment - case TStreamerInfo::kSTLp + TStreamerInfo::kOffsetL: - case TStreamerInfo::kSTL + TStreamerInfo::kOffsetL: - case TStreamerInfo::kSTLp: - case TStreamerInfo::kSTL: { + case TVirtualStreamerInfo::kSTLp + TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kSTL + TVirtualStreamerInfo::kOffsetL: + case TVirtualStreamerInfo::kSTLp: + case TVirtualStreamerInfo::kSTL: { TStreamerSTL* elstl = dynamic_cast<TStreamerSTL*> (el); if (elstl==0) break; // to make skip @@ -824,27 +824,27 @@ void TXMLPlayer::ReadSTLarg(ostream& fs, // Produce code to read argument of stl container from xml file switch(argtyp) { - case TStreamerInfo::kBool: - case TStreamerInfo::kChar: - case TStreamerInfo::kShort: - case TStreamerInfo::kInt: - case TStreamerInfo::kLong: - case TStreamerInfo::kLong64: - case TStreamerInfo::kFloat: - case TStreamerInfo::kDouble: - case TStreamerInfo::kUChar: - case TStreamerInfo::kUShort: - case TStreamerInfo::kUInt: - case TStreamerInfo::kULong: - case TStreamerInfo::kULong64: - case TStreamerInfo::kDouble32: - case TStreamerInfo::kCounter: { + case TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kDouble32: + case TVirtualStreamerInfo::kCounter: { fs << tname << " " << argname << " = buf." << GetBasicTypeReaderMethodName(argtyp, tname.Data()) << "(0);" << endl; break; } - case TStreamerInfo::kObject: { + case TVirtualStreamerInfo::kObject: { fs << tname << (isargptr ? " ": " *") << argname << " = " << "(" << argcl->GetName() << "*)" << "buf.ReadObjectPtr(0, " @@ -859,7 +859,7 @@ void TXMLPlayer::ReadSTLarg(ostream& fs, break; } - case TStreamerInfo::kSTLstring: { + case TVirtualStreamerInfo::kSTLstring: { fs << "string *" << argname << " = " << "buf.ReadSTLstring();" << endl; if (!isargptr) { @@ -883,26 +883,26 @@ void TXMLPlayer::WriteSTLarg(ostream& fs, const char* accname, int argtyp, Bool_ // Produce code to write argument of stl container to xml file switch(argtyp) { - case TStreamerInfo::kBool: - case TStreamerInfo::kChar: - case TStreamerInfo::kShort: - case TStreamerInfo::kInt: - case TStreamerInfo::kLong: - case TStreamerInfo::kLong64: - case TStreamerInfo::kFloat: - case TStreamerInfo::kDouble: - case TStreamerInfo::kUChar: - case TStreamerInfo::kUShort: - case TStreamerInfo::kUInt: - case TStreamerInfo::kULong: - case TStreamerInfo::kULong64: - case TStreamerInfo::kDouble32: - case TStreamerInfo::kCounter: { + case TVirtualStreamerInfo::kBool: + case TVirtualStreamerInfo::kChar: + case TVirtualStreamerInfo::kShort: + case TVirtualStreamerInfo::kInt: + case TVirtualStreamerInfo::kLong: + case TVirtualStreamerInfo::kLong64: + case TVirtualStreamerInfo::kFloat: + case TVirtualStreamerInfo::kDouble: + case TVirtualStreamerInfo::kUChar: + case TVirtualStreamerInfo::kUShort: + case TVirtualStreamerInfo::kUInt: + case TVirtualStreamerInfo::kULong: + case TVirtualStreamerInfo::kULong64: + case TVirtualStreamerInfo::kDouble32: + case TVirtualStreamerInfo::kCounter: { fs << "buf.WriteValue(" << accname << ", 0);" << endl; break; } - case TStreamerInfo::kObject: { + case TVirtualStreamerInfo::kObject: { fs << "buf.WriteObjectPtr("; if (isargptr) fs << accname; @@ -912,7 +912,7 @@ void TXMLPlayer::WriteSTLarg(ostream& fs, const char* accname, int argtyp, Bool_ break; } - case TStreamerInfo::kSTLstring: { + case TVirtualStreamerInfo::kSTLstring: { fs << "buf.WriteSTLstring("; if (isargptr) fs << accname; @@ -1001,10 +1001,10 @@ Bool_t TXMLPlayer::ProduceSTLstreamer(ostream& fs, TClass* cl, TStreamerSTL* el, TDataType *dt = (TDataType*)gROOT->GetListOfTypes()->FindObject(buf); if (dt) argtype[n] = dt->GetType(); else if (buf=="string") - argtype[n] = TStreamerInfo::kSTLstring; + argtype[n] = TVirtualStreamerInfo::kSTLstring; else { argcl[n] = TClass::GetClass(buf); - if (argcl[n]!=0) argtype[n]=TStreamerInfo::kObject; + if (argcl[n]!=0) argtype[n]=TVirtualStreamerInfo::kObject; } if (argtype[n]<0) stltyp = -1; } // for narg