Logo ROOT  
Reference Guide
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//////////////////////////////////////////////////////////////////////////
16// //
17// TStreamerElement //
18// //
19// Describe one element (data member) to be Streamed //
20// //
21//////////////////////////////////////////////////////////////////////////
22
23#include "TNamed.h"
24
25#include "ESTLType.h"
26
27class TMethodCall;
28class TClass;
31
32class TStreamerElement : public TNamed {
33
34private:
37
38protected:
39 Int_t fType; //element type
40 Int_t fSize; //sizeof element
41 Int_t fArrayLength; //cumulative size of all array dims
42 Int_t fArrayDim; //number of array dimensions
43 Int_t fMaxIndex[5]; //Maximum array index for array dimension "dim"
44 Int_t fOffset; //!element offset in class
45 Int_t fTObjectOffset; //!base offset for TObject if the element inherits from it
46 Int_t fNewType; //!new element type when reading
47 TString fTypeName; //Data type name of data member
48 TClass *fClassObject; //!pointer to class of object
49 TClass *fNewClass; //!new element class when reading
50 TMemberStreamer *fStreamer; //!pointer to element Streamer
51 Double_t fXmin; //!Minimum of data member if a range is specified [xmin,xmax,nbits]
52 Double_t fXmax; //!Maximum of data member if a range is specified [xmin,xmax,nbits]
53 Double_t fFactor; //!Conversion factor if a range is specified fFactor = (1<<nbits/(xmax-xmin)
54
55public:
56
57 enum ESTLtype {
73 };
74 // TStreamerElement status bits
77 kCache = BIT(9),
78 kRepeat = BIT(10),
79 kRead = BIT(11),
80 kWrite = BIT(12),
83 kWarned = BIT(21)
84 };
85
87 // This bit duplicates TObject::kInvalidObject. As the semantic of kDoNotDelete is a persistent,
88 // we can not change its value without breaking forward compatibility.
89 // Furthermore, TObject::kInvalidObject and its semantic is not (and should not be)
90 // used in TStreamerElement
92
93 // This bit duplicates TObject::kCannotPick. As the semantic of kHasRange is a persistent,
94 // we can not change its value without breaking forward compatibility.
95 // Furthermore, TObject::kCannotPick and its semantic is not (and should not be)
96 // used in TStreamerElement
98 };
99
100
102 TStreamerElement(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName);
103 virtual ~TStreamerElement();
104 virtual Bool_t CannotSplit() const;
105 Int_t GetArrayDim() const {return fArrayDim;}
107 virtual TClass *GetClassPointer() const;
108 TClass *GetClass() const {return GetClassPointer();}
109 virtual Int_t GetExecID() const;
110 virtual const char *GetFullName() const;
111 virtual const char *GetInclude() const {return "";}
112 Int_t GetMaxIndex(Int_t i) const {return fMaxIndex[i];}
113 virtual ULongptr_t GetMethod() const {return ULongptr_t(fStreamer);}
115 virtual Int_t GetSize() const;
116 Int_t GetNewType() const {return fNewType;}
117 TClass* GetNewClass() const { return fNewClass; }
118 Int_t GetType() const {return fType;}
119 Int_t GetOffset() const {return fOffset;}
120 void GetSequenceType(TString &type) const;
122 const char *GetTypeName() const {return fTypeName.Data();}
123 const char *GetTypeNameBasic() const;
124 Double_t GetFactor() const {return fFactor;}
125 Double_t GetXmin() const {return fXmin;}
126 Double_t GetXmax() const {return fXmax;}
127 virtual void Init(TVirtualStreamerInfo *obj = nullptr);
128 virtual Bool_t IsaPointer() const {return kFALSE;}
129 virtual Bool_t HasCounter() const {return kFALSE;}
130 virtual Bool_t IsOldFormat(const char *newTypeName);
131 virtual Bool_t IsBase() const;
132 virtual Bool_t IsTransient() const;
133 void ls(Option_t *option="") const override;
134 virtual void SetArrayDim(Int_t dim);
135 virtual void SetMaxIndex(Int_t dim, Int_t max);
137 virtual void SetTObjectOffset(Int_t tobjoffset) {fTObjectOffset=tobjoffset;}
138 virtual void SetStreamer(TMemberStreamer *streamer);
139 virtual void SetSize(Int_t dsize) {fSize = dsize;}
140 virtual void SetNewType(Int_t dtype) {fNewType = dtype;}
141 virtual void SetNewClass( TClass* cl ) { fNewClass= cl; }
142 virtual void SetType(Int_t dtype) {fType = dtype;}
143 virtual void SetTypeName(const char *name) {fTypeName = name; fClassObject = (TClass*)-1; }
144 virtual void Update(const TClass *oldClass, TClass *newClass);
145
146 ClassDefOverride(TStreamerElement,4) //Base class for one element (data member) to be Streamed
147};
148
149//________________________________________________________________________
151
152private:
153 TStreamerBase(const TStreamerBase &) = delete;
155
156protected:
157 Int_t fBaseVersion; //version number of the base class (used during memberwise streaming)
158 UInt_t &fBaseCheckSum; //!checksum of the base class (used during memberwise streaming)
159 TClass *fBaseClass; //!pointer to base class
160 TClass *fNewBaseClass; //!pointer to new base class if renamed
161 ClassStreamerFunc_t fStreamerFunc; //!Pointer to a wrapper around a custom streamer member function.
162 ClassConvStreamerFunc_t fConvStreamerFunc; //!Pointer to a wrapper around a custom convertion streamer member function.
163 TVirtualStreamerInfo *fStreamerInfo; //!Pointer to the current StreamerInfo for the baset class.
164 TString fErrorMsg; //!Error message in case of checksum/version mismatch.
165
166 void InitStreaming(Bool_t isTransient);
167
168public:
169
171 TStreamerBase(const char *name, const char *title, Int_t offset, Bool_t isTransient = kFALSE);
172 virtual ~TStreamerBase();
175 TClass *GetClassPointer() const override;
176 const char *GetErrorMessage() const { return fErrorMsg; }
177 const char *GetInclude() const override;
179 ULongptr_t GetMethod() const override {return 0;}
180 Int_t GetSize() const override;
182 void Init(TVirtualStreamerInfo *obj = nullptr) override;
183 void Init(Bool_t isTransient = kFALSE);
184 Bool_t IsBase() const override;
185 void ls(Option_t *option="") const override;
186 Int_t ReadBuffer (TBuffer &b, char *pointer);
190 void SetErrorMessage(const char *msg) { fErrorMsg = msg; }
191 void Update(const TClass *oldClass, TClass *newClass) override;
192 Int_t WriteBuffer(TBuffer &b, char *pointer);
193
194 ClassDefOverride(TStreamerBase,3) //Streamer element of type base class
195};
196
197//________________________________________________________________________
199
200private:
203
204protected:
205 Int_t fCountVersion; //version number of the class with the counter
206 TString fCountName; //name of data member holding the array count
207 TString fCountClass; //name of the class with the counter
208 TStreamerBasicType *fCounter; //!pointer to basic type counter
209
210public:
211
213 TStreamerBasicPointer(const char *name, const char *title, Int_t offset, Int_t dtype,
214 const char *countName, const char *countClass, Int_t version, const char *typeName);
215 virtual ~TStreamerBasicPointer();
216 TClass *GetClassPointer() const override { return nullptr; }
217 const char *GetCountClass() const {return fCountClass.Data();}
218 const char *GetCountName() const {return fCountName.Data();}
220 ULongptr_t GetMethod() const override;
221 Int_t GetSize() const override;
222 void Init(TVirtualStreamerInfo *obj = nullptr) override;
223 Bool_t HasCounter() const override { return fCounter != nullptr; }
224 Bool_t IsaPointer() const override { return kTRUE; }
225 void SetArrayDim(Int_t dim) override;
226 void SetCountClass(const char *clname) { fCountClass = clname; }
227 void SetCountName(const char *name) { fCountName = name; }
228 void SetCountVersion(Int_t count) { fCountVersion = count; }
229 void Update(const TClass * /* oldClass */, TClass * /*newClass*/ ) override {}
230
231 ClassDefOverride(TStreamerBasicPointer,2) //Streamer element for a pointer to a basic type
232};
233
234//________________________________________________________________________
236
237private:
238 TStreamerLoop(const TStreamerLoop&) = delete;
240
241protected:
242 Int_t fCountVersion; //version number of the class with the counter
243 TString fCountName; //name of data member holding the array count
244 TString fCountClass; //name of the class with the counter
245 TStreamerBasicType *fCounter; //!pointer to basic type counter
246
247public:
248
250 TStreamerLoop(const char *name, const char *title, Int_t offset, const char *countName, const char *countClass, Int_t version, const char *typeName);
251 virtual ~TStreamerLoop();
252 const char *GetCountClass() const {return fCountClass.Data();}
253 const char *GetCountName() const {return fCountName.Data();}
255 const char *GetInclude() const override;
256 ULongptr_t GetMethod() const override;
257 Int_t GetSize() const override;
258 void Init(TVirtualStreamerInfo *obj = nullptr) override;
259 Bool_t IsaPointer() const override {return kTRUE; }
260 Bool_t HasCounter() const override { return fCounter != nullptr; }
261 void SetCountClass(const char *clname) { fCountClass = clname; }
262 void SetCountName(const char *name) { fCountName = name; }
263 void SetCountVersion(Int_t count) { fCountVersion = count; }
264
265 ClassDefOverride(TStreamerLoop,2) //Streamer element for a pointer to an array of objects
266};
267
268//________________________________________________________________________
270
271private:
274
275protected:
276 Int_t fCounter; //!value of data member when referenced by an array
277
278public:
279
281 TStreamerBasicType(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName);
282 virtual ~TStreamerBasicType();
283 TClass *GetClassPointer() const override { return nullptr; }
284 Int_t GetCounter() const { return fCounter; }
285 ULongptr_t GetMethod() const override;
286 Int_t GetSize() const override;
287 void Update(const TClass * /* oldClass */, TClass * /* newClass */) override {}
288
289 ClassDefOverride(TStreamerBasicType,2) //Streamer element for a basic type
290};
291
292//________________________________________________________________________
294
295private:
298
299public:
300
302 TStreamerObject(const char *name, const char *title, Int_t offset, const char *typeName);
303 virtual ~TStreamerObject();
304 const char *GetInclude() const override;
305 Int_t GetSize() const override;
306 void Init(TVirtualStreamerInfo *obj = nullptr) override;
307
308 ClassDefOverride(TStreamerObject,2) //Streamer element of type object
309};
310
311//________________________________________________________________________
313
314private:
317
318public:
319
321 TStreamerObjectAny(const char *name, const char *title, Int_t offset, const char *typeName);
322 virtual ~TStreamerObjectAny();
323 const char *GetInclude() const override;
324 Int_t GetSize() const override;
325 void Init(TVirtualStreamerInfo *obj = nullptr) override;
326
327 ClassDefOverride(TStreamerObjectAny,2) //Streamer element of type object other than TObject
328};
329
330//________________________________________________________________________
332
333private:
336
337public:
338
340 TStreamerObjectPointer(const char *name, const char *title, Int_t offset, const char *typeName);
341 virtual ~TStreamerObjectPointer();
342 const char *GetInclude() const override;
343 Int_t GetSize() const override;
344 void Init(TVirtualStreamerInfo *obj = nullptr) override;
345 Bool_t IsaPointer() const override {return kTRUE;}
346 void SetArrayDim(Int_t dim) override;
347
348 ClassDefOverride(TStreamerObjectPointer,2) //Streamer element of type pointer to a TObject
349};
350
351//________________________________________________________________________
353
354private:
357
358public:
359
361 TStreamerObjectAnyPointer(const char *name, const char *title, Int_t offset, const char *typeName);
363 const char *GetInclude() const override;
364 Int_t GetSize() const override;
365 void Init(TVirtualStreamerInfo *obj = nullptr) override;
366 Bool_t IsaPointer() const override { return kTRUE; }
367 void SetArrayDim(Int_t dim) override;
368
369 ClassDefOverride(TStreamerObjectAnyPointer,1) //Streamer element of type pointer to a non TObject
370};
371
372//________________________________________________________________________
374
375private:
378
379public:
380
382 TStreamerString(const char *name, const char *title, Int_t offset);
383 virtual ~TStreamerString();
384 const char *GetInclude() const override;
385 Int_t GetSize() const override;
386
387 ClassDefOverride(TStreamerString,2) //Streamer element of type TString
388};
389
390//________________________________________________________________________
392
393private:
394 TStreamerSTL(const TStreamerSTL&) = delete;
396
397protected:
398 Int_t fSTLtype; //type of STL vector
399 Int_t fCtype; //STL contained type
400
401public:
402
403 TStreamerSTL();
404 TStreamerSTL(const char *name, const char *title, Int_t offset,
405 const char *typeName, const char *trueType, Bool_t dmPointer);
406 TStreamerSTL(const char *name, const char *title, Int_t offset,
407 const char *typeName, const TVirtualCollectionProxy &proxy , Bool_t dmPointer);
408 virtual ~TStreamerSTL();
409 Bool_t CannotSplit() const override;
410 Bool_t IsaPointer() const override;
411 Bool_t IsBase() const override;
412 Int_t GetSTLtype() const {return fSTLtype;}
413 Int_t GetCtype() const {return fCtype;}
414 const char *GetInclude() const override;
415 Int_t GetSize() const override;
416 void ls(Option_t *option="") const override;
417 void SetSTLtype(Int_t t) {fSTLtype = t;}
418 void SetCtype(Int_t t) {fCtype = t;}
419 void SetStreamer(TMemberStreamer *streamer) override;
420
421 ClassDefOverride(TStreamerSTL,3) //Streamer element of type STL container
422};
423
424//________________________________________________________________________
426
427private:
430
431public:
432
434 TStreamerSTLstring(const char *name, const char *title, Int_t offset,
435 const char *typeName, Bool_t dmPointer);
436 virtual ~TStreamerSTLstring();
437 const char *GetInclude() const override;
438 Int_t GetSize() const override;
439
440 ClassDefOverride(TStreamerSTLstring,2) //Streamer element of type C++ string
441};
442
443class TVirtualObject;
444class TBuffer;
445
446#include "TSchemaRule.h"
447
448//________________________________________________________________________
450private:
453
454protected:
457
458public:
459
460 // TStreamerArtificial() : fReadFunc(0),fReadRawFunc(0) {}
461
462 TStreamerArtificial(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName) : TStreamerElement(name,title,offset,dtype,typeName), fReadFunc(0), fReadRawFunc(0) {}
463
466
469
470 ClassDefOverride(TStreamerArtificial, 0); // StreamerElement injected by a TSchemaRule. Transient only to preserve forward compatibility.
471};
472
473#endif
bool Bool_t
Definition: RtypesCore.h:63
int Int_t
Definition: RtypesCore.h:45
unsigned long ULongptr_t
Definition: RtypesCore.h:83
const Bool_t kFALSE
Definition: RtypesCore.h:101
const Bool_t kTRUE
Definition: RtypesCore.h:100
const char Option_t
Definition: RtypesCore.h:66
#define BIT(n)
Definition: Rtypes.h:85
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
void(* ClassStreamerFunc_t)(TBuffer &, void *)
Definition: Rtypes.h:72
void(* ClassConvStreamerFunc_t)(TBuffer &, void *, const TClass *)
Definition: Rtypes.h:73
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 b
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:110
void(* ReadFuncPtr_t)(char *, TVirtualObject *)
Definition: TSchemaRule.h:40
void(* ReadRawFuncPtr_t)(char *, TBuffer &)
Definition: TSchemaRule.h:41
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:80
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
EStatusBits
Definition: TObject.h:57
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)
Error message in case of checksum/version mismatch.
UInt_t & fBaseCheckSum
void SetErrorMessage(const char *msg)
Bool_t IsBase() const override
Return kTRUE if the element represent a base class.
void SetNewBaseClass(TClass *cl)
Int_t GetBaseVersion()
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
checksum of the base class (used during memberwise streaming)
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 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 base class
TVirtualStreamerInfo * fStreamerInfo
Pointer to a wrapper around a custom convertion streamer member function.
TClass * GetNewBaseClass()
ClassStreamerFunc_t fStreamerFunc
pointer to new base class if renamed
TString fErrorMsg
Pointer to the current StreamerInfo for the baset class.
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
void SetCountVersion(Int_t count)
TStreamerBasicPointer(const TStreamerBasicPointer &)=delete
void SetCountClass(const char *clname)
TStreamerBasicPointer()
pointer to basic type counter
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.
TStreamerBasicPointer & operator=(const TStreamerBasicPointer &)=delete
Int_t GetCountVersion() const
TStreamerBasicType * fCounter
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
ULongptr_t GetMethod() const override
return address of counter
TStreamerBasicType(const TStreamerBasicType &)=delete
TStreamerBasicType()
value of data member when referenced by an array
virtual ~TStreamerBasicType()
TStreamerBasicType dtor.
Int_t GetCounter() const
TClass * GetClassPointer() const override
Returns a pointer to the TClass of this element.
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 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.
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
element offset in class
Double_t GetXmax() const
Double_t fXmax
Minimum 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
new element class when reading
Double_t GetFactor() const
TStreamerElement(const TStreamerElement &)=delete
void ls(Option_t *option="") const override
Print the content of the element.
TString fTypeName
new element type when reading
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
Maximum of data member if a range is specified [xmin,xmax,nbits].
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
pointer to element Streamer
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
pointer to class of object
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
void GetSequenceType(TString &type) const
Fill type with the string representation of sequence information including 'cached',...
Int_t fNewType
base offset for TObject if the element inherits from it
ESTLtype
Conversion factor if a range is specified fFactor = (1<<nbits/(xmax-xmin)
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
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
TStreamerLoop()
pointer to basic type counter
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
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.
void Init(TVirtualStreamerInfo *obj=nullptr) override
Setup the element.
TStreamerObjectPointer()
Default ctor.
TStreamerObjectPointer(const TStreamerObjectPointer &)=delete
Bool_t IsaPointer() const override
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.
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
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.
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.
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:136
const char * Data() const
Definition: TString.h:369
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.
struct void * fTypeName
Definition: cppyy.h:9
@ kSTLbitset
Definition: ESTLType.h:37
@ kSTLmap
Definition: ESTLType.h:33
@ kSTLunorderedmultiset
Definition: ESTLType.h:43
@ kSTLstring
Definition: ESTLType.h:49
@ kSTLset
Definition: ESTLType.h:35
@ kSTLmultiset
Definition: ESTLType.h:36
@ kSTLdeque
Definition: ESTLType.h:32
@ kSTLvector
Definition: ESTLType.h:30
@ kSTLany
Definition: ESTLType.h:48
@ kSTLunorderedmultimap
Definition: ESTLType.h:45
@ kSTLunorderedset
Definition: ESTLType.h:42
@ kSTLlist
Definition: ESTLType.h:31
@ kSTLforwardlist
Definition: ESTLType.h:41
@ kSTLunorderedmap
Definition: ESTLType.h:44
@ kSTLmultimap
Definition: ESTLType.h:34