12 #ifndef ROOT_TBranchElement 13 #define ROOT_TBranchElement 52 kBranchFolder =
BIT(14),
53 kDeleteObject =
BIT(16),
55 kOwnOnfileObj =
BIT(19),
56 kAddressSet =
BIT(20),
58 kDecomposedObj=
BIT(21)
113 static void SwitchContainer(
TObjArray *);
117 void BuildTitle(
const char*
name);
118 virtual void InitializeOffsets();
119 virtual void InitInfo();
120 Bool_t IsMissingCollection()
const;
123 void ReleaseObject();
127 inline void ValidateAddress()
const;
134 void ReadLeavesMakeClass(
TBuffer& b);
135 void ReadLeavesCollection(
TBuffer& b);
136 void ReadLeavesCollectionSplitPtrMember(
TBuffer& b);
137 void ReadLeavesCollectionSplitVectorPtrMember(
TBuffer& b);
138 void ReadLeavesCollectionMember(
TBuffer& b);
139 void ReadLeavesClones(
TBuffer& b);
140 void ReadLeavesClonesMember(
TBuffer& b);
141 void ReadLeavesCustomStreamer(
TBuffer& b);
142 void ReadLeavesMember(
TBuffer& b);
143 void ReadLeavesMemberBranchCount(
TBuffer& b);
144 void ReadLeavesMemberCounter(
TBuffer& b);
145 void SetReadLeavesPtr();
146 void SetReadActionSequence();
147 void SetupAddressesImpl();
149 void FillLeavesImpl(
TBuffer& b);
150 void FillLeavesMakeClass(
TBuffer& b);
151 void FillLeavesCollection(
TBuffer& b);
152 void FillLeavesCollectionSplitVectorPtrMember(
TBuffer& b);
153 void FillLeavesCollectionSplitPtrMember(
TBuffer& b);
154 void FillLeavesCollectionMember(
TBuffer& b);
155 void FillLeavesAssociativeCollectionMember(
TBuffer& b);
156 void FillLeavesClones(
TBuffer& b);
157 void FillLeavesClonesMember(
TBuffer& b);
158 void FillLeavesCustomStreamer(
TBuffer& b);
159 void FillLeavesMemberBranchCount(
TBuffer& b);
160 void FillLeavesMemberCounter(
TBuffer& b);
161 void FillLeavesMember(
TBuffer& b);
162 void SetFillLeavesPtr();
163 void SetFillActionSequence();
177 virtual TBranch *FindBranch(
const char *name);
178 virtual TLeaf *FindLeaf(
const char *name);
179 virtual char *GetAddress()
const;
188 TClass *GetCurrentClass();
191 const char *GetIconName()
const;
194 Bool_t GetMakeClass()
const;
195 char *GetObject()
const;
197 virtual Int_t GetMaximum()
const;
202 virtual const char *GetTypeName()
const;
205 virtual void *GetValuePointer()
const;
210 virtual Bool_t Notify() {
if (fAddress) { ResetAddress(); }
return 1; }
212 void PrintValue(
Int_t i)
const;
215 virtual void ResetAddress();
216 virtual void ResetDeleteObject();
217 virtual void SetAddress(
void* addobj);
219 virtual void SetObject(
void *objadd);
220 virtual void SetBasketSize(
Int_t buffsize);
223 virtual void SetOffset(
Int_t offset);
224 inline void SetParentClass(
TClass* clparent);
226 virtual void SetTargetClass(
const char *name);
227 virtual void SetupAddresses();
229 virtual void UpdateFile();
241 kClonesMemberNode = 31,
253 fParentClass = clparent;
254 fParentName = clparent ? clparent->
GetName() :
"";
263 if (!fTree->GetMakeClass() && fAddress && (*((
char**) fAddress) != fObject)) {
270 if (TestBit(kDeleteObject)) {
272 Error(
"ValidateAddress",
"We owned an object whose address changed! our ptr: %p new ptr: %p",
273 (
void*)fObject, (
void*)*((
char**) fAddress));
281 #endif // ROOT_TBranchElement Describe Streamer information for one class version.
TClassRef fTargetClass
! Reference to the target in-memory class
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
pointer to secondary branchcount branch
virtual TClass * GetTargetClass()
Double_t GetValue(Int_t i, Int_t len, Bool_t subarr=kFALSE) const
TString fParentName
Name of parent class.
Int_t * GetBranchOffset() const
Buffer base class used for serializing objects.
UInt_t fCheckSum
CheckSum of class.
TStreamerInfoActions::TActionSequence * fFillActionSequence
! Set of actions to be executed to write the data to the basket.
Bool_t fInit
! Initialization flag for branch assignment
TBranchElement * GetBranchCount() const
virtual void SetBranchFolder()
Int_t fNdata
! Number of data in this branch
TVirtualArray * fOnfileObject
! Place holder for the onfile representation of data members.
#define ClassDef(name, id)
TStreamerInfoActions::TActionSequence * fReadActionSequence
! Set of actions to be executed to extract the data from the basket.
Int_t fMaximum
Maximum entries for a TClonesArray or variable array.
Int_t * fBranchOffset
! Sub-Branch offsets with respect to current transient class
TVirtualCollectionProxy * fCollProxy
! collection interface (if any)
Version_t fClassVersion
Version number of class.
TString fClassName
Class name of referenced object.
void Error(const char *location, const char *msgfmt,...)
virtual const char * GetClonesName() const
TString fClonesName
Name of class in TClonesArray (if any)
Using a TBrowser one can browse all ROOT objects.
Int_t fID
element serial number in fInfo
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 class definition in fParentName
TBranchElement * fBranchCount
pointer to primary branchcount branch
Int_t fStreamerType
branch streamer type
TClassRef fCurrentClass
! Reference to current (transient) class definition
The ROOT global object gROOT contains a list of all defined classes.
TClassRef fBranchClass
! Reference to class definition in fClassName
void Reset(Detail::TBranchProxy *x)
A Branch for the case of an object.
Int_t fSTLtype
! STL container type
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
! ID number assigned by a TRefTable.
std::vector< Int_t > fIDs
! List of the serial number of all the StreamerInfo to be used.
TClassRef fClonesClass
! Reference to class definition in fClonesName
Bool_t IsBranchFolder() const
Binding & operator=(OUT(*fun)(void))
Bool_t fInitOffsets
! Initialization flag to not endlessly recalculate offsets
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 read (non-staging) iterators when the branch is of fType==4 and associative containers...
virtual TClass * GetClass() 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
TVirtualCollectionIterators * fIterators
! holds the iterators when the branch is of fType==4.
virtual const char * GetParentName() const
char * fObject
! Pointer to object at *fAddress
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 iterators when the branch is of fType==4 and it is a split collection of pointers...
virtual Bool_t Notify()
This method must be overridden to handle object notification.
Int_t GetStreamerType() const
virtual Bool_t IsObjectOwner() const
TStreamerInfo * fInfo
! Pointer to StreamerInfo
const char * Data() const