Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TStreamerElement.h
Go to the documentation of this file.
1// @(#)root/meta:$Id: e0eac11e63ad37390c9467c97c5c6849c4ab7d39 $
2// Author: Rene Brun 12/10/2000
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TStreamerElement
13#define ROOT_TStreamerElement
14
15#include "TNamed.h"
16
17#include "ESTLType.h"
18
19class TMethodCall;
20class TClass;
23
24/// Describe one element (data member) to be Streamed
25class TStreamerElement : public TNamed {
26
27private:
30
31protected:
32 Int_t fType; //element type
33 Int_t fSize; //sizeof element
34 Int_t fArrayLength; //cumulative size of all array dims
35 Int_t fArrayDim; //number of array dimensions
36 Int_t fMaxIndex[5]; //Maximum array index for array dimension "dim"
37 Int_t fOffset; ///<!element offset in class
38 Int_t fTObjectOffset; ///<!base offset for TObject if the element inherits from it
39 Int_t fNewType; ///<!new element type when reading
40 TString fTypeName; //Data type name of data member
41 TClass *fClassObject; ///<!pointer to class of object
42 TClass *fNewClass; ///<!new element class when reading
43 TMemberStreamer *fStreamer; ///<!pointer to element Streamer
44 Double_t fXmin; ///<!Minimum of data member if a range is specified [xmin,xmax,nbits]
45 Double_t fXmax; ///<!Maximum of data member if a range is specified [xmin,xmax,nbits]
46 Double_t fFactor; ///<!Conversion factor if a range is specified fFactor = (1<<nbits/(xmax-xmin)
47
48 friend class TStreamerSTL;
49
50public:
51 // TStreamerElement status bits
54 kCache = BIT(9),
55 kRepeat = BIT(10),
56 kRead = BIT(11),
57 kWrite = BIT(12),
60 kWarned = BIT(21)
61 };
62
64 // This bit duplicates TObject::kInvalidObject. As the semantic of kDoNotDelete is a persistent,
65 // we can not change its value without breaking forward compatibility.
66 // Furthermore, TObject::kInvalidObject and its semantic is not (and should not be)
67 // used in TStreamerElement
69
70 // This bit duplicates TObject::kCannotPick. As the semantic of kHasRange is a persistent,
71 // we can not change its value without breaking forward compatibility.
72 // Furthermore, TObject::kCannotPick and its semantic is not (and should not be)
73 // used in TStreamerElement
75 };
76
77
79 TStreamerElement(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName);
80 virtual ~TStreamerElement();
81 virtual Bool_t CannotSplit() const;
82 Int_t GetArrayDim() const {return fArrayDim;}
84 virtual TClass *GetClassPointer() const;
85 TClass *GetClass() const {return GetClassPointer();}
86 virtual std::size_t GetAlignment() const;
87 virtual Int_t GetExecID() const;
88 virtual const char *GetFullName() const;
89 virtual const char *GetInclude() const {return "";}
90 Int_t GetMaxIndex(Int_t i) const {return fMaxIndex[i];}
91 virtual ULongptr_t GetMethod() const {return ULongptr_t(fStreamer);}
93 virtual Int_t GetSize() const;
94 Int_t GetNewType() const {return fNewType;}
95 TClass* GetNewClass() const { return fNewClass; }
96 Int_t GetType() const {return fType;}
97 Int_t GetOffset() const {return fOffset;}
98 void GetSequenceType(TString &type) const;
100 const char *GetTypeName() const {return fTypeName.Data();}
101 const char *GetTypeNameBasic() const;
102 Double_t GetFactor() const {return fFactor;}
103 Double_t GetXmin() const {return fXmin;}
104 Double_t GetXmax() const {return fXmax;}
105 virtual void Init(TVirtualStreamerInfo *obj = nullptr);
106 virtual Bool_t IsaPointer() const {return kFALSE;}
107 virtual Bool_t HasCounter() const {return kFALSE;}
108 virtual Bool_t IsOldFormat(const char *newTypeName);
109 virtual Bool_t IsBase() const;
110 virtual Bool_t IsTransient() const;
111 void ls(Option_t *option="") const override;
112 virtual void SetArrayDim(Int_t dim);
113 virtual void SetMaxIndex(Int_t dim, Int_t max);
115 virtual void SetTObjectOffset(Int_t tobjoffset) {fTObjectOffset=tobjoffset;}
116 virtual void SetStreamer(TMemberStreamer *streamer);
117 virtual void SetSize(Int_t dsize) {fSize = dsize;}
118 virtual void SetNewType(Int_t dtype) {fNewType = dtype;}
119 virtual void SetNewClass( TClass* cl ) { fNewClass= cl; }
120 virtual void SetType(Int_t dtype) {fType = dtype;}
121 virtual void SetTypeName(const char *name) {fTypeName = name; fClassObject = (TClass*)-1; }
122 virtual void Update(const TClass *oldClass, TClass *newClass);
123
124 ClassDefOverride(TStreamerElement,4) //Base class for one element (data member) to be Streamed
125};
126
127//________________________________________________________________________
129
130private:
131 TStreamerBase(const TStreamerBase &) = delete;
133
134protected:
135 Int_t fBaseVersion; //version number of the base class (used during memberwise streaming)
136 UInt_t &fBaseCheckSum; ///<!checksum of the base class (used during memberwise streaming)
137 TClass *fBaseClass; ///<!pointer to base class
138 TClass *fNewBaseClass; ///<!pointer to new base class if renamed
139 ClassStreamerFunc_t fStreamerFunc; ///<!Pointer to a wrapper around a custom streamer member function.
140 ClassConvStreamerFunc_t fConvStreamerFunc; ///<!Pointer to a wrapper around a custom convertion streamer member function.
141 TVirtualStreamerInfo *fStreamerInfo; ///<!Pointer to the current StreamerInfo for the baset class.
142 TString fErrorMsg; ///<!Error message in case of checksum/version mismatch.
143
144 void InitStreaming(Bool_t isTransient);
145
146public:
147
149 TStreamerBase(const char *name, const char *title, Int_t offset, Bool_t isTransient = kFALSE);
150 virtual ~TStreamerBase();
153 TClass *GetClassPointer() const override;
154 const char *GetErrorMessage() const { return fErrorMsg; }
155 const char *GetInclude() const override;
157 ULongptr_t GetMethod() const override {return 0;}
158 std::size_t GetAlignment() const override;
159 Int_t GetSize() const override;
161 void Init(TVirtualStreamerInfo *obj = nullptr) override;
162 void Init(Bool_t isTransient = kFALSE);
163 Bool_t IsBase() const override;
164 void ls(Option_t *option="") const override;
165 Int_t ReadBuffer (TBuffer &b, char *pointer);
169 void SetErrorMessage(const char *msg) { fErrorMsg = msg; }
170 void Update(const TClass *oldClass, TClass *newClass) override;
171 Int_t WriteBuffer(TBuffer &b, char *pointer);
172
173 ClassDefOverride(TStreamerBase,3) //Streamer element of type base class
174};
175
176//________________________________________________________________________
178
179private:
182
183protected:
184 Int_t fCountVersion; //version number of the class with the counter
185 TString fCountName; //name of data member holding the array count
186 TString fCountClass; //name of the class with the counter
187 TStreamerBasicType *fCounter; ///<!pointer to basic type counter
188
189public:
190
192 TStreamerBasicPointer(const char *name, const char *title, Int_t offset, Int_t dtype,
193 const char *countName, const char *countClass, Int_t version, const char *typeName);
194 virtual ~TStreamerBasicPointer();
195 TClass *GetClassPointer() const override { return nullptr; }
196 const char *GetCountClass() const {return fCountClass.Data();}
197 const char *GetCountName() const {return fCountName.Data();}
199 ULongptr_t GetMethod() const override;
200 std::size_t GetAlignment() const override { return alignof(void *); }
201 Int_t GetSize() const override;
202 void Init(TVirtualStreamerInfo *obj = nullptr) override;
203 Bool_t HasCounter() const override { return fCounter != nullptr; }
204 Bool_t IsaPointer() const override { return kTRUE; }
205 void SetArrayDim(Int_t dim) override;
206 void SetCountClass(const char *clname) { fCountClass = clname; }
207 void SetCountName(const char *name) { fCountName = name; }
208 void SetCountVersion(Int_t count) { fCountVersion = count; }
209 void Update(const TClass * /* oldClass */, TClass * /*newClass*/ ) override {}
210
211 ClassDefOverride(TStreamerBasicPointer,2) //Streamer element for a pointer to a basic type
212};
213
214//________________________________________________________________________
216
217private:
218 TStreamerLoop(const TStreamerLoop&) = delete;
220
221protected:
222 Int_t fCountVersion; //version number of the class with the counter
223 TString fCountName; //name of data member holding the array count
224 TString fCountClass; //name of the class with the counter
225 TStreamerBasicType *fCounter; ///<!pointer to basic type counter
226
227public:
228
230 TStreamerLoop(const char *name, const char *title, Int_t offset, const char *countName, const char *countClass, Int_t version, const char *typeName);
231 virtual ~TStreamerLoop();
232 const char *GetCountClass() const {return fCountClass.Data();}
233 const char *GetCountName() const {return fCountName.Data();}
235 const char *GetInclude() const override;
236 ULongptr_t GetMethod() const override;
237 std::size_t GetAlignment() const override;
238 Int_t GetSize() const override;
239 void Init(TVirtualStreamerInfo *obj = nullptr) override;
240 Bool_t IsaPointer() const override {return kTRUE; }
241 Bool_t HasCounter() const override { return fCounter != nullptr; }
242 void SetCountClass(const char *clname) { fCountClass = clname; }
243 void SetCountName(const char *name) { fCountName = name; }
244 void SetCountVersion(Int_t count) { fCountVersion = count; }
245
246 ClassDefOverride(TStreamerLoop,2) //Streamer element for a pointer to an array of objects
247};
248
249//________________________________________________________________________
251
252private:
255
256protected:
257 Int_t fCounter; ///<!value of data member when referenced by an array
258
259public:
260
262 TStreamerBasicType(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName);
263 virtual ~TStreamerBasicType();
264 TClass *GetClassPointer() const override { return nullptr; }
265 Int_t GetCounter() const { return fCounter; }
266 ULongptr_t GetMethod() const override;
267 Int_t GetSize() const override;
268 void Update(const TClass * /* oldClass */, TClass * /* newClass */) override {}
269
270 ClassDefOverride(TStreamerBasicType,2) //Streamer element for a basic type
271};
272
273//________________________________________________________________________
275
276private:
279
280public:
281
283 TStreamerObject(const char *name, const char *title, Int_t offset, const char *typeName);
284 virtual ~TStreamerObject();
285 const char *GetInclude() const override;
286 std::size_t GetAlignment() const override;
287 Int_t GetSize() const override;
288 void Init(TVirtualStreamerInfo *obj = nullptr) override;
289
290 ClassDefOverride(TStreamerObject,2) //Streamer element of type object
291};
292
293//________________________________________________________________________
295
296private:
299
300public:
301
303 TStreamerObjectAny(const char *name, const char *title, Int_t offset, const char *typeName);
304 virtual ~TStreamerObjectAny();
305 const char *GetInclude() const override;
306 std::size_t GetAlignment() const override;
307 Int_t GetSize() const override;
308 void Init(TVirtualStreamerInfo *obj = nullptr) override;
309
310 ClassDefOverride(TStreamerObjectAny,2) //Streamer element of type object other than TObject
311};
312
313//________________________________________________________________________
315
316private:
319
320public:
321
323 TStreamerObjectPointer(const char *name, const char *title, Int_t offset, const char *typeName);
324 virtual ~TStreamerObjectPointer();
325 const char *GetInclude() const override;
326 std::size_t GetAlignment() const override { return alignof(void *); }
327 Int_t GetSize() const override;
328 void Init(TVirtualStreamerInfo *obj = nullptr) override;
329 Bool_t IsaPointer() const override {return kTRUE;}
330 void SetArrayDim(Int_t dim) override;
331
332 ClassDefOverride(TStreamerObjectPointer,2) //Streamer element of type pointer to a TObject
333};
334
335//________________________________________________________________________
337
338private:
341
342public:
343
345 TStreamerObjectAnyPointer(const char *name, const char *title, Int_t offset, const char *typeName);
347 const char *GetInclude() const override;
348 std::size_t GetAlignment() const override { return alignof(void *); }
349 Int_t GetSize() const override;
350 void Init(TVirtualStreamerInfo *obj = nullptr) override;
351 Bool_t IsaPointer() const override { return kTRUE; }
352 void SetArrayDim(Int_t dim) override;
353
354 ClassDefOverride(TStreamerObjectAnyPointer,1) //Streamer element of type pointer to a non TObject
355};
356
357//________________________________________________________________________
359
360private:
363
364public:
365
367 TStreamerString(const char *name, const char *title, Int_t offset);
368 virtual ~TStreamerString();
369 const char *GetInclude() const override;
370 std::size_t GetAlignment() const override { return alignof(TString); }
371 Int_t GetSize() const override;
372
373 ClassDefOverride(TStreamerString,2) //Streamer element of type TString
374};
375
376//________________________________________________________________________
378
379private:
380 TStreamerSTL(const TStreamerSTL&) = delete;
382
383protected:
384 Int_t fSTLtype; //type of STL vector
385 Int_t fCtype; //STL contained type
386
387public:
388
389 TStreamerSTL();
390 TStreamerSTL(const char *name, const char *title, Int_t offset,
391 const char *typeName, const char *trueType, Bool_t dmPointer);
392 TStreamerSTL(const char *name, const char *title, Int_t offset,
393 const char *typeName, const TVirtualCollectionProxy &proxy , Bool_t dmPointer);
394 virtual ~TStreamerSTL();
395 Bool_t CannotSplit() const override;
396 Bool_t IsaPointer() const override;
397 Bool_t IsBase() const override;
398 TClass *GetClassPointer() const override;
399 Int_t GetSTLtype() const {return fSTLtype;}
400 Int_t GetCtype() const {return fCtype;}
401 const char *GetInclude() const override;
402 std::size_t GetAlignment() const override;
403 Int_t GetSize() const override;
404 void ls(Option_t *option="") const override;
405 void SetSTLtype(Int_t t) {fSTLtype = t;}
406 void SetCtype(Int_t t) {fCtype = t;}
407 void SetStreamer(TMemberStreamer *streamer) override;
408
409 ClassDefOverride(TStreamerSTL,3) //Streamer element of type STL container
410};
411
412//________________________________________________________________________
414
415private:
418
419public:
420
422 TStreamerSTLstring(const char *name, const char *title, Int_t offset,
423 const char *typeName, Bool_t dmPointer);
424 virtual ~TStreamerSTLstring();
425 const char *GetInclude() const override;
426 Int_t GetSize() const override;
427
428 ClassDefOverride(TStreamerSTLstring,2) //Streamer element of type C++ string
429};
430
431class TVirtualObject;
432class TBuffer;
433
434#include "TSchemaRule.h"
435
436//________________________________________________________________________
438private:
441
442protected:
445
446public:
447
448 // TStreamerArtificial() : fReadFunc(0),fReadRawFunc(0) {}
449
450 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) {}
451
454
457
458 ClassDefOverride(TStreamerArtificial, 0); // StreamerElement injected by a TSchemaRule. Transient only to preserve forward compatibility.
459};
460
461#endif
#define b(i)
Definition RSha256.hxx:100
bool Bool_t
Boolean (0=false, 1=true) (bool)
Definition RtypesCore.h:78
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:60
unsigned long ULongptr_t
Unsigned integer large enough to hold a pointer (platform-dependent)
Definition RtypesCore.h:91
constexpr Bool_t kFALSE
Definition RtypesCore.h:109
constexpr Bool_t kTRUE
Definition RtypesCore.h:108
const char Option_t
Option string (const char)
Definition RtypesCore.h:81
#define BIT(n)
Definition Rtypes.h:90
#define ClassDefOverride(name, id)
Definition Rtypes.h:347
void(* ClassStreamerFunc_t)(TBuffer &, void *)
Definition Rtypes.h:77
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
Definition Rtypes.h:78
Option_t Option_t option
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 type
char name[80]
Definition TGX11.cxx:142
void(* ReadFuncPtr_t)(char *, TVirtualObject *)
Definition TSchemaRule.h:77
void(* ReadRawFuncPtr_t)(char *, TBuffer &)
Definition TSchemaRule.h:78
Buffer base class used for serializing objects.
Definition TBuffer.h:43
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:84
Method or function calling interface.
Definition TMethodCall.h:37
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
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
UInt_t GetBaseCheckSum()
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.
Int_t GetCounter() const
TClass * GetClassPointer() const override
Returns a pointer to the TClass of this element and updates fClassObject.
Describe one element (data member) to be Streamed.
virtual void SetSize(Int_t dsize)
TStreamerElement()
Default ctor.
Int_t GetNewType() const
virtual Int_t GetSize() const
Returns size of this element in bytes.
Int_t fOffset
!element offset in class
Int_t GetType() const
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 GetXmax() const
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
virtual void SetType(Int_t dtype)
Double_t GetXmin() const
Int_t GetOffset() const
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.
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
Int_t GetCtype() const
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.
Int_t GetSTLtype() const
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.
void SetSTLtype(Int_t t)
void SetCtype(Int_t t)
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.
Basic string class.
Definition TString.h:137
const char * Data() const
Definition TString.h:385
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.