12 #ifndef ROOT_TVirtualStreamerInfo 13 #define ROOT_TVirtualStreamerInfo 35 namespace ROOT {
namespace Detail {
class TCollectionProxyInfo; } }
66 kCannotOptimize =
BIT(12),
67 kIgnoreTObjectStreamer =
BIT(13),
71 kBuildOldUsed =
BIT(17),
72 kBuildRunning =
BIT(18)
85 kChar = 1, kShort = 2, kInt = 3, kLong = 4, kFloat = 5,
86 kDouble = 8, kDouble32= 9,
87 kUChar = 11, kUShort = 12, kUInt = 13, kULong = 14,
kBits = 15,
88 kLong64 = 16, kULong64 = 17, kBool = 18, kFloat16 = 19,
89 kObject = 61, kAny = 62, kObjectp = 63, kObjectP = 64, kTString = 65,
90 kTObject = 66, kTNamed = 67, kAnyp = 68, kAnyP = 69, kAnyPnoVT = 70,
92 kSkip = 100, kSkipL = 120, kSkipP = 140,
93 kConv = 200, kConvL = 220, kConvP = 240,
96 kStreamer = 500, kStreamLoop = 501,
101 kNeedObjectForVirtualBaseClass = 99997,
129 virtual void Build() = 0;
130 virtual void BuildCheck(
TFile *
file = 0) = 0;
131 virtual void BuildEmulated(
TFile *
file) = 0;
132 virtual void BuildOld() = 0;
137 virtual void Compile() = 0;
139 virtual Int_t GenerateHeaderFile(
const char *dirname,
const TList *subClasses = 0,
const TList *extrainfos = 0) = 0;
142 virtual UInt_t GetCheckSum()
const = 0;
143 virtual Int_t GetClassVersion()
const = 0;
146 virtual TObjArray *GetElements()
const = 0;
149 virtual Int_t GetElementOffset(
Int_t id)
const = 0;
150 virtual Version_t GetOldVersion()
const = 0;
151 virtual Int_t GetOnFileClassVersion()
const = 0;
152 virtual Int_t GetNumber()
const = 0;
153 virtual Int_t GetSize()
const = 0;
159 virtual void ls(
Option_t *option=
"")
const = 0;
161 virtual void *New(
void *obj = 0) = 0;
162 virtual void *NewArray(
Long_t nElements,
void* ary = 0) = 0;
163 virtual void Destructor(
void* p,
Bool_t dtorOnly =
kFALSE) = 0;
164 virtual void DeleteArray(
void* p,
Bool_t dtorOnly =
kFALSE) = 0;
166 virtual void SetCheckSum(
UInt_t checksum) = 0;
167 virtual void SetClass(
TClass *cl) = 0;
170 virtual void TagFile(
TFile *fFile) = 0;
171 virtual void Update(
const TClass *oldClass,
TClass *newClass) = 0;
173 static const char *GetElementCounterStart(
const char *dmTitle);
176 static Bool_t CanOptimize();
177 static Bool_t GetStreamMemberWise();
179 static Bool_t CanDelete();
186 virtual TClassStreamer *GenExplicitClassStreamer( const ::ROOT::Detail::TCollectionProxyInfo &info,
TClass *cl ) = 0;
RooCmdArg Optimize(Int_t flag=2)
Namespace for new ROOT classes and functions.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
static TVirtualStreamerInfo * fgInfoFactory
Abstract base class for accessing the data-members of a class.
V GetOffset(E val1, E val2, V iso)
#define ClassDef(name, id)
The TNamed class is the base class for all named ROOT classes.
TCppType_t GetActualClass(TCppType_t klass, TCppObject_t obj)
Bool_t IsCompiled() const
Int_t IsRecovered() const
static Bool_t fgCanDelete
true if the StreamerInfo has been compiled (i.e. fully built, ready to use for streaming).
The ROOT global object gROOT contains a list of all defined classes.
Bool_t IsOptimized() const
Bool_t fIsBuilt
true if the StreamerInfo has been optimized
Short_t SetClassVersion(RootClass *)
std::atomic< Bool_t > fIsCompiled
true if the StreamerInfo has been 'built' (i.e. has all the StreamerElements it should have) ...
Binding & operator=(OUT(*fun)(void))
static Bool_t fgStreamMemberWise
Abstract Interface class describing Streamer information for one class.