12 #ifndef ROOT_TStreamerInfo 13 #define ROOT_TStreamerInfo 38 namespace ROOT {
namespace Detail {
class TCollectionProxyInfo; } }
39 namespace ROOT {
class TSchemaRule; }
61 TCompInfo() : fType(-1), fNewType(0), fOffset(0), fLength(0), fElem(0), fMethod(0),
62 fClass(0), fNewClass(0), fClassName(), fStreamer(0) {};
84 char **el = (
char**)fProxy->At(idx);
119 template <
typename T>
static T GetTypedValueAux(
Int_t type,
void *ladd,
int k,
Int_t len);
122 UInt_t GenerateIncludes(FILE *fp,
char *inclist,
const TList *extrainfos);
123 void GenerateDeclaration(FILE *fp, FILE *sfp,
const TList *subClasses,
Bool_t top =
kTRUE);
124 void InsertArtificialElements(std::vector<const ROOT::TSchemaRule*> &rules);
125 void DestructorImpl(
void* p,
Bool_t dtorOnly);
165 kChar = 1, kShort = 2, kInt = 3, kLong = 4, kFloat = 5,
166 kDouble = 8, kDouble32= 9,
168 kUChar = 11, kUShort = 12, kUInt = 13, kULong = 14,
kBits = 15,
169 kLong64 = 16, kULong64 = 17, kBool = 18, kFloat16 = 19,
170 kObject = 61, kAny = 62, kObjectp = 63, kObjectP = 64, kTString = 65,
171 kTObject = 66, kTNamed = 67, kAnyp = 68, kAnyP = 69, kAnyPnoVT = 70,
173 kSkip = 100, kSkipL = 120, kSkipP = 140,
174 kConv = 200, kConvL = 220, kConvP = 240,
176 kStreamer = 500, kStreamLoop = 501,
181 kNeedObjectForVirtualBaseClass = 99997,
195 TObject *Clone(
const char *newname =
"")
const;
200 Int_t GenerateHeaderFile(
const char *dirname,
const TList *subClasses = 0,
const TList *extrainfos = 0);
226 Int_t GetSize()
const;
227 Int_t GetSizeElements()
const;
231 template <
typename T>
T GetTypedValue(
char *pointer,
Int_t i,
Int_t j,
Int_t len)
const;
242 void *New(
void *obj = 0);
243 void *NewArray(
Long_t nElements,
void* ary = 0);
246 void PrintValue(
const char *
name,
char *pointer,
Int_t i,
Int_t len,
Int_t lenmax=1000)
const;
265 void TagFile(
TFile *fFile);
273 virtual void Update(
const TClass *oldClass,
TClass *newClass);
278 virtual TClassStreamer *GenExplicitClassStreamer( const ::ROOT::Detail::TCollectionProxyInfo &info,
TClass *cl );
Describe Streamer information for one class version.
TStreamerInfoActions::TActionSequence * GetWriteObjectWiseActions()
Int_t fClassVersion
Class version identifier.
static std::atomic< Int_t > fgCount
Number of TStreamerInfo instances.
TClass * fNewClass
Not Owned.
Version_t fOldVersion
! Version of the TStreamerInfo object read from the file
char * operator[](UInt_t idx) const
void SetCheckSum(UInt_t checksum)
TStreamerInfoActions::TActionSequence * fWriteMemberWiseVecPtr
! List of write action resulting from the compilation for use in member wise streaming.
Namespace for new ROOT classes and functions.
TStreamerElement * GetElem(Int_t id) const
Version_t GetOldVersion() const
All ROOT classes may have RTTI (run time type identification) support added.
T ReadBuffer(TBufferFile *buf)
One of the template functions used to read objects from messages.
TStreamerElement * GetElement(Int_t id) const
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Buffer base class used for serializing objects.
Int_t GetNelement() const
Double_t GetValueSTLP(TVirtualCollectionProxy *cont, Int_t i, Int_t j, Int_t k, Int_t eoffset) const
Int_t fNdata
!number of optimized elements
ULong_t * fVirtualInfoLoc
![fNVirtualInfoLoc] Location of the pointer to the TStreamerInfo inside the object (when emulated) ...
Abstract base class for accessing the data-members of a class.
TObject * At(Int_t idx) const
TCompInfo ** fCompFull
![fElements->GetEntries()]
V GetOffset(E val1, E val2, V iso)
TStreamerInfoActions::TActionSequence * fReadMemberWise
! List of read action resulting from the compilation for use in member wise streaming.
Int_t fSize
!size of the persistent class
TVirtualStreamerInfo * NewInfo(TClass *cl)
#define ClassDef(name, id)
TMemberStreamer * fStreamer
Not Owned.
Int_t fNfulldata
!number of elements
TStreamerInfoActions::TActionSequence * fReadObjectWise
! List of read action resulting from the compilation.
void SetOnFileClassVersion(Int_t vers)
void SetClass(TClass *cl)
UInt_t fCheckSum
Checksum of original class.
Int_t GetType(Int_t id) const
TCppType_t GetActualClass(TCppType_t klass, TCppObject_t obj)
TClass * fClass
!pointer to class
TObjArray * fElements
Array of TStreamerElements.
TVirtualCollectionProxy * fProxy
TStreamerInfoActions::TActionSequence * fWriteText
! List of write action resulting for text output like JSON or XML.
TClass * GetClass() const
Wrapper around an object and giving indirect access to its content even if the object is not of a cla...
UInt_t GetCheckSum() const
TPointerCollectionAdapter(TVirtualCollectionProxy *proxy)
Double_t GetValueClones(TClonesArray *clones, Int_t i, Int_t j, Int_t k, Int_t eoffset) const
Int_t fOnFileClassVersion
!Class version identifier as stored on file.
ULong_t GetMethod(Int_t id) const
Double_t GetValueSTL(TVirtualCollectionProxy *cont, Int_t i, Int_t j, Int_t k, Int_t eoffset) const
The ROOT global object gROOT contains a list of all defined classes.
TStreamerInfoActions::TActionSequence * GetReadMemberWiseActions(Bool_t forCollection)
TClass * fClass
Not Owned.
void SetClassVersion(Int_t vers)
Int_t GetElementOffset(Int_t id) const
TCompInfo * fComp
![fNslots with less than fElements->GetEntries()*1.5 used] Compiled info
TStreamerInfoActions::TActionSequence * fWriteMemberWise
! List of write action resulting from the compilation for use in member wise streaming.
TStreamerElement * fElem
Not Owned.
Int_t fNslots
!total numbrer of slots in fComp.
TStreamerInfoActions::TActionSequence * fReadMemberWiseVecPtr
! List of read action resulting from the compilation for use in member wise streaming.
TStreamerInfoActions::TActionSequence * fWriteObjectWise
! List of write action resulting from the compilation.
Int_t fNVirtualInfoLoc
! Number of virtual info location to update.
TStreamerInfoActions::TActionSequence * GetWriteTextActions()
Binding & operator=(OUT(*fun)(void))
Mother of all ROOT objects.
TObjArray * GetElements() const
Int_t GetClassVersion() const
Int_t GetOnFileClassVersion() const
An array of clone (identical) objects.
Int_t fNumber
!Unique identifier
Int_t GetOffset(Int_t id) const
Int_t GetNewType(Int_t id) const
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Int_t GetEntries() const
Return the number of objects in array (i.e.
TCompInfo ** fCompOpt
![fNdata]
Int_t GetLength(Int_t id) const
TStreamerInfoActions::TActionSequence * GetReadObjectWiseActions()
Abstract Interface class describing Streamer information for one class.
Double_t GetValue(char *pointer, Int_t i, Int_t j, Int_t len) const
std::atomic< ULong_t > fLiveCount
! Number of outstanding pointer to this StreamerInfo.
TStreamerInfoActions::TActionSequence * GetWriteMemberWiseActions(Bool_t forCollection)