diff --git a/cont/src/TEmulatedCollectionProxy.cxx b/cont/src/TEmulatedCollectionProxy.cxx index 282be1619f783426b98ff0d731ccda04d90939a6..d75e95181e46c2b5cfcc3fe27a73a69da65f2070 100644 --- a/cont/src/TEmulatedCollectionProxy.cxx +++ b/cont/src/TEmulatedCollectionProxy.cxx @@ -1,4 +1,4 @@ -// @(#)root/cont:$Name: $:$Id: TEmulatedCollectionProxy.cxx,v 1.5 2004/11/03 16:13:38 brun Exp $ +// @(#)root/cont:$Name: $:$Id: TEmulatedCollectionProxy.cxx,v 1.6 2004/11/11 06:06:41 brun Exp $ // Author: Markus Frank 28/10/04 /************************************************************************* @@ -323,6 +323,7 @@ void TEmulatedCollectionProxy::ReadItems(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(fVal->fKind) ) { + case kBool_t: b.ReadFastArray(&itm->boolean , nElements); break; case kChar_t: b.ReadFastArray(&itm->s_char , nElements); break; case kShort_t: b.ReadFastArray(&itm->s_short , nElements); break; case kInt_t: b.ReadFastArray(&itm->s_int , nElements); break; @@ -366,6 +367,7 @@ void TEmulatedCollectionProxy::WriteItems(int nElements, TBuffer &b) { case G__BIT_ISENUM: itm = (StreamHelper*)At(0); switch( int(fVal->fKind) ) { + case kBool_t: b.WriteFastArray(&itm->boolean , nElements); break; case kChar_t: b.WriteFastArray(&itm->s_char , nElements); break; case kShort_t: b.WriteFastArray(&itm->s_short , nElements); break; case kInt_t: b.WriteFastArray(&itm->s_int , nElements); break; diff --git a/cont/src/TEmulatedMapProxy.cxx b/cont/src/TEmulatedMapProxy.cxx index 2d14bf08736bf045d649c2f1813455f242cbff0a..1db03eb9bb499c4919b4347acabbdd9f98449943 100644 --- a/cont/src/TEmulatedMapProxy.cxx +++ b/cont/src/TEmulatedMapProxy.cxx @@ -1,4 +1,4 @@ -// @(#)root/cont:$Name: $:$Id: TEmulatedMapProxy.cxx,v 1.2 2004/11/01 12:26:07 brun Exp $ +// @(#)root/cont:$Name: $:$Id: TEmulatedMapProxy.cxx,v 1.3 2004/11/03 16:13:38 brun Exp $ // Author: Markus Frank 28/10/04 /************************************************************************* @@ -97,6 +97,7 @@ void TEmulatedMapProxy::ReadMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b >> helper->boolean; break; case kChar_t: b >> helper->s_char; break; case kShort_t: b >> helper->s_short; break; case kInt_t: b >> helper->s_int; break; @@ -155,6 +156,7 @@ void TEmulatedMapProxy::WriteMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b << i->boolean; break; case kChar_t: b << i->s_char; break; case kShort_t: b << i->s_short; break; case kInt_t: b << i->s_int; break; diff --git a/cont/src/TGenCollectionStreamer.cxx b/cont/src/TGenCollectionStreamer.cxx index 9b6024562bc8b9f641a3bdafb8962ba67678d40b..601ebb9a2303f7b6ce8442ce72353295b5c9dd0f 100644 --- a/cont/src/TGenCollectionStreamer.cxx +++ b/cont/src/TGenCollectionStreamer.cxx @@ -1,4 +1,4 @@ -// @(#)root/cont:$Name: $:$Id: TGenCollectionStreamer.cxx,v 1.2 2004/11/02 21:51:10 brun Exp $ +// @(#)root/cont:$Name: $:$Id: TGenCollectionStreamer.cxx,v 1.3 2004/11/03 16:13:38 brun Exp $ // Author: Markus Frank 28/10/04 /************************************************************************* @@ -73,6 +73,7 @@ void TGenCollectionStreamer::ReadPrimitives(int nElements, TBuffer &b) { } fEnv->start = itm; switch( int(fVal->fKind) ) { + case kBool_t: b.ReadFastArray(&itm->boolean , nElements); break; case kChar_t: b.ReadFastArray(&itm->s_char , nElements); break; case kShort_t: b.ReadFastArray(&itm->s_short , nElements); break; case kInt_t: b.ReadFastArray(&itm->s_int , nElements); break; @@ -213,6 +214,7 @@ void TGenCollectionStreamer::ReadMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b >> i->boolean; break; case kChar_t: b >> i->s_char; break; case kShort_t: b >> i->s_short; break; case kInt_t: b >> i->s_int; break; @@ -280,6 +282,7 @@ void TGenCollectionStreamer::WritePrimitives(int nElements, TBuffer &b) { break; } switch( int(fVal->fKind) ) { + case kBool_t: b.WriteFastArray(&itm->boolean , nElements); break; case kChar_t: b.WriteFastArray(&itm->s_char , nElements); break; case kShort_t: b.WriteFastArray(&itm->s_short , nElements); break; case kInt_t: b.WriteFastArray(&itm->s_int , nElements); break; @@ -372,6 +375,7 @@ void TGenCollectionStreamer::WriteMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b << i->boolean; break; case kChar_t: b << i->s_char; break; case kShort_t: b << i->s_short; break; case kInt_t: b << i->s_int; break; diff --git a/io/inc/TStreamerInfo.h b/io/inc/TStreamerInfo.h index 1d254e30641217c86759d72c9d4283ed38375c9e..1d706ed792034ee4e58a8fe092d71915361870b7 100644 --- a/io/inc/TStreamerInfo.h +++ b/io/inc/TStreamerInfo.h @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerInfo.h,v 1.58 2004/10/19 11:00:09 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerInfo.h,v 1.59 2004/10/29 16:07:32 rdm Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -101,7 +101,7 @@ public: kChar = 1, kShort = 2, kInt = 3, kLong = 4, kFloat = 5, kDouble = 8, kDouble32= 9, kUChar = 11, kUShort = 12, kUInt = 13, kULong = 14, kBits = 15, - kLong64 = 16, kULong64 = 17, + kLong64 = 16, kULong64 = 17, kBool = 18, kObject = 61, kAny = 62, kObjectp = 63, kObjectP = 64, kTString = 65, kTObject = 66, kTNamed = 67, kAnyp = 68, kAnyP = 69, kAnyPnoVT = 70, kSTLp = 71, diff --git a/io/src/TEmulatedCollectionProxy.cxx b/io/src/TEmulatedCollectionProxy.cxx index 282be1619f783426b98ff0d731ccda04d90939a6..d75e95181e46c2b5cfcc3fe27a73a69da65f2070 100644 --- a/io/src/TEmulatedCollectionProxy.cxx +++ b/io/src/TEmulatedCollectionProxy.cxx @@ -1,4 +1,4 @@ -// @(#)root/cont:$Name: $:$Id: TEmulatedCollectionProxy.cxx,v 1.5 2004/11/03 16:13:38 brun Exp $ +// @(#)root/cont:$Name: $:$Id: TEmulatedCollectionProxy.cxx,v 1.6 2004/11/11 06:06:41 brun Exp $ // Author: Markus Frank 28/10/04 /************************************************************************* @@ -323,6 +323,7 @@ void TEmulatedCollectionProxy::ReadItems(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(fVal->fKind) ) { + case kBool_t: b.ReadFastArray(&itm->boolean , nElements); break; case kChar_t: b.ReadFastArray(&itm->s_char , nElements); break; case kShort_t: b.ReadFastArray(&itm->s_short , nElements); break; case kInt_t: b.ReadFastArray(&itm->s_int , nElements); break; @@ -366,6 +367,7 @@ void TEmulatedCollectionProxy::WriteItems(int nElements, TBuffer &b) { case G__BIT_ISENUM: itm = (StreamHelper*)At(0); switch( int(fVal->fKind) ) { + case kBool_t: b.WriteFastArray(&itm->boolean , nElements); break; case kChar_t: b.WriteFastArray(&itm->s_char , nElements); break; case kShort_t: b.WriteFastArray(&itm->s_short , nElements); break; case kInt_t: b.WriteFastArray(&itm->s_int , nElements); break; diff --git a/io/src/TEmulatedMapProxy.cxx b/io/src/TEmulatedMapProxy.cxx index 2d14bf08736bf045d649c2f1813455f242cbff0a..1db03eb9bb499c4919b4347acabbdd9f98449943 100644 --- a/io/src/TEmulatedMapProxy.cxx +++ b/io/src/TEmulatedMapProxy.cxx @@ -1,4 +1,4 @@ -// @(#)root/cont:$Name: $:$Id: TEmulatedMapProxy.cxx,v 1.2 2004/11/01 12:26:07 brun Exp $ +// @(#)root/cont:$Name: $:$Id: TEmulatedMapProxy.cxx,v 1.3 2004/11/03 16:13:38 brun Exp $ // Author: Markus Frank 28/10/04 /************************************************************************* @@ -97,6 +97,7 @@ void TEmulatedMapProxy::ReadMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b >> helper->boolean; break; case kChar_t: b >> helper->s_char; break; case kShort_t: b >> helper->s_short; break; case kInt_t: b >> helper->s_int; break; @@ -155,6 +156,7 @@ void TEmulatedMapProxy::WriteMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b << i->boolean; break; case kChar_t: b << i->s_char; break; case kShort_t: b << i->s_short; break; case kInt_t: b << i->s_int; break; diff --git a/io/src/TGenCollectionStreamer.cxx b/io/src/TGenCollectionStreamer.cxx index 9b6024562bc8b9f641a3bdafb8962ba67678d40b..601ebb9a2303f7b6ce8442ce72353295b5c9dd0f 100644 --- a/io/src/TGenCollectionStreamer.cxx +++ b/io/src/TGenCollectionStreamer.cxx @@ -1,4 +1,4 @@ -// @(#)root/cont:$Name: $:$Id: TGenCollectionStreamer.cxx,v 1.2 2004/11/02 21:51:10 brun Exp $ +// @(#)root/cont:$Name: $:$Id: TGenCollectionStreamer.cxx,v 1.3 2004/11/03 16:13:38 brun Exp $ // Author: Markus Frank 28/10/04 /************************************************************************* @@ -73,6 +73,7 @@ void TGenCollectionStreamer::ReadPrimitives(int nElements, TBuffer &b) { } fEnv->start = itm; switch( int(fVal->fKind) ) { + case kBool_t: b.ReadFastArray(&itm->boolean , nElements); break; case kChar_t: b.ReadFastArray(&itm->s_char , nElements); break; case kShort_t: b.ReadFastArray(&itm->s_short , nElements); break; case kInt_t: b.ReadFastArray(&itm->s_int , nElements); break; @@ -213,6 +214,7 @@ void TGenCollectionStreamer::ReadMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b >> i->boolean; break; case kChar_t: b >> i->s_char; break; case kShort_t: b >> i->s_short; break; case kInt_t: b >> i->s_int; break; @@ -280,6 +282,7 @@ void TGenCollectionStreamer::WritePrimitives(int nElements, TBuffer &b) { break; } switch( int(fVal->fKind) ) { + case kBool_t: b.WriteFastArray(&itm->boolean , nElements); break; case kChar_t: b.WriteFastArray(&itm->s_char , nElements); break; case kShort_t: b.WriteFastArray(&itm->s_short , nElements); break; case kInt_t: b.WriteFastArray(&itm->s_int , nElements); break; @@ -372,6 +375,7 @@ void TGenCollectionStreamer::WriteMap(int nElements, TBuffer &b) { case G__BIT_ISFUNDAMENTAL: // Only handle primitives this way case G__BIT_ISENUM: switch( int(v->fKind) ) { + case kBool_t: b << i->boolean; break; case kChar_t: b << i->s_char; break; case kShort_t: b << i->s_short; break; case kInt_t: b << i->s_int; break; diff --git a/io/src/TStreamerInfo.cxx b/io/src/TStreamerInfo.cxx index fc607aa9c80c19b9180b9619c9882be12696d48e..1ce0c8dd0d1d6239c835b9e72540a02d6d4ed629 100644 --- a/io/src/TStreamerInfo.cxx +++ b/io/src/TStreamerInfo.cxx @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerInfo.cxx,v 1.216 2005/01/04 19:54:31 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerInfo.cxx,v 1.217 2005/01/12 07:50:02 brun Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -1645,6 +1645,7 @@ Double_t TStreamerInfo::GetValueAux(Int_t type, void *ladd, Int_t k, Int_t len) { switch (type) { // basic types + case kBool: {Bool_t *val = (Bool_t*)ladd; return Double_t(*val);} case kChar: {Char_t *val = (Char_t*)ladd; return Double_t(*val);} case kShort: {Short_t *val = (Short_t*)ladd; return Double_t(*val);} case kInt: {Int_t *val = (Int_t*)ladd; return Double_t(*val);} @@ -1665,6 +1666,7 @@ Double_t TStreamerInfo::GetValueAux(Int_t type, void *ladd, Int_t k, Int_t len) case kBits: {UInt_t *val = (UInt_t*)ladd; return Double_t(*val);} // array of basic types array[8] + case kOffsetL + kBool: {Bool_t *val = (Bool_t*)ladd; return Double_t(val[k]);} case kOffsetL + kChar: {Char_t *val = (Char_t*)ladd; return Double_t(val[k]);} case kOffsetL + kShort: {Short_t *val = (Short_t*)ladd; return Double_t(val[k]);} case kOffsetL + kInt: {Int_t *val = (Int_t*)ladd; return Double_t(val[k]);} @@ -1699,6 +1701,7 @@ Double_t TStreamerInfo::GetValueAux(Int_t type, void *ladd, Int_t k, Int_t len) } // pointer to an array of basic types array[n] + case kOffsetP + kBool_t: READ_ARRAY(Bool_t) case kOffsetP + kChar_t: READ_ARRAY(Char_t) case kOffsetP + kShort_t: READ_ARRAY(Short_t) case kOffsetP + kInt_t: READ_ARRAY(Int_t) @@ -2076,6 +2079,7 @@ void TStreamerInfo::PrintValueAux(char *ladd, Int_t atype, switch (atype) { // basic types + case kBool: {Bool_t *val = (Bool_t* )ladd; printf("%d" ,*val); break;} case kChar: {Char_t *val = (Char_t* )ladd; printf("%d" ,*val); break;} case kShort: {Short_t *val = (Short_t* )ladd; printf("%d" ,*val); break;} case kInt: {Int_t *val = (Int_t* )ladd; printf("%d" ,*val); break;} @@ -2092,6 +2096,7 @@ void TStreamerInfo::PrintValueAux(char *ladd, Int_t atype, case kBits: {UInt_t *val = (UInt_t* )ladd; printf("%d" ,*val); break;} // array of basic types array[8] + case kOffsetL + kBool: {Bool_t *val = (Bool_t* )ladd; for(j=0;j<aleng;j++) { printf("%c " ,val[j]); PrintCR(j,aleng,20); } break;} case kOffsetL + kChar: {Char_t *val = (Char_t* )ladd; for(j=0;j<aleng;j++) { printf("%c " ,val[j]); PrintCR(j,aleng,20); } break;} case kOffsetL + kShort: {Short_t *val = (Short_t* )ladd; for(j=0;j<aleng;j++) { printf("%d " ,val[j]); PrintCR(j,aleng,10); } break;} case kOffsetL + kInt: {Int_t *val = (Int_t* )ladd; for(j=0;j<aleng;j++) { printf("%d " ,val[j]); PrintCR(j,aleng,10); } break;} @@ -2107,6 +2112,7 @@ void TStreamerInfo::PrintValueAux(char *ladd, Int_t atype, case kOffsetL + kULong64: {ULong64_t *val = (ULong64_t*)ladd; for(j=0;j<aleng;j++) { printf("%llu ",val[j]);PrintCR(j,aleng, 5); } break;} // pointer to an array of basic types array[n] + case kOffsetP + kBool: {Bool_t **val = (Bool_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,20); } break;} case kOffsetP + kChar: {Char_t **val = (Char_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,20); } break;} case kOffsetP + kShort: {Short_t **val = (Short_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,10); } break;} case kOffsetP + kInt: {Int_t **val = (Int_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,10); } break;} diff --git a/io/src/TStreamerInfoReadBuffer.cxx b/io/src/TStreamerInfoReadBuffer.cxx index 094bf606eefe2fd1e48af5cf8fe77655cbac2ffb..153ad9ce2daeb5f2d7834a8f04b478ee3e9e25d4 100644 --- a/io/src/TStreamerInfoReadBuffer.cxx +++ b/io/src/TStreamerInfoReadBuffer.cxx @@ -145,6 +145,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas switch (kase) { // skip basic types + case TStreamerInfo::kSkip + TStreamerInfo::kBool: SkipCBasicType(Bool_t); case TStreamerInfo::kSkip + TStreamerInfo::kChar: SkipCBasicType(Char_t); case TStreamerInfo::kSkip + TStreamerInfo::kShort: SkipCBasicType(Short_t); case TStreamerInfo::kSkip + TStreamerInfo::kInt: SkipCBasicType(Int_t); @@ -161,6 +162,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas case TStreamerInfo::kSkip + TStreamerInfo::kBits: SkipCBasicType(UInt_t); // skip array of basic types array[8] + case TStreamerInfo::kSkipL + TStreamerInfo::kBool: SkipCBasicArray(Bool_t); case TStreamerInfo::kSkipL + TStreamerInfo::kChar: SkipCBasicArray(Char_t); case TStreamerInfo::kSkipL + TStreamerInfo::kShort: SkipCBasicArray(Short_t); case TStreamerInfo::kSkipL + TStreamerInfo::kInt: SkipCBasicArray(Int_t); @@ -176,6 +178,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas case TStreamerInfo::kSkipL + TStreamerInfo::kULong64: SkipCBasicArray(ULong64_t); // skip pointer to an array of basic types array[n] + case TStreamerInfo::kSkipP + TStreamerInfo::kBool: SkipCBasicPointer(Bool_t); case TStreamerInfo::kSkipP + TStreamerInfo::kChar: SkipCBasicPointer(Char_t); case TStreamerInfo::kSkipP + TStreamerInfo::kShort: SkipCBasicPointer(Short_t); case TStreamerInfo::kSkipP + TStreamerInfo::kInt: SkipCBasicPointer(Int_t); @@ -323,6 +326,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas name u; \ b >> u; \ switch(fNewType[i]) { \ + case TStreamerInfo::kBool: {Bool_t *x=(Bool_t*)(arr[k]+ioffset); *x = (Bool_t)u; break;} \ case TStreamerInfo::kChar: {Char_t *x=(Char_t*)(arr[k]+ioffset); *x = (Char_t)u; break;} \ case TStreamerInfo::kShort: {Short_t *x=(Short_t*)(arr[k]+ioffset); *x = (Short_t)u; break;} \ case TStreamerInfo::kInt: {Int_t *x=(Int_t*)(arr[k]+ioffset); *x = (Int_t)u; break;} \ @@ -355,6 +359,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas DOLOOP { \ b.ReadFastArray(readbuf, len); \ switch(newtype) { \ + case TStreamerInfo::kBool: ConvCBasicArrayTo(Bool_t); \ case TStreamerInfo::kChar: ConvCBasicArrayTo(Char_t); \ case TStreamerInfo::kShort: ConvCBasicArrayTo(Short_t); \ case TStreamerInfo::kInt: ConvCBasicArrayTo(Int_t); \ @@ -401,6 +406,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas Int_t *l = (Int_t*)(arr[k]+imethod); \ if (*l>0) readbuf = new name[*l]; \ switch(newtype) { \ + case TStreamerInfo::kBool: ConvCBasicPointerTo(Bool_t); \ case TStreamerInfo::kChar: ConvCBasicPointerTo(Char_t); \ case TStreamerInfo::kShort: ConvCBasicPointerTo(Short_t); \ case TStreamerInfo::kInt: ConvCBasicPointerTo(Int_t); \ @@ -446,6 +452,7 @@ Int_t TStreamerInfo::ReadBufferConv(TBuffer &b, const T &arr, Int_t i, Int_t ka switch (kase) { // convert basic types + case TStreamerInfo::kConv + TStreamerInfo::kBool: ConvCBasicType(Bool_t); case TStreamerInfo::kConv + TStreamerInfo::kChar: ConvCBasicType(Char_t); case TStreamerInfo::kConv + TStreamerInfo::kShort: ConvCBasicType(Short_t); case TStreamerInfo::kConv + TStreamerInfo::kInt: ConvCBasicType(Int_t); @@ -466,6 +473,7 @@ Int_t TStreamerInfo::ReadBufferConv(TBuffer &b, const T &arr, Int_t i, Int_t ka case TStreamerInfo::kConv + TStreamerInfo::kBits: ConvCBasicType(UInt_t); // convert array of basic types array[8] + case TStreamerInfo::kConvL + TStreamerInfo::kBool: ConvCBasicArray(Bool_t); case TStreamerInfo::kConvL + TStreamerInfo::kChar: ConvCBasicArray(Char_t); case TStreamerInfo::kConvL + TStreamerInfo::kShort: ConvCBasicArray(Short_t); case TStreamerInfo::kConvL + TStreamerInfo::kInt: ConvCBasicArray(Int_t); @@ -485,6 +493,7 @@ Int_t TStreamerInfo::ReadBufferConv(TBuffer &b, const T &arr, Int_t i, Int_t ka #endif // convert pointer to an array of basic types array[n] + case TStreamerInfo::kConvP + TStreamerInfo::kBool: ConvCBasicPointer(Bool_t); case TStreamerInfo::kConvP + TStreamerInfo::kChar: ConvCBasicPointer(Char_t); case TStreamerInfo::kConvP + TStreamerInfo::kShort: ConvCBasicPointer(Short_t); case TStreamerInfo::kConvP + TStreamerInfo::kInt: ConvCBasicPointer(Int_t); @@ -584,6 +593,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, switch (kase + typeOffset) { // read basic types + case TStreamerInfo::kBool: ReadBasicType(Bool_t); continue; case TStreamerInfo::kChar: ReadBasicType(Char_t); continue; case TStreamerInfo::kShort: ReadBasicType(Short_t); continue; case TStreamerInfo::kInt: ReadBasicType(Int_t); continue; @@ -602,6 +612,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kBool + kHaveLoop: ReadBasicTypeLoop(Bool_t); continue; case TStreamerInfo::kChar + kHaveLoop: ReadBasicTypeLoop(Char_t); continue; case TStreamerInfo::kShort + kHaveLoop: ReadBasicTypeLoop(Short_t); continue; case TStreamerInfo::kInt + kHaveLoop: ReadBasicTypeLoop(Int_t); continue; @@ -623,6 +634,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, } // read array of basic types like array[8] + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: ReadBasicArray(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: ReadBasicArray(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: ReadBasicArray(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: ReadBasicArray(Int_t); continue; @@ -640,6 +652,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool + kHaveLoop: ReadBasicArrayLoop(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar + kHaveLoop: ReadBasicArrayLoop(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort + kHaveLoop: ReadBasicArrayLoop(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt + kHaveLoop: ReadBasicArrayLoop(Int_t); continue; @@ -660,6 +673,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, } // read pointer to an array of basic types array[n] + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: ReadBasicPointer(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: ReadBasicPointer(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: ReadBasicPointer(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: ReadBasicPointer(Int_t); continue; @@ -688,6 +702,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool + kHaveLoop: ReadBasicPointerLoop(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar + kHaveLoop: ReadBasicPointerLoop(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort + kHaveLoop: ReadBasicPointerLoop(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt + kHaveLoop: ReadBasicPointerLoop(Int_t); continue; diff --git a/io/src/TStreamerInfoWriteBuffer.cxx b/io/src/TStreamerInfoWriteBuffer.cxx index 35d6e9203c520b71ad5f7ff49b03b5daeb3ba89c..e95cb1c9bf934dbb5b982ebaf80b1649eecbd3b8 100644 --- a/io/src/TStreamerInfoWriteBuffer.cxx +++ b/io/src/TStreamerInfoWriteBuffer.cxx @@ -135,6 +135,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, // 'break' to avoid running the 2nd switch (see later in this // function). + case TStreamerInfo::kBool: WriteBasicType(Bool_t); continue; case TStreamerInfo::kChar: WriteBasicType(Char_t); continue; case TStreamerInfo::kShort: WriteBasicType(Short_t); continue; case TStreamerInfo::kInt: WriteBasicType(Int_t); continue; @@ -153,6 +154,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kBool + kHaveLoop: WriteBasicTypeLoop(Bool_t); continue; case TStreamerInfo::kChar + kHaveLoop: WriteBasicTypeLoop(Char_t); continue; case TStreamerInfo::kShort + kHaveLoop: WriteBasicTypeLoop(Short_t); continue; case TStreamerInfo::kInt + kHaveLoop: WriteBasicTypeLoop(Int_t); continue; @@ -174,6 +176,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, } // write array of basic types array[8] + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: WriteBasicArray(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: WriteBasicArray(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: WriteBasicArray(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: WriteBasicArray(Int_t); continue; @@ -191,6 +194,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool + kHaveLoop: WriteBasicArrayLoop(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar + kHaveLoop: WriteBasicArrayLoop(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort + kHaveLoop: WriteBasicArrayLoop(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt + kHaveLoop: WriteBasicArrayLoop(Int_t); continue; @@ -211,6 +215,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, } // write pointer to an array of basic types array[n] + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: WriteBasicPointer(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: WriteBasicPointer(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: WriteBasicPointer(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: WriteBasicPointer(Int_t); continue; @@ -237,6 +242,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool + kHaveLoop: WriteBasicPointerLoop(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar + kHaveLoop: WriteBasicPointerLoop(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort + kHaveLoop: WriteBasicPointerLoop(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt + kHaveLoop: WriteBasicPointerLoop(Int_t); continue; diff --git a/meta/inc/TDataType.h b/meta/inc/TDataType.h index e9b077bcc6795935f253e6de1e7f6b57454df9ed..469a6c4514b4552a3d3fddbbe11129d0473cbc2f 100644 --- a/meta/inc/TDataType.h +++ b/meta/inc/TDataType.h @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TDataType.h,v 1.10 2005/01/12 07:50:02 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TDataType.h,v 1.11 2005/01/12 20:04:36 brun Exp $ // Author: Rene Brun 04/02/95 /************************************************************************* @@ -34,7 +34,7 @@ enum EDataType { kChar_t = 1, kUChar_t = 11, kShort_t = 2, kUShort_t = 12, kInt_t = 3, kUInt_t = 13, kLong_t = 4, kULong_t = 14, kFloat_t = 5, kDouble_t = 8, kDouble32_t = 9, kchar = 10, - kBool_t = 11, kLong64_t = 16, kULong64_t = 17, kOther_t = -1, + kBool_t = 18, kLong64_t = 16, kULong64_t = 17, kOther_t = -1, kNoType_t = 0, kCounter = 6, kCharStar = 7, kBits = 15 /* for compatibility with TStreamerInfo */ }; diff --git a/meta/inc/TStreamerInfo.h b/meta/inc/TStreamerInfo.h index 1d254e30641217c86759d72c9d4283ed38375c9e..1d706ed792034ee4e58a8fe092d71915361870b7 100644 --- a/meta/inc/TStreamerInfo.h +++ b/meta/inc/TStreamerInfo.h @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerInfo.h,v 1.58 2004/10/19 11:00:09 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerInfo.h,v 1.59 2004/10/29 16:07:32 rdm Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -101,7 +101,7 @@ public: kChar = 1, kShort = 2, kInt = 3, kLong = 4, kFloat = 5, kDouble = 8, kDouble32= 9, kUChar = 11, kUShort = 12, kUInt = 13, kULong = 14, kBits = 15, - kLong64 = 16, kULong64 = 17, + kLong64 = 16, kULong64 = 17, kBool = 18, kObject = 61, kAny = 62, kObjectp = 63, kObjectP = 64, kTString = 65, kTObject = 66, kTNamed = 67, kAnyp = 68, kAnyP = 69, kAnyPnoVT = 70, kSTLp = 71, diff --git a/meta/src/TDataType.cxx b/meta/src/TDataType.cxx index 265fc6b6036c693de304af8f51ae1d2a055dfec8..761966c8883c87338330c6f400d1469c7bb8b49f 100644 --- a/meta/src/TDataType.cxx +++ b/meta/src/TDataType.cxx @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TDataType.cxx,v 1.16 2005/01/12 07:50:02 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TDataType.cxx,v 1.17 2005/01/12 20:04:36 brun Exp $ // Author: Rene Brun 04/02/95 /************************************************************************* @@ -86,6 +86,7 @@ const char *TDataType::GetTypeName(EDataType type) case 15: return "UInt_t"; case 16: return "Long64_t"; case 17: return "ULong64_t"; + case 18: return "Bool_t"; case kOther_t: return ""; case kNoType_t: return ""; case kchar: return "Char_t"; @@ -148,7 +149,7 @@ EDataType TDataType::GetType(const type_info &typeinfo) } else if (!strcmp(typeid(char).name(), typeinfo.name())) { retType = kChar_t; } else if (!strcmp(typeid(bool).name(), typeinfo.name())) { - retType = kUChar_t; + retType = kBool_t; } else if (!strcmp(typeid(float).name(), typeinfo.name())) { retType = kFloat_t; } else if (!strcmp(typeid(double).name(), typeinfo.name())) { @@ -255,8 +256,8 @@ void TDataType::SetType(const char *name) fType = kChar_t; fSize = sizeof(Char_t); } else if (!strcmp("bool", name)) { - fType = kUChar_t; - fSize = sizeof(UChar_t); + fType = kBool_t; + fSize = sizeof(Bool_t); } else if (!strcmp("float", name)) { fType = kFloat_t; fSize = sizeof(Float_t); diff --git a/meta/src/TStreamerInfo.cxx b/meta/src/TStreamerInfo.cxx index fc607aa9c80c19b9180b9619c9882be12696d48e..1ce0c8dd0d1d6239c835b9e72540a02d6d4ed629 100644 --- a/meta/src/TStreamerInfo.cxx +++ b/meta/src/TStreamerInfo.cxx @@ -1,4 +1,4 @@ -// @(#)root/meta:$Name: $:$Id: TStreamerInfo.cxx,v 1.216 2005/01/04 19:54:31 brun Exp $ +// @(#)root/meta:$Name: $:$Id: TStreamerInfo.cxx,v 1.217 2005/01/12 07:50:02 brun Exp $ // Author: Rene Brun 12/10/2000 /************************************************************************* @@ -1645,6 +1645,7 @@ Double_t TStreamerInfo::GetValueAux(Int_t type, void *ladd, Int_t k, Int_t len) { switch (type) { // basic types + case kBool: {Bool_t *val = (Bool_t*)ladd; return Double_t(*val);} case kChar: {Char_t *val = (Char_t*)ladd; return Double_t(*val);} case kShort: {Short_t *val = (Short_t*)ladd; return Double_t(*val);} case kInt: {Int_t *val = (Int_t*)ladd; return Double_t(*val);} @@ -1665,6 +1666,7 @@ Double_t TStreamerInfo::GetValueAux(Int_t type, void *ladd, Int_t k, Int_t len) case kBits: {UInt_t *val = (UInt_t*)ladd; return Double_t(*val);} // array of basic types array[8] + case kOffsetL + kBool: {Bool_t *val = (Bool_t*)ladd; return Double_t(val[k]);} case kOffsetL + kChar: {Char_t *val = (Char_t*)ladd; return Double_t(val[k]);} case kOffsetL + kShort: {Short_t *val = (Short_t*)ladd; return Double_t(val[k]);} case kOffsetL + kInt: {Int_t *val = (Int_t*)ladd; return Double_t(val[k]);} @@ -1699,6 +1701,7 @@ Double_t TStreamerInfo::GetValueAux(Int_t type, void *ladd, Int_t k, Int_t len) } // pointer to an array of basic types array[n] + case kOffsetP + kBool_t: READ_ARRAY(Bool_t) case kOffsetP + kChar_t: READ_ARRAY(Char_t) case kOffsetP + kShort_t: READ_ARRAY(Short_t) case kOffsetP + kInt_t: READ_ARRAY(Int_t) @@ -2076,6 +2079,7 @@ void TStreamerInfo::PrintValueAux(char *ladd, Int_t atype, switch (atype) { // basic types + case kBool: {Bool_t *val = (Bool_t* )ladd; printf("%d" ,*val); break;} case kChar: {Char_t *val = (Char_t* )ladd; printf("%d" ,*val); break;} case kShort: {Short_t *val = (Short_t* )ladd; printf("%d" ,*val); break;} case kInt: {Int_t *val = (Int_t* )ladd; printf("%d" ,*val); break;} @@ -2092,6 +2096,7 @@ void TStreamerInfo::PrintValueAux(char *ladd, Int_t atype, case kBits: {UInt_t *val = (UInt_t* )ladd; printf("%d" ,*val); break;} // array of basic types array[8] + case kOffsetL + kBool: {Bool_t *val = (Bool_t* )ladd; for(j=0;j<aleng;j++) { printf("%c " ,val[j]); PrintCR(j,aleng,20); } break;} case kOffsetL + kChar: {Char_t *val = (Char_t* )ladd; for(j=0;j<aleng;j++) { printf("%c " ,val[j]); PrintCR(j,aleng,20); } break;} case kOffsetL + kShort: {Short_t *val = (Short_t* )ladd; for(j=0;j<aleng;j++) { printf("%d " ,val[j]); PrintCR(j,aleng,10); } break;} case kOffsetL + kInt: {Int_t *val = (Int_t* )ladd; for(j=0;j<aleng;j++) { printf("%d " ,val[j]); PrintCR(j,aleng,10); } break;} @@ -2107,6 +2112,7 @@ void TStreamerInfo::PrintValueAux(char *ladd, Int_t atype, case kOffsetL + kULong64: {ULong64_t *val = (ULong64_t*)ladd; for(j=0;j<aleng;j++) { printf("%llu ",val[j]);PrintCR(j,aleng, 5); } break;} // pointer to an array of basic types array[n] + case kOffsetP + kBool: {Bool_t **val = (Bool_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,20); } break;} case kOffsetP + kChar: {Char_t **val = (Char_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,20); } break;} case kOffsetP + kShort: {Short_t **val = (Short_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,10); } break;} case kOffsetP + kInt: {Int_t **val = (Int_t** )ladd; for(j=0;j<*count;j++) { printf("%d " ,(*val)[j]); PrintCR(j,aleng,10); } break;} diff --git a/meta/src/TStreamerInfoReadBuffer.cxx b/meta/src/TStreamerInfoReadBuffer.cxx index 094bf606eefe2fd1e48af5cf8fe77655cbac2ffb..153ad9ce2daeb5f2d7834a8f04b478ee3e9e25d4 100644 --- a/meta/src/TStreamerInfoReadBuffer.cxx +++ b/meta/src/TStreamerInfoReadBuffer.cxx @@ -145,6 +145,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas switch (kase) { // skip basic types + case TStreamerInfo::kSkip + TStreamerInfo::kBool: SkipCBasicType(Bool_t); case TStreamerInfo::kSkip + TStreamerInfo::kChar: SkipCBasicType(Char_t); case TStreamerInfo::kSkip + TStreamerInfo::kShort: SkipCBasicType(Short_t); case TStreamerInfo::kSkip + TStreamerInfo::kInt: SkipCBasicType(Int_t); @@ -161,6 +162,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas case TStreamerInfo::kSkip + TStreamerInfo::kBits: SkipCBasicType(UInt_t); // skip array of basic types array[8] + case TStreamerInfo::kSkipL + TStreamerInfo::kBool: SkipCBasicArray(Bool_t); case TStreamerInfo::kSkipL + TStreamerInfo::kChar: SkipCBasicArray(Char_t); case TStreamerInfo::kSkipL + TStreamerInfo::kShort: SkipCBasicArray(Short_t); case TStreamerInfo::kSkipL + TStreamerInfo::kInt: SkipCBasicArray(Int_t); @@ -176,6 +178,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas case TStreamerInfo::kSkipL + TStreamerInfo::kULong64: SkipCBasicArray(ULong64_t); // skip pointer to an array of basic types array[n] + case TStreamerInfo::kSkipP + TStreamerInfo::kBool: SkipCBasicPointer(Bool_t); case TStreamerInfo::kSkipP + TStreamerInfo::kChar: SkipCBasicPointer(Char_t); case TStreamerInfo::kSkipP + TStreamerInfo::kShort: SkipCBasicPointer(Short_t); case TStreamerInfo::kSkipP + TStreamerInfo::kInt: SkipCBasicPointer(Int_t); @@ -323,6 +326,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas name u; \ b >> u; \ switch(fNewType[i]) { \ + case TStreamerInfo::kBool: {Bool_t *x=(Bool_t*)(arr[k]+ioffset); *x = (Bool_t)u; break;} \ case TStreamerInfo::kChar: {Char_t *x=(Char_t*)(arr[k]+ioffset); *x = (Char_t)u; break;} \ case TStreamerInfo::kShort: {Short_t *x=(Short_t*)(arr[k]+ioffset); *x = (Short_t)u; break;} \ case TStreamerInfo::kInt: {Int_t *x=(Int_t*)(arr[k]+ioffset); *x = (Int_t)u; break;} \ @@ -355,6 +359,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas DOLOOP { \ b.ReadFastArray(readbuf, len); \ switch(newtype) { \ + case TStreamerInfo::kBool: ConvCBasicArrayTo(Bool_t); \ case TStreamerInfo::kChar: ConvCBasicArrayTo(Char_t); \ case TStreamerInfo::kShort: ConvCBasicArrayTo(Short_t); \ case TStreamerInfo::kInt: ConvCBasicArrayTo(Int_t); \ @@ -401,6 +406,7 @@ Int_t TStreamerInfo::ReadBufferSkip(TBuffer &b, const T &arr, Int_t i, Int_t kas Int_t *l = (Int_t*)(arr[k]+imethod); \ if (*l>0) readbuf = new name[*l]; \ switch(newtype) { \ + case TStreamerInfo::kBool: ConvCBasicPointerTo(Bool_t); \ case TStreamerInfo::kChar: ConvCBasicPointerTo(Char_t); \ case TStreamerInfo::kShort: ConvCBasicPointerTo(Short_t); \ case TStreamerInfo::kInt: ConvCBasicPointerTo(Int_t); \ @@ -446,6 +452,7 @@ Int_t TStreamerInfo::ReadBufferConv(TBuffer &b, const T &arr, Int_t i, Int_t ka switch (kase) { // convert basic types + case TStreamerInfo::kConv + TStreamerInfo::kBool: ConvCBasicType(Bool_t); case TStreamerInfo::kConv + TStreamerInfo::kChar: ConvCBasicType(Char_t); case TStreamerInfo::kConv + TStreamerInfo::kShort: ConvCBasicType(Short_t); case TStreamerInfo::kConv + TStreamerInfo::kInt: ConvCBasicType(Int_t); @@ -466,6 +473,7 @@ Int_t TStreamerInfo::ReadBufferConv(TBuffer &b, const T &arr, Int_t i, Int_t ka case TStreamerInfo::kConv + TStreamerInfo::kBits: ConvCBasicType(UInt_t); // convert array of basic types array[8] + case TStreamerInfo::kConvL + TStreamerInfo::kBool: ConvCBasicArray(Bool_t); case TStreamerInfo::kConvL + TStreamerInfo::kChar: ConvCBasicArray(Char_t); case TStreamerInfo::kConvL + TStreamerInfo::kShort: ConvCBasicArray(Short_t); case TStreamerInfo::kConvL + TStreamerInfo::kInt: ConvCBasicArray(Int_t); @@ -485,6 +493,7 @@ Int_t TStreamerInfo::ReadBufferConv(TBuffer &b, const T &arr, Int_t i, Int_t ka #endif // convert pointer to an array of basic types array[n] + case TStreamerInfo::kConvP + TStreamerInfo::kBool: ConvCBasicPointer(Bool_t); case TStreamerInfo::kConvP + TStreamerInfo::kChar: ConvCBasicPointer(Char_t); case TStreamerInfo::kConvP + TStreamerInfo::kShort: ConvCBasicPointer(Short_t); case TStreamerInfo::kConvP + TStreamerInfo::kInt: ConvCBasicPointer(Int_t); @@ -584,6 +593,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, switch (kase + typeOffset) { // read basic types + case TStreamerInfo::kBool: ReadBasicType(Bool_t); continue; case TStreamerInfo::kChar: ReadBasicType(Char_t); continue; case TStreamerInfo::kShort: ReadBasicType(Short_t); continue; case TStreamerInfo::kInt: ReadBasicType(Int_t); continue; @@ -602,6 +612,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kBool + kHaveLoop: ReadBasicTypeLoop(Bool_t); continue; case TStreamerInfo::kChar + kHaveLoop: ReadBasicTypeLoop(Char_t); continue; case TStreamerInfo::kShort + kHaveLoop: ReadBasicTypeLoop(Short_t); continue; case TStreamerInfo::kInt + kHaveLoop: ReadBasicTypeLoop(Int_t); continue; @@ -623,6 +634,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, } // read array of basic types like array[8] + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: ReadBasicArray(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: ReadBasicArray(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: ReadBasicArray(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: ReadBasicArray(Int_t); continue; @@ -640,6 +652,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool + kHaveLoop: ReadBasicArrayLoop(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar + kHaveLoop: ReadBasicArrayLoop(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort + kHaveLoop: ReadBasicArrayLoop(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt + kHaveLoop: ReadBasicArrayLoop(Int_t); continue; @@ -660,6 +673,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, } // read pointer to an array of basic types array[n] + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: ReadBasicPointer(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: ReadBasicPointer(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: ReadBasicPointer(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: ReadBasicPointer(Int_t); continue; @@ -688,6 +702,7 @@ Int_t TStreamerInfo::ReadBuffer(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool + kHaveLoop: ReadBasicPointerLoop(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar + kHaveLoop: ReadBasicPointerLoop(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort + kHaveLoop: ReadBasicPointerLoop(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt + kHaveLoop: ReadBasicPointerLoop(Int_t); continue; diff --git a/meta/src/TStreamerInfoWriteBuffer.cxx b/meta/src/TStreamerInfoWriteBuffer.cxx index 35d6e9203c520b71ad5f7ff49b03b5daeb3ba89c..e95cb1c9bf934dbb5b982ebaf80b1649eecbd3b8 100644 --- a/meta/src/TStreamerInfoWriteBuffer.cxx +++ b/meta/src/TStreamerInfoWriteBuffer.cxx @@ -135,6 +135,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, // 'break' to avoid running the 2nd switch (see later in this // function). + case TStreamerInfo::kBool: WriteBasicType(Bool_t); continue; case TStreamerInfo::kChar: WriteBasicType(Char_t); continue; case TStreamerInfo::kShort: WriteBasicType(Short_t); continue; case TStreamerInfo::kInt: WriteBasicType(Int_t); continue; @@ -153,6 +154,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kBool + kHaveLoop: WriteBasicTypeLoop(Bool_t); continue; case TStreamerInfo::kChar + kHaveLoop: WriteBasicTypeLoop(Char_t); continue; case TStreamerInfo::kShort + kHaveLoop: WriteBasicTypeLoop(Short_t); continue; case TStreamerInfo::kInt + kHaveLoop: WriteBasicTypeLoop(Int_t); continue; @@ -174,6 +176,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, } // write array of basic types array[8] + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool: WriteBasicArray(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar: WriteBasicArray(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort: WriteBasicArray(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt: WriteBasicArray(Int_t); continue; @@ -191,6 +194,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetL + TStreamerInfo::kBool + kHaveLoop: WriteBasicArrayLoop(Bool_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kChar + kHaveLoop: WriteBasicArrayLoop(Char_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kShort + kHaveLoop: WriteBasicArrayLoop(Short_t); continue; case TStreamerInfo::kOffsetL + TStreamerInfo::kInt + kHaveLoop: WriteBasicArrayLoop(Int_t); continue; @@ -211,6 +215,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, } // write pointer to an array of basic types array[n] + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool: WriteBasicPointer(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar: WriteBasicPointer(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort: WriteBasicPointer(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt: WriteBasicPointer(Int_t); continue; @@ -237,6 +242,7 @@ Int_t TStreamerInfo::WriteBufferAux(TBuffer &b, const T &arr, Int_t first, continue; } + case TStreamerInfo::kOffsetP + TStreamerInfo::kBool + kHaveLoop: WriteBasicPointerLoop(Bool_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kChar + kHaveLoop: WriteBasicPointerLoop(Char_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kShort + kHaveLoop: WriteBasicPointerLoop(Short_t); continue; case TStreamerInfo::kOffsetP + TStreamerInfo::kInt + kHaveLoop: WriteBasicPointerLoop(Int_t); continue; diff --git a/table/inc/TTable.h b/table/inc/TTable.h index bd8eaf22c6af8473e0cd74b6bd7310f5b71b5c25..adc7f1da38fbb76b11527b9d58e98ad3307b9c17 100644 --- a/table/inc/TTable.h +++ b/table/inc/TTable.h @@ -1,4 +1,4 @@ -// @(#)root/star:$Name: $:$Id: TTable.h,v 1.7 2004/02/09 21:38:28 rdm Exp $ +// @(#)root/star:$Name: $:$Id: TTable.h,v 1.8 2004/07/23 16:52:53 brun Exp $ // Author: Valery Fine(fine@mail.cern.ch) 03/07/98 /************************************************************************* @@ -90,8 +90,8 @@ protected: public: enum EColumnType {kNAN, kFloat, kInt, kLong, kShort, kDouble, kUInt - ,kULong, kUShort, kUChar, kChar, kPtr - , kEndColumnType }; + ,kULong, kUShort, kUChar, kChar, kPtr, kBool + ,kEndColumnType }; enum ETableBits { kIsNotOwn = BIT(23) // if the TTable wrapper doesn't own the STAF table // As result of the Update() method for example diff --git a/table/src/TTable.cxx b/table/src/TTable.cxx index 054e34ceb14f4239b40b761e189b85ce11276db1..aa85a7203a010ecad3aab0a05adb679d71aa5c92 100644 --- a/table/src/TTable.cxx +++ b/table/src/TTable.cxx @@ -1,4 +1,4 @@ -// @(#)root/star:$Name: $:$Id: TTable.cxx,v 1.7 2004/07/23 16:52:53 brun Exp $ +// @(#)root/star:$Name: $:$Id: TTable.cxx,v 1.8 2004/10/29 16:07:32 rdm Exp $ // Author: Valery Fine(fine@bnl.gov) 03/07/98 // Copyright (C) Valery Fine (Valeri Faine) 1998-2001. All right reserved @@ -248,6 +248,9 @@ void TTable::AsString(void *buf, EColumnType type, Int_t width,ostream &out) con case kChar: out << setw(width) << *(char *)buf; break; + case kBool: + out << setw(width) << *(bool *)buf; + break; case kPtr: out << "->" << setw(width) << *(void **)buf; break; @@ -2265,6 +2268,7 @@ void TTable::Streamer(TBuffer &R__b) StreamElementIn(ULong); StreamElementIn(UChar); StreamElementIn(Char); + StreamElementIn(Bool); case TTableDescriptor::kPtr: { Ptr_t readPtr; R__b >> readPtr; @@ -2318,6 +2322,7 @@ void TTable::Streamer(TBuffer &R__b) StreamElementOut(ULong); StreamElementOut(UChar); StreamElementOut(Char); + StreamElementOut(Bool); case TTableDescriptor::kPtr: R__b << *(Ptr_t *)(row+nextCol->fOffset); break; diff --git a/table/src/TTableSorter.cxx b/table/src/TTableSorter.cxx index c2b3f34fb296d121d0817267ff11a62b6db8f6eb..29652bf9eed7628e3206758686d8f21ebd9ec5b3 100644 --- a/table/src/TTableSorter.cxx +++ b/table/src/TTableSorter.cxx @@ -1,6 +1,6 @@ -// @(#)root/star:$Name: $:$Id: TTableSorter.cxx,v 1.1 2004/05/19 00:56:42 fine Exp $ +// @(#)root/star:$Name: $:$Id: TTableSorter.cxx,v 1.3 2004/07/05 13:31:10 brun Exp $ // Author: Valery Fine 26/01/99 (E-mail: fine@bnl.gov) -// $Id: TTableSorter.cxx,v 1.1 2004/05/19 00:56:42 fine Exp $ +// $Id: TTableSorter.cxx,v 1.3 2004/07/05 13:31:10 brun Exp $ #include <stdlib.h> #include "TTableSorter.h" @@ -467,6 +467,8 @@ TTableSorter::~TTableSorter() return SelectSearch(ULong_t(value)); \ case TTable::kUShort: \ return SelectSearch(UShort_t(value)); \ + case TTable::kBool: \ + return SelectSearch(Bool_t(value)); \ case TTable::kUChar: \ return SelectSearch(UChar_t(value)); \ case TTable::kChar: \ @@ -477,7 +479,8 @@ TTableSorter::~TTableSorter() }; \ } \ Int_t TTableSorter::BSearch(valuetype value) const{ \ - union { Char_t Char; \ + union { Bool_t Bool; \ + Char_t Char; \ UChar_t UChar; \ Short_t Short; \ UShort_t UShort; \ @@ -510,6 +513,8 @@ Int_t TTableSorter::BSearch(valuetype value) const{ \ Value.UChar = UChar_t(value); break; \ case TTable::kChar: \ Value.Char = Char_t(value); break; \ + case TTable::kBool: \ + Value.Bool = Bool_t(value); break; \ default: \ return -1; \ break; \ @@ -581,6 +586,7 @@ BINARYSEARCH(valuetype) COMPAREVALUES(UShort_t) COMPAREVALUES(UChar_t) COMPAREVALUES(Char_t) + COMPAREVALUES(Bool_t) #define COMPAREORDER(valuetype) Compare##valuetype #define SEARCHORDER(valuetype) Search##valuetype @@ -821,6 +827,10 @@ void TTableSorter::SetSearchMethod() fSearchMethod = SEARCHORDER(Char_t); fCompareMethod = COMPAREORDER(Char_t); break; + case TTable::kBool: + fSearchMethod = SEARCHORDER(Bool_t); + fCompareMethod = COMPAREORDER(Bool_t); + break; default: break; @@ -888,6 +898,8 @@ void TTableSorter::LearnTable() fColType = TTable::kUChar; else if (!strcmp("char", types)) fColType= TTable::kChar; + else if (!strcmp("bool", types)) + fColType= TTable::kBool; if (fColType != TTable::kNAN) { Int_t dim = 0; diff --git a/tree/src/TBranchElement.cxx b/tree/src/TBranchElement.cxx index 46a4b3642000b1d841b236190fe1b51f0ed36639..095207c45505a9f76271e554d4ee212dd93c62c3 100644 --- a/tree/src/TBranchElement.cxx +++ b/tree/src/TBranchElement.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranchElement.cxx,v 1.161 2005/01/12 07:50:03 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranchElement.cxx,v 1.162 2005/01/13 20:07:46 brun Exp $ // Authors Rene Brun , Philippe Canal, Markus Frank 14/01/2001 /************************************************************************* @@ -1052,6 +1052,7 @@ void TBranchElement::FillLeaves(TBuffer &b) case 15: {b.WriteFastArray((UInt_t*) fAddress, n); break;} case 16: {b.WriteFastArray((Long64_t*) fAddress, n); break;} case 17: {b.WriteFastArray((ULong64_t*)fAddress, n); break;} + case 18: {b.WriteFastArray((Bool_t*) fAddress, n); break;} case 9: {Double_t *xx = (Double_t*)fAddress; for (Int_t ii=0;ii<n;ii++) b << (Float_t)xx[ii]; break;} @@ -1317,13 +1318,13 @@ const char *TBranchElement::GetTypeName() const return "Int_t"; } if (fStreamerType <=0 || fStreamerType >= 60) return fClassName.Data(); - const char *types[18] = {"", + const char *types[19] = {"", "Char_t","Short_t","Int_t","Long_t","Float_t", "Int_t","", "Double_t","Double32_t", "", "UChar_t","UShort_t","UInt_t","ULong_t","UInt_t", - "Long64_t","ULong64_t"}; + "Long64_t","ULong64_t","Bool_t"}; Int_t itype = fStreamerType%20; return types[itype]; } @@ -1649,6 +1650,7 @@ void TBranchElement::ReadLeaves(TBuffer &b) case 15: {length = ((UInt_t*) len_where)[k]; break;} case 16: {length = ((Long64_t*) len_where)[k]; break;} case 17: {length = ((ULong64_t*)len_where)[k]; break;} + case 18: {length = ((Bool_t*) len_where)[k]; break;} default: continue; } b >> isArray; @@ -1669,7 +1671,8 @@ void TBranchElement::ReadLeaves(TBuffer &b) case 15: {*where=new char[sizeof(UInt_t)*length]; b.ReadFastArray((UInt_t*) *where, length); break;} case 16: {*where=new char[sizeof(Long64_t)*length]; b.ReadFastArray((Long64_t*) *where, length); break;} case 17: {*where=new char[sizeof(ULong64_t)*length]; b.ReadFastArray((ULong64_t*)*where, length); break;} - } + case 18: {*where=new char[sizeof(Bool_t)*length]; b.ReadFastArray((Bool_t*) *where, length); break;} + } } return; } @@ -1693,6 +1696,7 @@ void TBranchElement::ReadLeaves(TBuffer &b) case 15: {b.ReadFastArray((UInt_t*) fAddress, n); break;} case 16: {b.ReadFastArray((Long64_t*)fAddress, n); break;} case 17: {b.ReadFastArray((ULong64_t*)fAddress, n); break;} + case 18: {b.ReadFastArray((Bool_t*) fAddress, n); break;} case 9: {Double_t *xx = (Double_t*)fAddress; Float_t afloat; for (Int_t ii=0;ii<n;ii++) { @@ -1722,6 +1726,7 @@ void TBranchElement::ReadLeaves(TBuffer &b) case 15: {b.ReadFastArray((UInt_t*) fAddress, n); break;} case 16: {b.ReadFastArray((Long64_t*) fAddress, n); break;} case 17: {b.ReadFastArray((ULong64_t*)fAddress, n); break;} + case 18: {b.ReadFastArray((Bool_t*) fAddress, n); break;} case 9: {Double_t *xx = (Double_t*)fAddress; Float_t afloat; for (Int_t ii=0;ii<n;ii++) { diff --git a/tree/src/TTree.cxx b/tree/src/TTree.cxx index 4d2d74bea50df2ba26c2e4d569f135dcea733a3d..9c133255fb0ddbf24e84ea1eeca0b5ab0e352187 100644 --- a/tree/src/TTree.cxx +++ b/tree/src/TTree.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TTree.cxx,v 1.225 2005/01/13 10:10:01 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TTree.cxx,v 1.226 2005/01/13 20:07:46 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -1127,7 +1127,7 @@ TBranch *TTree::BranchOld(const char *name, const char *classname, void *addobj, // char array by the fact that there is NO specified // size for a string (see next if (code == 1) sprintf(leaflist,"%s[%s]/%s",&rdname[0],index,"B"); - else if (code == 11) + else if (code == 11 || code == 18) sprintf(leaflist,"%s[%s]/%s",&rdname[0],index,"b"); else if (code == 2) sprintf(leaflist,"%s[%s]/%s",&rdname[0],index,"S"); @@ -1190,7 +1190,7 @@ TBranch *TTree::BranchOld(const char *name, const char *classname, void *addobj, //*-*-------------Data Member is a basic data type---------- if (dm->IsBasic()) { if (code == 1) sprintf(leaflist,"%s/%s",rdname,"B"); - else if (code == 11) sprintf(leaflist,"%s/%s",rdname,"b"); + else if (code == 11 || code ==18) sprintf(leaflist,"%s/%s",rdname,"b"); else if (code == 2) sprintf(leaflist,"%s/%s",rdname,"S"); else if (code == 12) sprintf(leaflist,"%s/%s",rdname,"s"); else if (code == 3) sprintf(leaflist,"%s/%s",rdname,"I"); diff --git a/treeplayer/inc/TBranchProxy.h b/treeplayer/inc/TBranchProxy.h index 5f060cf7f2cd8923ea9a8bcc1fa4bea1200b329b..e51c34a63652443993323eb7a62cdda08bdc0bfb 100644 --- a/treeplayer/inc/TBranchProxy.h +++ b/treeplayer/inc/TBranchProxy.h @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TBranchProxy.h,v 1.4 2004/07/29 18:09:40 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TBranchProxy.h,v 1.5 2004/10/18 21:07:05 brun Exp $ // Author: Philippe Canal 01/06/2004 /************************************************************************* @@ -576,6 +576,7 @@ namespace ROOT { typedef TImpProxy<Long64_t> TLong64Proxy; typedef TImpProxy<Short_t> TShortProxy; typedef TImpProxy<Char_t> TCharProxy; + typedef TImpProxy<Bool_t> TBoolProxy; typedef TArrayProxy<Double_t> TArrayDoubleProxy; typedef TArrayProxy<Double32_t> TArrayDouble32Proxy; @@ -590,6 +591,7 @@ namespace ROOT { typedef TArrayProxy<Long64_t> TArrayLong64Proxy; typedef TArrayProxy<UShort_t> TArrayShortProxy; //specialized ! typedef TArrayProxy<Char_t> TArrayCharProxy; + typedef TArrayProxy<Bool_t> TArrayBoolProxy; typedef TClaImpProxy<Double_t> TClaDoubleProxy; typedef TClaImpProxy<Double32_t> TClaDouble32Proxy; @@ -604,6 +606,7 @@ namespace ROOT { typedef TClaImpProxy<Long64_t> TClaLong64Proxy; typedef TClaImpProxy<Short_t> TClaShortProxy; typedef TClaImpProxy<Char_t> TClaCharProxy; + typedef TClaImpProxy<Bool_t> TClaBoolProxy; typedef TClaArrayProxy<Double_t> TClaArrayDoubleProxy; typedef TClaArrayProxy<Double32_t> TClaArrayDouble32Proxy; @@ -617,6 +620,7 @@ namespace ROOT { typedef TClaArrayProxy<Long_t> TClaArrayLongProxy; typedef TClaArrayProxy<Long64_t> TClaArrayLong64Proxy; typedef TClaArrayProxy<UShort_t> TClaArrayShortProxy; + typedef TClaArrayProxy<Bool_t> TClaArrayBoolProxy; //specialized ! typedef TClaArrayProxy<Char_t> TClaArrayCharProxy; } // namespace ROOT diff --git a/treeplayer/src/TFormLeafInfo.cxx b/treeplayer/src/TFormLeafInfo.cxx index fcf5d1965bd31f19d5fdab5d237ef7e171c7ed21..0d4e79adcebefb6eb2796d79aa53b262b4d90674 100644 --- a/treeplayer/src/TFormLeafInfo.cxx +++ b/treeplayer/src/TFormLeafInfo.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TFormLeafInfo.cxx,v 1.11 2005/01/18 21:05:43 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TFormLeafInfo.cxx,v 1.12 2005/01/19 07:52:45 brun Exp $ // Author: Philippe Canal 01/06/2004 /************************************************************************* @@ -175,6 +175,7 @@ char* TFormLeafInfo::GetObjectAddress(TLeafElement* leaf, Int_t &instance) case TStreamerInfo::kSTL: thisobj = (char*)(address+offset); break; + case kBool_t: case kChar_t: case kUChar_t: case kShort_t: @@ -190,6 +191,7 @@ char* TFormLeafInfo::GetObjectAddress(TLeafElement* leaf, Int_t &instance) case kDouble32_t: case kchar: case TStreamerInfo::kCounter: + case TStreamerInfo::kOffsetL + kBool_t: case TStreamerInfo::kOffsetL + kChar_t: case TStreamerInfo::kOffsetL + kUChar_t: case TStreamerInfo::kOffsetL + kShort_t: @@ -286,6 +288,7 @@ Bool_t TFormLeafInfo::IsInteger() const switch (atype) { // basic types case kchar: + case kBool_t: case kChar_t: case kUChar_t: case kShort_t: @@ -497,6 +500,7 @@ void* TFormLeafInfo::GetLocalValuePointer(char *thisobj, Int_t instance) switch (fElement->GetNewType()) { // basic types + case kBool_t: case kChar_t: case kUChar_t: case kShort_t: @@ -515,6 +519,8 @@ void* TFormLeafInfo::GetLocalValuePointer(char *thisobj, Int_t instance) return (Int_t*)(thisobj+fOffset); // array of basic types array[8] + case TStreamerInfo::kOffsetL + kBool_t : + {Bool_t *val = (Bool_t*)(thisobj+fOffset); return &(val[instance]);} case TStreamerInfo::kOffsetL + kChar_t : {Char_t *val = (Char_t*)(thisobj+fOffset); return &(val[instance]);} case TStreamerInfo::kOffsetL + kShort_t: @@ -559,6 +565,7 @@ void* TFormLeafInfo::GetLocalValuePointer(char *thisobj, Int_t instance) } // pointer to an array of basic types array[n] + case TStreamerInfo::kOffsetP + kBool_t: GET_ARRAY(Bool_t) case TStreamerInfo::kOffsetP + kChar_t: GET_ARRAY(Char_t) case TStreamerInfo::kOffsetP + kShort_t: GET_ARRAY(Short_t) case TStreamerInfo::kOffsetP + kInt_t: GET_ARRAY(Int_t) @@ -672,6 +679,7 @@ Double_t TFormLeafInfo::ReadValue(char *thisobj, Int_t instance) // return fInfo->ReadValue(thisobj+fOffset,fElement->GetNewType(),instance,1); switch (fElement->GetNewType()) { // basic types + case kBool_t: return (Double_t)(*(Bool_t*)(thisobj+fOffset)); case kChar_t: return (Double_t)(*(Char_t*)(thisobj+fOffset)); case kUChar_t: return (Double_t)(*(UChar_t*)(thisobj+fOffset)); case kShort_t: return (Double_t)(*(Short_t*)(thisobj+fOffset)); @@ -690,6 +698,8 @@ Double_t TFormLeafInfo::ReadValue(char *thisobj, Int_t instance) return (Double_t)(*(Int_t*)(thisobj+fOffset)); // array of basic types array[8] + case TStreamerInfo::kOffsetL + kBool_t : + {Bool_t *val = (Bool_t*)(thisobj+fOffset); return Double_t(val[instance]);} case TStreamerInfo::kOffsetL + kChar_t : {Char_t *val = (Char_t*)(thisobj+fOffset); return Double_t(val[instance]);} case TStreamerInfo::kOffsetL + kShort_t: @@ -738,6 +748,7 @@ Double_t TFormLeafInfo::ReadValue(char *thisobj, Int_t instance) } // pointer to an array of basic types array[n] + case TStreamerInfo::kOffsetP + kBool_t: READ_ARRAY(Bool_t) case TStreamerInfo::kOffsetP + kChar_t: READ_ARRAY(Char_t) case TStreamerInfo::kOffsetP + kShort_t: READ_ARRAY(Short_t) case TStreamerInfo::kOffsetP + kInt_t: READ_ARRAY(Int_t) diff --git a/treeplayer/src/TTreeProxyGenerator.cxx b/treeplayer/src/TTreeProxyGenerator.cxx index 7a3bd1b4b0242d4946fc7c7800342b3d917c6e71..e6891c8e4d20ca090e995a8d30eb96c66becf272 100644 --- a/treeplayer/src/TTreeProxyGenerator.cxx +++ b/treeplayer/src/TTreeProxyGenerator.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TTreeProxyGenerator.cxx,v 1.9 2004/12/04 19:47:00 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TTreeProxyGenerator.cxx,v 1.10 2005/01/05 22:22:13 brun Exp $ // Author: Philippe Canal 06/06/2004 /************************************************************************* @@ -439,6 +439,7 @@ namespace ROOT { bool 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; } @@ -457,6 +458,7 @@ namespace ROOT { case TStreamerInfo::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; } @@ -473,6 +475,7 @@ namespace ROOT { case TStreamerInfo::kOffsetL + TStreamerInfo::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; } @@ -1268,6 +1271,7 @@ namespace ROOT { bool 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; } @@ -1286,6 +1290,7 @@ namespace ROOT { case TStreamerInfo::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; } @@ -1302,6 +1307,7 @@ namespace ROOT { case TStreamerInfo::kOffsetL + TStreamerInfo::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; } diff --git a/xml/src/TXMLPlayer.cxx b/xml/src/TXMLPlayer.cxx index 393c07e658c3a52febc311687b158ac2d9d8390e..478669fdf237656c51c3f58f33ebfb0e4fad5148 100644 --- a/xml/src/TXMLPlayer.cxx +++ b/xml/src/TXMLPlayer.cxx @@ -1,4 +1,4 @@ -// @(#)root/xml:$Name: $:$Id: TXMLPlayer.cxx,v 1.4 2004/06/30 09:34:27 brun Exp $ +// @(#)root/xml:$Name: $:$Id: TXMLPlayer.cxx,v 1.5 2004/12/20 17:15:48 brun Exp $ // Author: Sergey Linev, Rene Brun 10.05.2004 /************************************************************************* @@ -227,6 +227,7 @@ TString TXMLPlayer::GetMemberTypeName(TDataMember* member) if ((first=='B') || (first=='b')) return "bool"; else return "unsigned char"; } + case kBool_t: return "bool"; case kUShort_t: return "unsigned short"; case kUInt_t: return "unsigned int"; case kULong_t: return "unsigned long"; @@ -259,6 +260,7 @@ TString TXMLPlayer::GetBasicTypeName(TStreamerElement* el) if ((first=='B') || (first=='b')) return "bool"; else 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"; @@ -290,6 +292,7 @@ TString TXMLPlayer::GetBasicTypeReaderMethodName(Int_t type, const char* realnam if (isbool) return "ReadBool"; else return "ReadUChar"; } + case TStreamerInfo::kBool: return "ReadBool"; case TStreamerInfo::kUShort: return "ReadUShort"; case TStreamerInfo::kUInt: return "ReadUInt"; case TStreamerInfo::kULong: return "ReadULong"; @@ -446,6 +449,7 @@ 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: @@ -468,6 +472,7 @@ 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: @@ -489,6 +494,7 @@ 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: @@ -642,6 +648,7 @@ 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: @@ -666,6 +673,7 @@ 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: @@ -686,6 +694,7 @@ 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: @@ -810,6 +819,7 @@ 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: @@ -868,6 +878,7 @@ 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: