12 #ifndef ROOT_TVirtualStreamerInfo 13 #define ROOT_TVirtualStreamerInfo 35 namespace ROOT {
namespace Detail {
class TCollectionProxyInfo; } }
65 enum { kCannotOptimize =
BIT(12),
66 kIgnoreTObjectStreamer =
BIT(13),
70 kBuildOldUsed =
BIT(17),
71 kBuildRunning =
BIT(18)
76 kChar = 1, kShort = 2, kInt = 3, kLong = 4, kFloat = 5,
77 kDouble = 8, kDouble32= 9,
78 kUChar = 11, kUShort = 12, kUInt = 13, kULong = 14,
kBits = 15,
79 kLong64 = 16, kULong64 = 17, kBool = 18, kFloat16 = 19,
80 kObject = 61, kAny = 62, kObjectp = 63, kObjectP = 64, kTString = 65,
81 kTObject = 66, kTNamed = 67, kAnyp = 68, kAnyP = 69, kAnyPnoVT = 70,
83 kSkip = 100, kSkipL = 120, kSkipP = 140,
84 kConv = 200, kConvL = 220, kConvP = 240,
86 kSTLstring = ROOT::kSTLstring ,
87 kStreamer = 500, kStreamLoop = 501,
92 kNeedObjectForVirtualBaseClass = 99997,
120 virtual void Build() = 0;
121 virtual void BuildCheck(
TFile *
file = 0) = 0;
122 virtual void BuildEmulated(
TFile *
file) = 0;
123 virtual void BuildOld() = 0;
128 virtual void Compile() = 0;
130 virtual Int_t GenerateHeaderFile(
const char *dirname,
const TList *subClasses = 0,
const TList *extrainfos = 0) = 0;
133 virtual UInt_t GetCheckSum()
const = 0;
134 virtual Int_t GetClassVersion()
const = 0;
137 virtual TObjArray *GetElements()
const = 0;
140 virtual Int_t GetElementOffset(
Int_t id)
const = 0;
141 virtual Version_t GetOldVersion()
const = 0;
142 virtual Int_t GetOnFileClassVersion()
const = 0;
143 virtual Int_t GetNumber()
const = 0;
144 virtual Int_t GetSize()
const = 0;
150 virtual void ls(
Option_t *option=
"")
const = 0;
152 virtual void *New(
void *obj = 0) = 0;
153 virtual void *NewArray(
Long_t nElements,
void* ary = 0) = 0;
154 virtual void Destructor(
void* p,
Bool_t dtorOnly =
kFALSE) = 0;
155 virtual void DeleteArray(
void* p,
Bool_t dtorOnly =
kFALSE) = 0;
157 virtual void SetCheckSum(
UInt_t checksum) = 0;
158 virtual void SetClass(
TClass *cl) = 0;
161 virtual void TagFile(
TFile *fFile) = 0;
162 virtual void Update(
const TClass *oldClass,
TClass *newClass) = 0;
164 static const char *GetElementCounterStart(
const char *dmTitle);
167 static Bool_t CanOptimize();
168 static Bool_t GetStreamMemberWise();
170 static Bool_t CanDelete();
177 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.