40#if (defined(__linux) || defined(__APPLE__)) && defined(__i386__) && \
79 fInfo(nullptr), fInfoStack()
89 fInfo(nullptr), fInfoStack()
106 fInfo(nullptr), fInfoStack()
148 char *
sw = (
char *)
x;
158 char *
sw = (
char *)
x;
232 if (obj ==
nullptr) {
233 Error(
"TBufferFile::ReadStdString",
"The std::string address is nullptr but should not");
248 obj->resize(
nbig,
'\0');
252 obj->resize(
nwh,
'\0');
293 if (
nch == std::numeric_limits<Int_t>::max()) {
294 Error(
"ReadCharStar",
"Cannot allocate buffer: maximum capacity exceeded (%d bytes)!", std::numeric_limits<Int_t>::max());
329 &&
"Byte count position is after the end of the buffer");
376 const char *
name =
clss ?
clss->GetName() : classname ? classname : 0;
380 Error(
"CheckByteCount",
"object of class %s read too few bytes: %d instead of %d",
384 Error(
"CheckByteCount",
"object of class %s read too many bytes: %d instead of %d",
387 Warning(
"CheckByteCount",
"%s::Streamer() not in sync with data on file %s, fix Streamer()",
390 Warning(
"CheckByteCount",
"%s::Streamer() not in sync with data, fix Streamer()",
396 Error(
"CheckByteCount",
397 "Byte count probably corrupted around buffer position %d:\n\t%d for a possible maximum of %d",
450 if (
ele &&
ele->GetFactor() != 0) {
472 if (
ele &&
ele->GetFactor() != 0) {
517 temp.fIntValue <<= 23;
519 if(1<<(
nbits+1) &
theMan) temp.fFloatValue = -temp.fFloatValue;
520 ptr[0] = temp.fFloatValue;
552 temp.fIntValue <<= 23;
554 if(1<<(
nbits+1) &
theMan) temp.fFloatValue = -temp.fFloatValue;
555 ptr[0] = (
Double_t)temp.fFloatValue;
620 if (
ele &&
ele->GetFactor() != 0) {
689 if (
ele &&
ele->GetFactor() != 0) {
745 for (
int i = 0; i <
n; i++)
801 for (
int i = 0; i <
n; i++)
834 for (
int i = 0; i <
n; i++)
889 for (
int i = 0; i <
n; i++)
921 for (
int i = 0; i <
n; i++)
950 for (
int i = 0; i <
n; i++)
1019 if (
sizeof(
Bool_t) > 1) {
1020 for (
int i = 0; i <
n; i++)
1074 for (
int i = 0; i <
n; i++)
1106 for (
int i = 0; i <
n; i++)
1159 for (
int i = 0; i <
n; i++)
1190 for (
int i = 0; i <
n; i++)
1218 for (
int i = 0; i <
n; i++)
1277 if (
sizeof(
Bool_t) > 1) {
1278 for (
int i = 0; i <
n; i++)
1340 for (
int i = 0; i <
n; i++)
1362 for (
int i = 0; i <
n; i++)
1396 for (
int i = 0; i <
n; i++)
1417 for (
int i = 0; i <
n; i++)
1435 for (
int i = 0; i <
n; i++)
1457 if (
ele &&
ele->GetFactor() != 0) {
1461 for (
int j=0;
j <
n;
j++) {
1477 for (i = 0; i <
n; i++) {
1498 for (
int j=0;
j <
n;
j++) {
1520 for (
Int_t i = 0; i <
n; i++) {
1544 if (
ele &&
ele->GetFactor() != 0) {
1548 for (
int j=0;
j <
n;
j++) {
1558 for (i = 0; i <
n; i++) {
1571 for (i = 0; i <
n; i++) {
1593 for (
int j=0;
j <
n;
j++) {
1609 for (
Int_t i = 0; i <
n; i++) {
1622 for (
Int_t i = 0; i <
n; i++) {
1644 (*streamer)(*
this,start,0);
1649 char *obj = (
char*)start;
1671 if (!start[
j]) start[
j] = cl->
New();
1675 (*streamer)(*
this,(
void*)start,0);
1683 void *old = start[
j];
1685 if (old && old!=start[
j] &&
1711 if (!start[
j]) start[
j] = ((
TClass*)cl)->New();
1734 if (
sizeof(
Bool_t) > 1) {
1735 for (
int i = 0; i <
n; i++)
1784 for (
int i = 0; i <
n; i++)
1814 for (
int i = 0; i <
n; i++)
1878 for (
int i = 0; i <
n; i++)
1907 for (
int i = 0; i <
n; i++)
1933 for (
int i = 0; i <
n; i++)
1993 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2000 if (
sizeof(
Bool_t) > 1) {
2001 for (
int i = 0; i <
n; i++)
2021 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2044 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2074 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2086 for (
int i = 0; i <
n; i++)
2107 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2119 for (
int i = 0; i <
n; i++)
2140 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2164 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2186 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2194 for (
int i = 0; i <
n; i++)
2214 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2226 for (
int i = 0; i <
n; i++)
2247 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2255 for (
int i = 0; i <
n; i++)
2282 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2289 if (
ele &&
ele->GetFactor()) {
2296 for (
int j = 0;
j <
n;
j++) {
2315 for (i = 0; i <
n; i++) {
2348 Fatal(
"WriteFastArray",
"Not enough space left in the buffer (1GB limit). %lld elements is greater than the max left of %d",
n,
maxElements);
2355 if (
ele &&
ele->GetFactor()) {
2362 for (
int j = 0;
j <
n;
j++) {
2375 for (i = 0; i <
n; i++) {
2387 for (i = 0; i <
n; i++) {
2411 (*streamer)(*
this, start, 0);
2415 char *obj = (
char*)start;
2419 Fatal(
"WriteFastArray",
"Negative number of elements %lld",
n);
2425 ((
TClass*)cl)->Streamer(obj,*
this);
2445 (*streamer)(*
this,(
void*)start,0);
2448 if (
n < 0)
return -1;
2473 if (!start[
j]) start[
j] = ((
TClass*)cl)->New();
2474 ((
TClass*)cl)->Streamer(start[
j],*
this);
2540 if (!
clCast->GetSchemaRules() ||
2541 !
clCast->GetSchemaRules()->HasRuleWithSourceClass(
clRef->GetName()))
2544 Error(
"ReadObject",
"got object of wrong class! requested %s but got %s",
2553 Info(
"ReadObjectAny",
"Using Converter StreamerInfo from %s to %s",
clRef->GetName(),
clCast->GetName());
2560 Error(
"ReadObject",
"trying to read an emulated class (%s) to store in a compiled pointer (%s)",
2572 if (obj == (
void*) -1) obj =
nullptr;
2598 Error(
"ReadObject",
"object tag too large, I/O buffer corrupted");
2610 Error(
"ReadObject",
"Got object of wrong class (Got %s while expecting %s)",
2628 obj = (
char*)
clRef->New();
2630 Error(
"ReadObject",
"could not create object of class %s",
2693 Warning(
"WriteObjectAny",
"since %s has no public constructor\n"
2694 "\twhich can be called without argument, objects of this class\n"
2695 "\tcan not be read with the current library. You will need to\n"
2696 "\tadd a default constructor before attempting to read it.",
2792 Error(
"ReadClass",
"illegal class tag=%d (0<tag<=%d), I/O buffer corrupted",
2804 !(
clReq->GetSchemaRules() &&
2805 clReq->GetSchemaRules()->HasRuleWithSourceClass(cl->
GetName()) )
2807 Error(
"ReadClass",
"The on-file class is \"%s\" which is not compatible with the requested class: \"%s\"",
2816 if (!cl) cl = (
TClass*)-1;
2892 Error(
"SkipVersion",
"Could not find the StreamerInfo with a checksum of %d for the class \"%s\" in %s.",
2895 Error(
"SkipVersion",
"Could not find the StreamerInfo with a checksum of %d for the class \"%s\" (buffer with no parent)",
2915 Error(
"SkipVersion",
"Could not find the StreamerInfo with a checksum of %d for the class \"%s\" in %s.",
2921 Error(
"SkipVersion",
"Class %s not known to file %s.",
2972 && (
v.cnt &&
v.cnt >= 6)) ||
2981 return vinfo->TStreamerInfo::GetClassVersion();
2991 Error(
"ReadVersion",
"Could not find the StreamerInfo with a checksum of 0x%x for the class \"%s\" in %s.",
2994 Error(
"ReadVersion",
"Could not find the StreamerInfo with a checksum of 0x%x for the class \"%s\" (buffer with no parent)",
3005 if (
v.cnt &&
v.cnt >= 6)
3022 Error(
"ReadVersion",
"Could not find the StreamerInfo with a checksum of 0x%x for the class \"%s\" in %s.",
3028 Error(
"ReadVersion",
"Class %s not known to file %s.",
3100 return vinfo->TStreamerInfo::GetClassVersion();
3140 Error(
"ReadVersion",
"Class %s not known to file %s.",
3168 Error(
"WriteVersion",
"version number cannot be larger than %hd)",
3194 Error(
"WriteVersionMemberWise",
"Member-wise streaming of foreign collection not yet implemented!");
3199 Error(
"WriteVersionMemberWise",
"version number cannot be larger than %hd)",
3218 else Warning(
"StreamObject",
"No TClass for the type %s is available, the object was not read.",
typeinfo.name());
3228 else Warning(
"StreamObject",
"No TClass for the type %s is available, the object was not read.", className);
3289 Warning(
"CheckObject",
"reference to unavailable class %s,"
3290 " pointers of this type will be 0", cl->
GetName());
3292 Warning(
"CheckObject",
"reference to an unavailable class,"
3293 " pointers of that type will be 0");
3298 }
else if (
cli == -1) {
3319 Warning(
"CheckObject",
"reference to object of unavailable class %s, offset=%d"
3320 " pointer will be 0", cl ? cl->
GetName() :
"TObject",
offset);
3326 }
else if (
cli == -1) {
3346 if (max == 0)
return 0;
3363 if (max == 0)
return;
3386 while (
nr < max-1) {
3430 if (
sinfo->IsRecovered()) count=0;
3466 Error(
"ReadClassBuffer",
3467 "Could not find the right streamer info to convert %s version %d into a %s, object skipped at offset %d",
3483 Error(
"ReadClassBuffer",
"class: %s, attempting to access a wrong version: %d, object skipped at offset %d",
3489 if (
sinfo ==
nullptr) {
3498 if (
sinfo ==
nullptr) {
3500 const_cast<TClass*
>(cl)->BuildRealData(pointer);
3504 const_cast<TClass*
>(cl)->RegisterStreamerInfo(
sinfo);
3505 if (
gDebug > 0)
Info(
"ReadClassBuffer",
"Creating StreamerInfo for class: %s, version: %d", cl->
GetName(),
version);
3514 Error(
"ReadClassBuffer",
"Could not find the StreamerInfo for version %d of the class %s, object skipped at offset %d",
3520 }
else if (!
sinfo->IsCompiled()) {
3525 if (!
sinfo->IsCompiled()) {
3526 const_cast<TClass*
>(cl)->BuildRealData(pointer);
3534 if (
sinfo->IsRecovered()) count=0;
3575 Error(
"ReadClassBuffer",
3576 "Could not find the right streamer info to convert %s version %d into a %s, object skipped at offset %d",
3600 Error(
"ReadClassBuffer",
"class: %s, attempting to access a wrong version: %d, object skipped at offset %d",
3607 if (!
sinfo->IsCompiled())
3612 const_cast<TClass*
>(cl)->BuildRealData(pointer);
3622 if (
sinfo ==
nullptr) {
3641 const_cast<TClass *
>(cl)->BuildRealData(pointer);
3644 const_cast<TClass *
>(cl)->RegisterStreamerInfo(
sinfo);
3646 Info(
"ReadClassBuffer",
"Creating StreamerInfo for class: %s, version: %d",
3650 sinfo->Clear(
"build");
3651 sinfo->BuildEmulated(file);
3663 Error(
"ReadClassBuffer",
"Could not find the StreamerInfo for version %d of the class %s, object skipped at offset %d",
3674 if (
sinfo->TStreamerInfo::IsRecovered())
R__c=0;
3695 if (
sinfo ==
nullptr) {
3699 if (
sinfo ==
nullptr)
3701 if (
sinfo ==
nullptr) {
3702 const_cast<TClass*
>(cl)->BuildRealData(pointer);
3704 const_cast<TClass*
>(cl)->SetCurrentStreamerInfo(
sinfo);
3705 const_cast<TClass*
>(cl)->RegisterStreamerInfo(
sinfo);
3709 }
else if (!
sinfo->IsCompiled()) {
3712 if (!
sinfo->IsCompiled()) {
3713 const_cast<TClass*
>(cl)->BuildRealData(pointer);
3740 TStreamerInfoActions::ActionContainer_t::const_iterator end =
sequence.fActions.
end();
3741 for(TStreamerInfoActions::ActionContainer_t::const_iterator iter =
sequence.fActions.
begin();
3744 (*iter).PrintDebug(*
this,obj);
3750 TStreamerInfoActions::ActionContainer_t::const_iterator end =
sequence.fActions.
end();
3751 for(TStreamerInfoActions::ActionContainer_t::const_iterator iter =
sequence.fActions.
begin();
3769 TStreamerInfoActions::ActionContainer_t::const_iterator end =
sequence.fActions.
end();
3770 for(TStreamerInfoActions::ActionContainer_t::const_iterator iter =
sequence.fActions.
begin();
3774 (*iter).PrintDebug(*
this,
nullptr);
3782 TStreamerInfoActions::ActionContainer_t::const_iterator end =
sequence.fActions.
end();
3783 for(TStreamerInfoActions::ActionContainer_t::const_iterator iter =
sequence.fActions.
begin();
3806 TStreamerInfoActions::ActionContainer_t::const_iterator end =
sequence.fActions.
end();
3807 for(TStreamerInfoActions::ActionContainer_t::const_iterator iter =
sequence.fActions.
begin();
3810 (*iter).PrintDebug(*
this,
arr0);
3816 TStreamerInfoActions::ActionContainer_t::const_iterator end =
sequence.fActions.
end();
3817 for(TStreamerInfoActions::ActionContainer_t::const_iterator iter =
sequence.fActions.
begin();
void * bswapcpy16(void *to, const void *from, size_t n)
void * bswapcpy32(void *to, const void *from, size_t n)
void frombuf(char *&buf, Bool_t *x)
void tobuf(char *&buf, Bool_t x)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
bool Bool_t
Boolean (0=false, 1=true) (bool)
unsigned short UShort_t
Unsigned Short integer 2 bytes (unsigned short)
int Int_t
Signed integer 4 bytes (int)
long Longptr_t
Integer large enough to hold a pointer (platform-dependent)
short Version_t
Class version identifier (short)
unsigned char UChar_t
Unsigned Character 1 byte (unsigned char)
char Char_t
Character 1 byte (char)
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
unsigned long ULongptr_t
Unsigned integer large enough to hold a pointer (platform-dependent)
float Float_t
Float 4 bytes (float)
short Short_t
Signed Short integer 2 bytes (short)
double Double_t
Double 8 bytes.
long long Long64_t
Portable signed long integer 8 bytes.
unsigned long long ULong64_t
Portable unsigned long integer 8 bytes.
const UInt_t kMaxMapCount
const UInt_t kNewClassTag
static void frombufOld(char *&buf, Long_t *x)
Handle old file formats.
const Version_t kMaxVersion
static bool Class_Has_StreamerInfo(const TClass *cl)
Thread-safe check on StreamerInfos of a TClass.
const Version_t kByteCountVMask
const UInt_t kByteCountMask
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char mode
R__EXTERN TVirtualMutex * gInterpreterMutex
Int_t gDebug
Global variable setting the debug level. Set to 0 to disable, increase it in steps of 1 to increase t...
char *(* ReAllocCharFun_t)(char *, size_t, size_t)
#define R__LOCKGUARD(mutex)
#define R__WRITE_LOCKGUARD(mutex)
#define R__READ_LOCKGUARD(mutex)
const_iterator begin() const
const_iterator end() const
void WriteFastArrayFloat16(const Float_t *f, Long64_t n, TStreamerElement *ele=nullptr) override
Write array of n floats (as truncated float) into the I/O buffer.
void ReadWithFactor(Float_t *ptr, Double_t factor, Double_t minvalue) override
Read a Float16_t from the buffer when the factor and minimum value have been specified see comments a...
void WriteBuf(const void *buf, Int_t max) override
Write max bytes from buf into the I/O buffer.
void WriteFastArray(const Bool_t *b, Long64_t n) override
Write array of n bools into the I/O buffer.
TObject * ReadObject(const TClass *cl) override
Read object from I/O buffer.
void ReadDouble32(Double_t *d, TStreamerElement *ele=nullptr) override
Read a Double32_t from the buffer, see comments about Double32_t encoding at TBufferFile::WriteDouble...
Int_t ReadStaticArrayFloat16(Float_t *f, TStreamerElement *ele=nullptr) override
Read array of floats (written as truncated float) from the I/O buffer.
void DecrementLevel(TVirtualStreamerInfo *) override
Decrement level.
Version_t ReadVersion(UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr) override
Read class version from I/O buffer.
Version_t ReadVersionNoCheckSum(UInt_t *start=nullptr, UInt_t *bcnt=nullptr) override
Read class version from I/O buffer, when the caller knows for sure that there is no checksum written/...
void SetByteCount(UInt_t cntpos, Bool_t packInVersion=kFALSE) override
Set byte count at position cntpos in the buffer.
~TBufferFile() override
Delete an I/O buffer object.
void ReadWithNbits(Float_t *ptr, Int_t nbits) override
Read a Float16_t from the buffer when the number of bits is specified (explicitly or not) see comment...
void WriteObjectClass(const void *actualObjStart, const TClass *actualClass, Bool_t cacheReuse) override
Write object to I/O buffer.
void ReadTString(TString &s) override
Read TString from TBuffer.
void ReadCharStar(char *&s) override
Read char* from TBuffer.
void StreamObject(void *obj, const std::type_info &typeinfo, const TClass *onFileClass=nullptr) override
Stream an object given its C++ typeinfo information.
UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt=kFALSE) override
Write class version to I/O buffer.
Int_t ReadBuf(void *buf, Int_t max) override
Read max bytes from the I/O buffer into buf.
void WriteString(const char *s) override
Write string to I/O buffer.
char * ReadString(char *s, Int_t max) override
Read string from I/O buffer.
void WriteArray(const Bool_t *b, Int_t n) override
Write array of n bools into the I/O buffer.
void ReadFastArray(Bool_t *b, Int_t n) override
Read array of n bools from the I/O buffer.
void ReadFastArrayString(Char_t *c, Int_t n) override
Read array of n characters from the I/O buffer.
Int_t ReadArray(Bool_t *&b) override
Read array of bools from the I/O buffer.
Int_t ApplySequence(const TStreamerInfoActions::TActionSequence &sequence, void *object) override
Read one collection of objects from the buffer using the StreamerInfoLoopAction.
void * ReadObjectAny(const TClass *cast) override
Read object from I/O buffer.
void SkipObjectAny() override
Skip any kind of object from buffer.
Int_t ReadStaticArrayDouble32(Double_t *d, TStreamerElement *ele=nullptr) override
Read array of doubles (written as float) from the I/O buffer.
TClass * ReadClass(const TClass *cl=nullptr, UInt_t *objTag=nullptr) override
Read class definition from I/O buffer.
Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class) override
Deserialize information from a buffer into an object.
void SkipVersion(const TClass *cl=nullptr) override
Skip class version from I/O buffer.
void ReadFloat16(Float_t *f, TStreamerElement *ele=nullptr) override
Read a Float16_t from the buffer, see comments about Float16_t encoding at TBufferFile::WriteFloat16(...
void Streamer(TBuffer &) override
Stream an object of class TObject.
void WriteFastArrayDouble32(const Double_t *d, Long64_t n, TStreamerElement *ele=nullptr) override
Write array of n doubles (as float) into the I/O buffer.
void WriteFastArrayString(const Char_t *c, Long64_t n) override
Write array of n characters into the I/O buffer.
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char *classname)
Check byte count with current buffer position.
void WriteCharStar(char *s) override
Write char* into TBuffer.
Int_t ApplySequenceVecPtr(const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection) override
Read one collection of objects from the buffer using the StreamerInfoLoopAction.
void WriteStdString(const std::string *s) override
Write std::string to TBuffer.
Int_t WriteClassBuffer(const TClass *cl, void *pointer) override
Function called by the Streamer functions to serialize object at p to buffer b.
void WriteClass(const TClass *cl) override
Write class description to I/O buffer.
void ReadFastArrayDouble32(Double_t *d, Int_t n, TStreamerElement *ele=nullptr) override
Read array of n doubles (written as float) from the I/O buffer.
UInt_t WriteVersionMemberWise(const TClass *cl, Bool_t useBcnt=kFALSE) override
Write class version to I/O buffer after setting the kStreamedMemberWise bit in the version number.
void CheckCount(UInt_t offset) override
Check if offset is not too large (< kMaxMapCount) when writing.
bool ShouldNotReadCollection(Int_t lengthInBytes, Int_t nElements=1) const
Int_t ReadArrayFloat16(Float_t *&f, TStreamerElement *ele=nullptr) override
Read array of floats (written as truncated float) from the I/O buffer.
void ReadFastArrayFloat16(Float_t *f, Int_t n, TStreamerElement *ele=nullptr) override
Read array of n floats (written as truncated float) from the I/O buffer.
void ReadStdString(std::string *s) override
Read std::string from TBuffer.
void WriteFloat16(Float_t *f, TStreamerElement *ele=nullptr) override
Write a Float16_t to the buffer.
Int_t ReadStaticArray(Bool_t *b) override
Read array of bools from the I/O buffer.
void WriteTString(const TString &s) override
Write TString to TBuffer.
UInt_t CheckObject(UInt_t offset, const TClass *cl, Bool_t readClass=kFALSE)
Check for object in the read map.
InfoList_t fInfoStack
Stack of pointers to the TStreamerInfos.
void WriteDouble32(Double_t *d, TStreamerElement *ele=nullptr) override
Write a Double32_t to the buffer.
void ReadLong(Long_t &l) override
Read Long from TBuffer.
void ReadFastArrayWithNbits(Float_t *ptr, Int_t n, Int_t nbits) override
Read array of n floats (written as truncated float) from the I/O buffer.
void IncrementLevel(TVirtualStreamerInfo *info) override
Increment level.
Int_t ReadArrayDouble32(Double_t *&d, TStreamerElement *ele=nullptr) override
Read array of doubles (written as float) from the I/O buffer.
void WriteArrayDouble32(const Double_t *d, Int_t n, TStreamerElement *ele=nullptr) override
Write array of n doubles (as float) into the I/O buffer.
void WriteArrayFloat16(const Float_t *f, Int_t n, TStreamerElement *ele=nullptr) override
Write array of n floats (as truncated float) into the I/O buffer.
void ReadFastArrayWithFactor(Float_t *ptr, Int_t n, Double_t factor, Double_t minvalue) override
Read array of n floats (written as truncated float) from the I/O buffer.
Version_t ReadVersionForMemberWise(const TClass *cl=nullptr) override
Read class version from I/O buffer.
TStreamerInfo * fInfo
Pointer to TStreamerInfo object writing/reading the buffer.
Int_t ReadClassEmulated(const TClass *cl, void *object, const TClass *onfile_class) override
Read emulated class.
Direct subclass of TBuffer, implements common methods for TBufferFile and TBufferText classes.
void InitMap() override
Create the fMap container and initialize them with the null object.
void ForceWriteInfo(TVirtualStreamerInfo *info, Bool_t force) override
force writing the TStreamerInfo to the file
TExMap * fMap
Map containing object,offset pairs for reading/writing.
void MapObject(const TObject *obj, UInt_t offset=1) override
Add object to the fMap container.
TExMap * fClassMap
Map containing object,class pairs for reading.
Int_t fDisplacement
Value to be added to the map offsets.
static R__ALWAYS_INLINE ULong_t Void_Hash(const void *ptr)
Return hash value for provided object.
Int_t fMapCount
Number of objects or classes in map.
void TagStreamerInfo(TVirtualStreamerInfo *info) override
Mark the classindex of the current file as using this TStreamerInfo.
Int_t WriteObjectAny(const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE) override
Write object to I/O buffer.
TObject * GetParent() const
Return pointer to parent of this buffer.
void AutoExpand(Int_t size_needed)
Automatically calculate a new size and expand the buffer to fit at least size_needed.
void SetBufferOffset(Int_t offset=0)
TClass instances represent classes, structs and namespaces in the ROOT type system.
UInt_t GetCheckSum(ECheckSum code=kCurrentCheckSum) const
Call GetCheckSum with validity check.
void Streamer(void *obj, TBuffer &b, const TClass *onfile_class=nullptr) const
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
static TClass * Load(TBuffer &b)
Load class description from I/O buffer and return class object.
TVirtualStreamerInfo * GetCurrentStreamerInfo()
void SetLastReadInfo(TVirtualStreamerInfo *info)
Bool_t MatchLegacyCheckSum(UInt_t checksum) const
Return true if the checksum passed as argument is one of the checksum value produced by the older che...
TVirtualStreamerInfo * GetLastReadInfo() const
Int_t Size() const
Return size of object of this class.
void Store(TBuffer &b) const
Store class description on I/O buffer.
const TObjArray * GetStreamerInfos() const
Bool_t IsLoaded() const
Return true if the shared library of this class is currently in the a process's memory.
Bool_t IsForeign() const
Return kTRUE is the class is Foreign (the class does not have a Streamer method).
TVirtualStreamerInfo * GetStreamerInfo(Int_t version=0, Bool_t isTransient=kFALSE) const
returns a pointer to the TVirtualStreamerInfo object for version If the object does not exist,...
Bool_t InheritsFrom(const char *cl) const override
Return kTRUE if this class inherits from a class with name "classname".
Long_t Property() const override
Returns the properties of the TClass as a bit field stored as a Long_t value.
TVirtualStreamerInfo * GetConversionStreamerInfo(const char *onfile_classname, Int_t version) const
Return a Conversion StreamerInfo from the class 'classname' for version number 'version' to this clas...
TVirtualStreamerInfo * FindStreamerInfo(TObjArray *arr, UInt_t checksum) const
Find the TVirtualStreamerInfo in the StreamerInfos corresponding to checksum.
Version_t GetClassVersion() const
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
void Remove(ULong64_t hash, Long64_t key)
Remove entry with specified key from the TExMap.
void Add(ULong64_t hash, Long64_t key, Long64_t value)
Add an (key,value) pair to the table. The key should be unique.
Long64_t GetValue(ULong64_t hash, Long64_t key)
Return the value belonging to specified key and hash value.
void AddAt(UInt_t slot, ULong64_t hash, Long64_t key, Long64_t value)
Add an (key,value) pair to the table.
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
const char * GetName() const override
Returns name of object.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual void Streamer(TBuffer &)
Stream an object of class TObject.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Describe one element (data member) to be Streamed.
Base class of the Configurations for the member wise looping routines.
Describes a persistent version of a class.
Ssiz_t Clobber(Ssiz_t nc)
Clear string and make sure it has a capacity of nc.
Abstract Interface class describing Streamer information for one class.
static Bool_t CanDelete()
static function returning true if ReadBuffer can delete object
R__EXTERN TVirtualRWMutex * gCoreMutex