12#ifndef ROOT_TStreamerElement
13#define ROOT_TStreamerElement
211 const char *countName,
const char *countClass,
Int_t version,
const char *typeName);
248 TStreamerLoop(
const char *
name,
const char *title,
Int_t offset,
const char *countName,
const char *countClass,
Int_t version,
const char *typeName);
409 const char *typeName,
const char *trueType,
Bool_t dmPointer);
441 const char *typeName,
Bool_t dmPointer);
468 TStreamerArtificial(
const char *
name,
const char *title,
Int_t offset,
Int_t dtype,
const char *typeName) :
TStreamerElement(
name,title,offset,dtype,typeName),
fReadFunc(nullptr),
fReadRawFunc(nullptr) {}
int Int_t
Signed integer 4 bytes (int).
unsigned long ULongptr_t
Unsigned integer large enough to hold a pointer (platform-dependent).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
bool Bool_t
Boolean (0=false, 1=true) (bool).
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char).
#define ClassDefOverride(name, id)
void(* ClassStreamerFunc_t)(TBuffer &, void *)
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
void(* ReadFuncPtr_t)(char *, TVirtualObject *)
void(* ReadRawFuncPtr_t)(char *, TBuffer &)
Buffer base class used for serializing objects.
TClass instances represent classes, structs and namespaces in the ROOT type system.
Method or function calling interface.
TStreamerArtificial(const TStreamerArtificial &)=delete
void SetReadFunc(ROOT::TSchemaRule::ReadFuncPtr_t val)
TStreamerArtificial & operator=(const TStreamerArtificial &)=delete
ROOT::TSchemaRule::ReadRawFuncPtr_t GetReadRawFunc()
ROOT::TSchemaRule::ReadRawFuncPtr_t fReadRawFunc
!
ROOT::TSchemaRule::ReadFuncPtr_t GetReadFunc()
ROOT::TSchemaRule::ReadFuncPtr_t fReadFunc
!
void SetReadRawFunc(ROOT::TSchemaRule::ReadRawFuncPtr_t val)
TStreamerArtificial(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName)
TStreamerBase & operator=(const TStreamerBase &)=delete
Int_t GetSize() const override
Returns size of baseclass in bytes.
void InitStreaming(Bool_t isTransient)
Setup the fStreamerFunc and fStreamerinfo.
UInt_t & fBaseCheckSum
!checksum of the base class (used during memberwise streaming)
void SetErrorMessage(const char *msg)
Bool_t IsBase() const override
Return kTRUE if the element represent a base class.
void SetNewBaseClass(TClass *cl)
std::size_t GetAlignment() const override
Returns the alignment of the base class in bytes.
Int_t WriteBuffer(TBuffer &b, char *pointer)
Write the base class into the buffer.
void SetBaseVersion(Int_t v)
TVirtualStreamerInfo * GetBaseStreamerInfo() const
virtual ~TStreamerBase()
TStreamerBase dtor.
const char * GetInclude() const override
Return the proper include for this element.
ULongptr_t GetMethod() const override
TClass * fBaseClass
!pointer to base class
TClass * GetClassPointer() const override
Returns a pointer to the TClass of this element.
void ls(Option_t *option="") const override
Print the content of the element.
void Update(const TClass *oldClass, TClass *newClass) override
Function called by the TClass constructor when replacing an emulated class by the real class.
Int_t ReadBuffer(TBuffer &b, char *pointer)
Read the content of the buffer.
const char * GetErrorMessage() const
ClassConvStreamerFunc_t fConvStreamerFunc
!Pointer to a wrapper around a custom convertion streamer member function.
void SetBaseCheckSum(UInt_t cs)
TStreamerBase(const TStreamerBase &)=delete
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
TClass * fNewBaseClass
!pointer to new base class if renamed
TVirtualStreamerInfo * fStreamerInfo
!Pointer to the current StreamerInfo for the baset class.
TClass * GetNewBaseClass()
ClassStreamerFunc_t fStreamerFunc
!Pointer to a wrapper around a custom streamer member function.
TString fErrorMsg
!Error message in case of checksum/version mismatch.
void SetCountName(const char *name)
virtual ~TStreamerBasicPointer()
TStreamerBasicPointer dtor.
ULongptr_t GetMethod() const override
return offset of counter
void Update(const TClass *, TClass *) override
function called by the TClass constructor when replacing an emulated class by the real class
Bool_t HasCounter() const override
std::size_t GetAlignment() const override
Returns the alignment of this element in bytes.
void SetCountVersion(Int_t count)
TStreamerBasicPointer(const TStreamerBasicPointer &)=delete
void SetCountClass(const char *clname)
TStreamerBasicPointer()
Default ctor.
void SetArrayDim(Int_t dim) override
Set number of array dimensions.
Bool_t IsaPointer() const override
const char * GetCountName() const
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
TClass * GetClassPointer() const override
Returns a pointer to the TClass of this element and updates fClassObject.
TStreamerBasicPointer & operator=(const TStreamerBasicPointer &)=delete
Int_t GetCountVersion() const
TStreamerBasicType * fCounter
!pointer to basic type counter
Int_t GetSize() const override
Returns size of basicpointer in bytes.
const char * GetCountClass() const
TStreamerBasicType & operator=(const TStreamerBasicType &)=delete
Int_t GetSize() const override
Returns size of this element in bytes.
void Update(const TClass *, TClass *) override
function called by the TClass constructor when replacing an emulated class by the real class
Int_t fCounter
!value of data member when referenced by an array
ULongptr_t GetMethod() const override
return address of counter
TStreamerBasicType(const TStreamerBasicType &)=delete
TStreamerBasicType()
Default ctor.
virtual ~TStreamerBasicType()
TStreamerBasicType dtor.
TClass * GetClassPointer() const override
Returns a pointer to the TClass of this element and updates fClassObject.
virtual void SetSize(Int_t dsize)
TStreamerElement()
Default ctor.
virtual Int_t GetSize() const
Returns size of this element in bytes.
Int_t fOffset
!element offset in class
virtual const char * GetInclude() const
virtual Bool_t IsOldFormat(const char *newTypeName)
The early 3.00/00 and 3.01/01 versions used to store dm->GetTypeName instead of dm->GetFullTypename i...
virtual void Init(TVirtualStreamerInfo *obj=nullptr)
Initliaze the element.
virtual const char * GetFullName() const
Return element name including dimensions, if any Note that this function stores the name into a stati...
virtual TClass * GetClassPointer() const
Returns a pointer to the TClass of this element and updates fClassObject.
virtual ULongptr_t GetMethod() const
virtual void SetArrayDim(Int_t dim)
Set number of array dimensions.
virtual ~TStreamerElement()
TStreamerElement dtor.
Int_t GetArrayDim() const
TMemberStreamer * GetStreamer() const
Return the local streamer object.
Int_t fTObjectOffset
!base offset for TObject if the element inherits from it
Double_t fXmax
!Maximum of data member if a range is specified [xmin,xmax,nbits]
TClass * GetNewClass() const
Int_t GetArrayLength() const
virtual void SetStreamer(TMemberStreamer *streamer)
set pointer to Streamer function for this element
TMemberStreamer * fStreamer
!pointer to element Streamer
Double_t GetFactor() const
TStreamerElement(const TStreamerElement &)=delete
void ls(Option_t *option="") const override
Print the content of the element.
virtual Bool_t IsTransient() const
Return kTRUE if the element represent an entity that is not written to the disk (transient members,...
Double_t fFactor
!Conversion factor if a range is specified fFactor = (1<<nbits/(xmax-xmin)
Int_t GetMaxIndex(Int_t i) const
virtual Bool_t IsaPointer() const
virtual void Update(const TClass *oldClass, TClass *newClass)
function called by the TClass constructor when replacing an emulated class by the real class
const char * GetTypeName() const
virtual Bool_t CannotSplit() const
Returns true if the element cannot be split, false otherwise.
TClass * GetClass() const
friend class TStreamerSTL
virtual void SetType(Int_t dtype)
virtual void SetNewClass(TClass *cl)
virtual void SetTypeName(const char *name)
Double_t fXmin
!Minimum of data member if a range is specified [xmin,xmax,nbits]
TClass * fClassObject
!pointer to class of object
const char * GetTypeNameBasic() const
Return type name of this element in case the type name is not a standard basic type,...
virtual Bool_t IsBase() const
Return kTRUE if the element represent a base class.
virtual Int_t GetExecID() const
Returns the TExec id for the EXEC instruction in the comment field of a TRef data member.
virtual void SetOffset(Int_t offset)
virtual void SetTObjectOffset(Int_t tobjoffset)
virtual void SetNewType(Int_t dtype)
TClass * fNewClass
!new element class when reading
virtual void SetMaxIndex(Int_t dim, Int_t max)
set maximum index for array with dimension dim
Int_t GetTObjectOffset() const
TStreamerElement & operator=(const TStreamerElement &)=delete
virtual Bool_t HasCounter() const
virtual std::size_t GetAlignment() const
Returns the alignment of this element in bytes.
void GetSequenceType(TString &type) const
Fill type with the string representation of sequence information including 'cached',...
Int_t fNewType
!new element type when reading
const char * GetInclude() const override
Return the proper include for this element.
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
Int_t GetSize() const override
Returns size of counter in bytes.
TStreamerBasicType * fCounter
!pointer to basic type counter
TStreamerLoop(const TStreamerLoop &)=delete
void SetCountName(const char *name)
virtual ~TStreamerLoop()
TStreamerLoop dtor.
Bool_t IsaPointer() const override
const char * GetCountName() const
TStreamerLoop & operator=(const TStreamerLoop &)=delete
Int_t GetCountVersion() const
void SetCountVersion(Int_t count)
void SetCountClass(const char *clname)
const char * GetCountClass() const
ULongptr_t GetMethod() const override
return address of counter
Bool_t HasCounter() const override
std::size_t GetAlignment() const override
Returns the alignment of this element in bytes.
TStreamerLoop()
Default ctor.
TStreamerObjectAnyPointer(const TStreamerObjectAnyPointer &)=delete
const char * GetInclude() const override
Return the proper include for this element.
void SetArrayDim(Int_t dim) override
Set number of array dimensions.
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
Bool_t IsaPointer() const override
virtual ~TStreamerObjectAnyPointer()
TStreamerObjectAnyPointer dtor.
TStreamerObjectAnyPointer & operator=(const TStreamerObjectAnyPointer &)=delete
std::size_t GetAlignment() const override
Returns the alignment of this element in bytes.
Int_t GetSize() const override
Returns size of objectpointer in bytes.
TStreamerObjectAnyPointer()
Default ctor.
virtual ~TStreamerObjectAny()
TStreamerObjectAny dtor.
TStreamerObjectAny(const TStreamerObjectAny &)=delete
Int_t GetSize() const override
Returns size of anyclass in bytes.
TStreamerObjectAny & operator=(const TStreamerObjectAny &)=delete
const char * GetInclude() const override
Return the proper include for this element.
TStreamerObjectAny()
Default ctor.
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
std::size_t GetAlignment() const override
Returns the alignment of the object (non-TObject) class in bytes.
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
TStreamerObjectPointer()
Default ctor.
TStreamerObjectPointer(const TStreamerObjectPointer &)=delete
Bool_t IsaPointer() const override
std::size_t GetAlignment() const override
Returns the alignment of this element in bytes.
virtual ~TStreamerObjectPointer()
TStreamerObjectPointer dtor.
Int_t GetSize() const override
Returns size of objectpointer in bytes.
TStreamerObjectPointer & operator=(const TStreamerObjectPointer &)=delete
void SetArrayDim(Int_t dim) override
Set number of array dimensions.
const char * GetInclude() const override
Return the proper include for this element.
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
TStreamerObject(const TStreamerObject &)=delete
TStreamerObject()
Default ctor.
std::size_t GetAlignment() const override
Returns the alignment of the object class in bytes.
virtual ~TStreamerObject()
TStreamerObject dtor.
Int_t GetSize() const override
Returns size of object class in bytes.
const char * GetInclude() const override
Return the proper include for this element.
TStreamerObject & operator=(const TStreamerObject &)=delete
TClass * GetClassPointer() const override
Returns a pointer to the TClass of this element.
TStreamerSTL & operator=(const TStreamerSTL &)=delete
Bool_t IsaPointer() const override
Return true if the data member is a pointer.
Int_t GetSize() const override
Returns size of STL container in bytes.
const char * GetInclude() const override
Return the proper include for this element.
std::size_t GetAlignment() const override
Returns the alignment of the STL container in bytes.
TStreamerSTL()
Default ctor.
void SetStreamer(TMemberStreamer *streamer) override
Set pointer to Streamer function for this element NOTE: we do not take ownership.
Bool_t CannotSplit() const override
We can not split STL's which are inside a variable size array.
TStreamerSTL(const TStreamerSTL &)=delete
virtual ~TStreamerSTL()
TStreamerSTL dtor.
void ls(Option_t *option="") const override
Print the content of the element.
Bool_t IsBase() const override
Return kTRUE if the element represent a base class.
Int_t GetSize() const override
Returns size of anyclass in bytes.
virtual ~TStreamerSTLstring()
TStreamerSTLstring dtor.
TStreamerSTLstring & operator=(const TStreamerSTLstring &)=delete
TStreamerSTLstring(const TStreamerSTLstring &)=delete
TStreamerSTLstring()
Default ctor.
const char * GetInclude() const override
Return the proper include for this element.
TStreamerString()
Default ctor.
const char * GetInclude() const override
Return the proper include for this element.
std::size_t GetAlignment() const override
Returns the alignment of this element in bytes.
TStreamerString & operator=(const TStreamerString &)=delete
TStreamerString(const TStreamerString &)=delete
Int_t GetSize() const override
Returns size of anyclass in bytes.
virtual ~TStreamerString()
TStreamerString dtor.
Defines a common interface to inspect/change the contents of an object that represents a collection.
Wrapper around an object and giving indirect access to its content even if the object is not of a cla...
Abstract Interface class describing Streamer information for one class.