12 #ifndef ROOT_TBranchElement 13 #define ROOT_TBranchElement 28 #ifndef ROOT_TClassRef 60 kBranchFolder =
BIT(14),
61 kDeleteObject =
BIT(16),
63 kOwnOnfileObj =
BIT(19),
64 kAddressSet =
BIT(20),
66 kDecomposedObj=
BIT(21)
109 static void SwitchContainer(
TObjArray *);
113 void BuildTitle(
const char*
name);
114 virtual void InitializeOffsets();
115 virtual void InitInfo();
116 Bool_t IsMissingCollection()
const;
119 void ReleaseObject();
123 inline void ValidateAddress()
const;
129 void ReadLeavesImpl(
TBuffer& b);
130 void ReadLeavesMakeClass(
TBuffer& b);
131 void ReadLeavesCollection(
TBuffer& b);
132 void ReadLeavesCollectionSplitPtrMember(
TBuffer& b);
133 void ReadLeavesCollectionSplitVectorPtrMember(
TBuffer& b);
134 void ReadLeavesCollectionMember(
TBuffer& b);
135 void ReadLeavesClones(
TBuffer& b);
136 void ReadLeavesClonesMember(
TBuffer& b);
137 void ReadLeavesCustomStreamer(
TBuffer& b);
138 void ReadLeavesMember(
TBuffer& b);
139 void ReadLeavesMemberBranchCount(
TBuffer& b);
140 void ReadLeavesMemberCounter(
TBuffer& b);
141 void SetReadLeavesPtr();
142 void SetReadActionSequence();
143 void SetupAddressesImpl();
145 void FillLeavesImpl(
TBuffer& b);
146 void FillLeavesMakeClass(
TBuffer& b);
147 void FillLeavesCollection(
TBuffer& b);
148 void FillLeavesCollectionSplitVectorPtrMember(
TBuffer& b);
149 void FillLeavesCollectionSplitPtrMember(
TBuffer& b);
150 void FillLeavesCollectionMember(
TBuffer& b);
151 void FillLeavesAssociativeCollectionMember(
TBuffer& b);
152 void FillLeavesClones(
TBuffer& b);
153 void FillLeavesClonesMember(
TBuffer& b);
154 void FillLeavesCustomStreamer(
TBuffer& b);
155 void FillLeavesMemberBranchCount(
TBuffer& b);
156 void FillLeavesMemberCounter(
TBuffer& b);
157 void FillLeavesMember(
TBuffer& b);
158 void SetFillLeavesPtr();
159 void SetFillActionSequence();
173 virtual Int_t Fill();
174 virtual TBranch *FindBranch(
const char *name);
175 virtual TLeaf *FindLeaf(
const char *name);
176 virtual char *GetAddress()
const;
185 TClass *GetCurrentClass();
188 const char *GetIconName()
const;
191 Bool_t GetMakeClass()
const;
192 char *GetObject()
const;
194 virtual Int_t GetMaximum()
const;
199 virtual const char *GetTypeName()
const;
202 virtual void *GetValuePointer()
const;
207 virtual Bool_t Notify() {
if (fAddress) { ResetAddress(); }
return 1; }
209 void PrintValue(
Int_t i)
const;
212 virtual void ResetAddress();
213 virtual void ResetDeleteObject();
214 virtual void SetAddress(
void* addobj);
216 virtual void SetObject(
void *objadd);
217 virtual void SetBasketSize(
Int_t buffsize);
220 virtual void SetOffset(
Int_t offset);
221 inline void SetParentClass(
TClass* clparent);
223 virtual void SetTargetClass(
const char *name);
224 virtual void SetupAddresses();
226 virtual void UpdateFile();
238 kClonesMemberNode = 31,
247 fParentClass = clparent;
248 fParentName = clparent ? clparent->
GetName() :
"";
257 if (!fTree->GetMakeClass() && fAddress && (*((
char**) fAddress) != fObject)) {
264 if (TestBit(kDeleteObject)) {
266 Error(
"ValidateAddress",
"We owned an object whose address changed! our ptr: %p new ptr: %p",
267 (
void*)fObject, (
void*)*((
char**) fAddress));
275 #endif // ROOT_TBranchElement Describe Streamer information for one class version.
TClassRef fTargetClass
Initialization flag to not endlessly recalculate offsets.
virtual const char * GetName() const
Returns name of object.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
TBranchElement * GetBranchCount2() const
A TFolder object is a collection of objects and folders.
TBranchElement * fBranchCount2
virtual TClass * GetTargetClass()
Double_t GetValue(Int_t i, Int_t len, Bool_t subarr=kFALSE) const
Int_t * GetBranchOffset() const
Buffer base class used for serializing objects.
UInt_t fCheckSum
collection interface (if any)
TStreamerInfoActions::TActionSequence * fFillActionSequence
Set of actions to be executed to extract the data from the basket.
Bool_t fInit
Place holder for the onfile representation of data members.
TBranchElement * GetBranchCount() const
virtual void SetBranchFolder()
Int_t fNdata
STL container type.
TVirtualArray * fOnfileObject
Pointer to object at *fAddress.
#define ClassDef(name, id)
TStreamerInfoActions::TActionSequence * fReadActionSequence
List of the serial number of all the StreamerInfo to be used.
void Init(TClassEdit::TInterpreterLookupHelper *helper)
Int_t * fBranchOffset
Reference to class definition in fClonesName.
TVirtualCollectionProxy * fCollProxy
void Error(const char *location, const char *msgfmt,...)
virtual const char * GetClonesName() const
Using a TBrowser one can browse all ROOT objects.
void SetParentClass(TClass *clparent)
void ValidateAddress() const
Small helper class to generically acquire and release iterators.
Wrapper around an object and giving indirect access to its content even if the object is not of a cla...
virtual void SetType(Int_t btype)
TClassRef fParentClass
Reference to current (transient) class definition.
TBranchElement * fBranchCount
Number of data in this branch.
TClassRef fCurrentClass
Reference to the target in-memory class.
The ROOT global object gROOT contains a list of all defined classes.
TClassRef fBranchClass
Reference to class definition in fParentName.
void Reset(Detail::TBranchProxy *x)
A Branch for the case of an object.
void Print(std::ostream &os, const OptionType &opt)
virtual void SetClassName(const char *name)
virtual const char * GetClassName() const
Return the name of the user class whose content is stored in this branch, if any. ...
void SetBranchCount2(TBranchElement *bre)
Int_t fBranchID
Sub-Branch offsets with respect to current transient class.
std::vector< Int_t > fIDs
ID number assigned by a TRefTable.
TClassRef fClonesClass
Reference to class definition in fClassName.
Bool_t IsBranchFolder() const
Binding & operator=(OUT(*fun)(void))
Bool_t fInitOffsets
Initialization flag for branch assignment.
TClassRef is used to implement a permanent reference to a TClass object.
An array of clone (identical) objects.
Class implementing or helping the various TTree cloning method.
TVirtualCollectionIterators * fWriteIterators
holds the iterators when the branch is of fType==4.
virtual TClass * GetClass() const
TVirtualCollectionIterators * fIterators
Set of actions to be executed to write the data to the basket.
virtual const char * GetParentName() const
char * fObject
Pointer to StreamerInfo.
A TTree object has a header with a name and a title.
virtual void SetParentName(const char *name)
A TTree is a list of TBranches.
TVirtualCollectionPtrIterators * fPtrIterators
holds the read (non-staging) iterators when the branch is of fType==4 and associative containers...
virtual Bool_t Notify()
This method must be overridden to handle object notification.
Int_t GetStreamerType() const
virtual Bool_t IsObjectOwner() const
const char * Data() const