Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TStreamerInfoReadBuffer.cxx File Reference
#include "TBuffer.h"
#include "TFile.h"
#include "TClass.h"
#include "TBufferFile.h"
#include "TClonesArray.h"
#include "TError.h"
#include "TRef.h"
#include "TProcessID.h"
#include "TStreamer.h"
#include "TStreamerElement.h"
#include "TStreamerInfo.h"
#include "TVirtualCollectionProxy.h"
#include "TContainerConverters.h"
#include "TVirtualArray.h"
#include "TVirtualObject.h"
#include "ThreadLocalStorage.h"

Macros

#define ConvCBasicArray(name, ReadArrayFunc)
#define ConvCBasicArrayTo(newtype)
#define ConvCBasicPointer(name, ReadArrayFunc)
#define ConvCBasicPointerTo(newtype, ReadArrayFunc)
#define ConvCBasicPointerToOutOfRange(newtype, ReadArrayFunc)
#define ConvCBasicType(name, stream)
#define DOLOOP   for(Int_t k=0; k<narr; ++k)
#define ReadBasicArray(name)
#define ReadBasicArrayElem(name, index)
#define ReadBasicArrayLoop(name)
#define ReadBasicPointer(name)
#define ReadBasicPointerElem(name, index)
#define ReadBasicPointerLoop(name)
#define ReadBasicType(name)
#define ReadBasicTypeElem(name, index)
#define ReadBasicTypeLoop(name)
#define SkipCBasicArray(name, ReadArrayFunc)
#define SkipCBasicPointer(name, ReadArrayFunc)
#define SkipCBasicType(name)
#define SkipCDouble32(name)
#define SkipCFloat16(name)

Functions

static TStreamerElement *& CurrentElement ()

Macro Definition Documentation

◆ ConvCBasicArray

#define ConvCBasicArray ( name,
ReadArrayFunc )
Value:
{ \
int j, len = compinfo->fLength; \
name* readbuf = new name[len]; \
int newtype = compinfo->fNewType%20; \
DOLOOP { \
b.ReadArrayFunc(readbuf, len); \
switch(newtype) { \
} \
} \
delete[] readbuf; \
break; \
}
#define b(i)
Definition RSha256.hxx:100
unsigned short UShort_t
Unsigned Short integer 2 bytes (unsigned short).
Definition RtypesCore.h:54
int Int_t
Signed integer 4 bytes (int).
Definition RtypesCore.h:59
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char).
Definition RtypesCore.h:52
char Char_t
Character 1 byte (char).
Definition RtypesCore.h:51
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
Definition RtypesCore.h:60
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
Definition RtypesCore.h:69
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
Definition RtypesCore.h:68
bool Bool_t
Boolean (0=false, 1=true) (bool).
Definition RtypesCore.h:77
short Short_t
Signed Short integer 2 bytes (short).
Definition RtypesCore.h:53
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
long long Long64_t
Portable signed long integer 8 bytes.
Definition RtypesCore.h:83
unsigned long long ULong64_t
Portable unsigned long integer 8 bytes.
Definition RtypesCore.h:84
float Float_t
Float 4 bytes (float).
Definition RtypesCore.h:71
#define DOLOOP(x)
char name[80]
Definition TGX11.cxx:148
#define ConvCBasicArrayTo(newtype)
@ kUChar
Equal to TDataType's kchar.

Definition at line 427 of file TStreamerInfoReadBuffer.cxx.

◆ ConvCBasicArrayTo

#define ConvCBasicArrayTo ( newtype)
Value:
{ \
newtype *f=(newtype*)(arr[k]+ioffset); \
for (j=0;j<len;j++) f[j] = (newtype)readbuf[j]; \
break; \
}
#define f(i)
Definition RSha256.hxx:104

Definition at line 420 of file TStreamerInfoReadBuffer.cxx.

◆ ConvCBasicPointer

#define ConvCBasicPointer ( name,
ReadArrayFunc )

Definition at line 479 of file TStreamerInfoReadBuffer.cxx.

◆ ConvCBasicPointerTo

#define ConvCBasicPointerTo ( newtype,
ReadArrayFunc )
Value:
{ \
newtype **f=(newtype**)(arr[k]+ioffset); \
for (j=0;j<len;j++) { \
delete [] f[j]; \
f[j] = new newtype[*l]; \
newtype *af = f[j]; \
b.ReadArrayFunc(readbuf, *l); \
for (jj=0;jj<*l;jj++) af[jj] = (newtype)readbuf[jj]; \
} \
break; \
}
TLine l
Definition textangle.C:4

Definition at line 466 of file TStreamerInfoReadBuffer.cxx.

◆ ConvCBasicPointerToOutOfRange

#define ConvCBasicPointerToOutOfRange ( newtype,
ReadArrayFunc )
Value:
{ \
newtype **f=(newtype**)(arr[k]+ioffset); \
for (j=0;j<len;j++) { \
delete [] f[j]; \
f[j] = 0; \
} \
break; \
}

Definition at line 456 of file TStreamerInfoReadBuffer.cxx.

◆ ConvCBasicType

#define ConvCBasicType ( name,
stream )
Value:
{ \
DOLOOP { \
name u; \
stream; \
switch(compinfo->fNewType) { \
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;} \
case TStreamerInfo::kLong: {Long_t *x=(Long_t*)(arr[k]+ioffset); *x = (Long_t)u; break;} \
case TStreamerInfo::kLong64: {Long64_t *x=(Long64_t*)(arr[k]+ioffset); *x = (Long64_t)u; break;} \
case TStreamerInfo::kFloat: {Float_t *x=(Float_t*)(arr[k]+ioffset); *x = (Float_t)u; break;} \
case TStreamerInfo::kFloat16: {Float_t *x=(Float_t*)(arr[k]+ioffset); *x = (Float_t)u; break;} \
case TStreamerInfo::kDouble: {Double_t *x=(Double_t*)(arr[k]+ioffset); *x = (Double_t)u; break;} \
case TStreamerInfo::kDouble32:{Double_t *x=(Double_t*)(arr[k]+ioffset); *x = (Double_t)u; break;} \
case TStreamerInfo::kUChar: {UChar_t *x=(UChar_t*)(arr[k]+ioffset); *x = (UChar_t)u; break;} \
case TStreamerInfo::kUShort: {UShort_t *x=(UShort_t*)(arr[k]+ioffset); *x = (UShort_t)u; break;} \
case TStreamerInfo::kUInt: {UInt_t *x=(UInt_t*)(arr[k]+ioffset); *x = (UInt_t)u; break;} \
case TStreamerInfo::kULong: {ULong_t *x=(ULong_t*)(arr[k]+ioffset); *x = (ULong_t)u; break;} \
case TStreamerInfo::kULong64: {ULong64_t*x=(ULong64_t*)(arr[k]+ioffset);*x = (ULong64_t)u;break;} \
} \
} break; \
}
Double_t x[n]
Definition legend1.C:17

Definition at line 395 of file TStreamerInfoReadBuffer.cxx.

◆ DOLOOP

#define DOLOOP   for(Int_t k=0; k<narr; ++k)

Definition at line 53 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicArray

#define ReadBasicArray ( name)
Value:
{ \
ReadBasicArrayElem(name,0); \
}

Definition at line 77 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicArrayElem

#define ReadBasicArrayElem ( name,
index )
Value:
{ \
name *x=(name*)(arr[index]+ioffset); \
b.ReadFastArray(x,compinfo[i]->fLength); \
}

Definition at line 71 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicArrayLoop

#define ReadBasicArrayLoop ( name)
Value:
{ \
for(Int_t k=0; k<narr; ++k) ReadBasicArrayElem(name,k) \
}
#define ReadBasicArrayElem(name, index)

Definition at line 82 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicPointer

#define ReadBasicPointer ( name)
Value:
{ \
const int imethod = compinfo[i]->fMethod+eoffset; \
ReadBasicPointerElem(name,0); \
}

Definition at line 107 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicPointerElem

#define ReadBasicPointerElem ( name,
index )
Value:
{ \
Char_t isArray; \
b >> isArray; \
Int_t *l = (Int_t*)(arr[index]+imethod); \
if (*l < 0 || *l > b.BufferSize()) continue; \
name **f = (name**)(arr[index]+ioffset); \
int j; \
if (isArray) for(j=0;j<compinfo[i]->fLength;j++) { \
delete [] f[j]; \
f[j] = 0; if (*l <=0) continue; \
f[j] = new name[*l]; \
b.ReadFastArray(f[j],*l); \
} \
else for(j=0;j<compinfo[i]->fLength;j++) { \
delete [] f[j]; \
f[j] = 0; \
} \
}
if(name) objname
for(Int_t i=0;i< n;i++)
Definition legend1.C:18

Definition at line 87 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicPointerLoop

#define ReadBasicPointerLoop ( name)
Value:
{ \
int imethod = compinfo[i]->fMethod+eoffset; \
for(int k=0; k<narr; ++k) { \
ReadBasicPointerElem(name,k); \
} \
}

Definition at line 113 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicType

#define ReadBasicType ( name)
Value:
{ \
ReadBasicTypeElem(name,0); \
}

Definition at line 61 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicTypeElem

#define ReadBasicTypeElem ( name,
index )
Value:
{ \
name *x=(name*)(arr[index]+ioffset); \
b >> *x; \
}

Definition at line 55 of file TStreamerInfoReadBuffer.cxx.

◆ ReadBasicTypeLoop

#define ReadBasicTypeLoop ( name)
Value:
{ \
for(Int_t k=0; k<narr; ++k) ReadBasicTypeElem(name,k); \
}
#define ReadBasicTypeElem(name, index)

Definition at line 66 of file TStreamerInfoReadBuffer.cxx.

◆ SkipCBasicArray

#define SkipCBasicArray ( name,
ReadArrayFunc )
Value:
{ \
name* readbuf = new name[compinfo->fLength]; \
DOLOOP { \
b.ReadArrayFunc(readbuf, compinfo->fLength); \
} \
delete[] readbuf; \
break; \
}

Definition at line 142 of file TStreamerInfoReadBuffer.cxx.

◆ SkipCBasicPointer

#define SkipCBasicPointer ( name,
ReadArrayFunc )
Value:
{ \
Int_t addCounter = -111; \
if ((imethod>0) && (compinfo->fMethod>0)) addCounter = -1; \
if((addCounter<-1) && (aElement!=0) && (aElement->IsA()==TStreamerBasicPointer::Class())) { \
TStreamerElement* elemCounter = (TStreamerElement*) thisVar->GetElements()->FindObject(((TStreamerBasicPointer*)aElement)->GetCountName()); \
if (elemCounter) addCounter = elemCounter->GetTObjectOffset(); \
} \
if (addCounter>=-1) { \
int len = aElement->GetArrayDim()?aElement->GetArrayLength():1; \
Char_t isArray; \
DOLOOP { \
b >> isArray; \
char *arr_k = arr[k]; \
Int_t *l = (addCounter==-1 && arr_k) ? (Int_t*)(arr_k+imethod) : &addCounter; \
if (*l>0) { \
name* readbuf = new name[*l]; \
for (int j=0;j<len;j++) \
b.ReadArrayFunc(readbuf, *l); \
delete[] readbuf; \
} \
} \
} \
break; \
}
TClass * IsA() const override
static TClass * Class()
Definition Class.C:29
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
Definition TObject.cxx:425
Describe one element (data member) to be Streamed.
Int_t GetArrayDim() const
Int_t GetArrayLength() const
Int_t GetTObjectOffset() const

Definition at line 152 of file TStreamerInfoReadBuffer.cxx.

◆ SkipCBasicType

#define SkipCBasicType ( name)
Value:
{ \
name dummy; \
DOLOOP{ b >> dummy; } \
break; \
}

Definition at line 121 of file TStreamerInfoReadBuffer.cxx.

◆ SkipCDouble32

#define SkipCDouble32 ( name)
Value:
{ \
name dummy; \
DOLOOP { b.ReadDouble32(&dummy,aElement); }\
break; \
}

Definition at line 135 of file TStreamerInfoReadBuffer.cxx.

◆ SkipCFloat16

#define SkipCFloat16 ( name)
Value:
{ \
name dummy; \
DOLOOP { b.ReadFloat16(&dummy,aElement); } \
break; \
}

Definition at line 128 of file TStreamerInfoReadBuffer.cxx.

Function Documentation

◆ CurrentElement()

TStreamerElement *& CurrentElement ( )
static

Definition at line 32 of file TStreamerInfoReadBuffer.cxx.