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)
121 static void SwitchContainer(
TObjArray *);
125 void BuildTitle(
const char*
name);
126 virtual void InitializeOffsets();
127 virtual void InitInfo();
128 Bool_t IsMissingCollection()
const;
131 void ReleaseObject();
135 inline void ValidateAddress()
const;
142 void ReadLeavesMakeClass(
TBuffer& b);
143 void ReadLeavesCollection(
TBuffer& b);
144 void ReadLeavesCollectionSplitPtrMember(
TBuffer& b);
145 void ReadLeavesCollectionSplitVectorPtrMember(
TBuffer& b);
146 void ReadLeavesCollectionMember(
TBuffer& b);
147 void ReadLeavesClones(
TBuffer& b);
148 void ReadLeavesClonesMember(
TBuffer& b);
149 void ReadLeavesCustomStreamer(
TBuffer& b);
150 void ReadLeavesMember(
TBuffer& b);
151 void ReadLeavesMemberBranchCount(
TBuffer& b);
152 void ReadLeavesMemberCounter(
TBuffer& b);
153 void SetReadLeavesPtr();
154 void SetReadActionSequence();
155 void SetupAddressesImpl();
157 void FillLeavesImpl(
TBuffer& b);
158 void FillLeavesMakeClass(
TBuffer& b);
159 void FillLeavesCollection(
TBuffer& b);
160 void FillLeavesCollectionSplitVectorPtrMember(
TBuffer& b);
161 void FillLeavesCollectionSplitPtrMember(
TBuffer& b);
162 void FillLeavesCollectionMember(
TBuffer& b);
163 void FillLeavesAssociativeCollectionMember(
TBuffer& b);
164 void FillLeavesClones(
TBuffer& b);
165 void FillLeavesClonesMember(
TBuffer& b);
166 void FillLeavesCustomStreamer(
TBuffer& b);
167 void FillLeavesMemberBranchCount(
TBuffer& b);
168 void FillLeavesMemberCounter(
TBuffer& b);
169 void FillLeavesMember(
TBuffer& b);
170 void SetFillLeavesPtr();
171 void SetFillActionSequence();
185 virtual Int_t Fill();
186 virtual TBranch *FindBranch(
const char *name);
187 virtual TLeaf *FindLeaf(
const char *name);
188 virtual char *GetAddress()
const;
197 TClass *GetCurrentClass();
200 const char *GetIconName()
const;
203 Bool_t GetMakeClass()
const;
204 char *GetObject()
const;
206 virtual Int_t GetMaximum()
const;
211 virtual const char *GetTypeName()
const;
214 virtual void *GetValuePointer()
const;
219 virtual Bool_t Notify() {
if (fAddress) { ResetAddress(); }
return 1; }
221 void PrintValue(
Int_t i)
const;
224 virtual void ResetAddress();
225 virtual void ResetDeleteObject();
226 virtual void SetAddress(
void* addobj);
228 virtual void SetObject(
void *objadd);
229 virtual void SetBasketSize(
Int_t buffsize);
232 virtual void SetOffset(
Int_t offset);
233 inline void SetParentClass(
TClass* clparent);
235 virtual void SetTargetClass(
const char *name);
236 virtual void SetupAddresses();
238 virtual void UpdateFile();
250 kClonesMemberNode = 31,
259 fParentClass = clparent;
260 fParentName = clparent ? clparent->
GetName() :
"";
269 if (!fTree->GetMakeClass() && fAddress && (*((
char**) fAddress) != fObject)) {
276 if (TestBit(kDeleteObject)) {
278 Error(
"ValidateAddress",
"We owned an object whose address changed! our ptr: %p new ptr: %p",
279 (
void*)fObject, (
void*)*((
char**) fAddress));
287 #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
TTreeCloner & operator=(const TTreeCloner &)=delete
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.
void Init(TClassEdit::TInterpreterLookupHelper *helper)
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
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