#ifndef ROOT_TBranchElement
#define ROOT_TBranchElement
#ifndef ROOT_TBranch
#include "TBranch.h"
#endif
#ifndef ROOT_TClassRef
#include "TClassRef.h"
#endif
class TFolder;
class TStreamerInfo;
class TVirtualCollectionProxy;
class TBranchElement : public TBranch {
protected:
enum { kBranchFolder = BIT(14), kDeleteObject = BIT(16) };
TString fClassName;
TString fParentName;
TString fClonesName;
TVirtualCollectionProxy* fCollProxy;
UInt_t fCheckSum;
Int_t fClassVersion;
Int_t fID;
Int_t fType;
Int_t fStreamerType;
Int_t fMaximum;
Int_t fSTLtype;
Int_t fNdata;
TBranchElement *fBranchCount;
TBranchElement *fBranchCount2;
TStreamerInfo *fInfo;
char *fObject;
char *fBranchPointer;
Bool_t fInit;
Bool_t fInitOffsets;
TClassRef fCurrentClass;
TClassRef fParentClass;
TClassRef fBranchClass;
Int_t *fBranchOffset;
Bool_t *fBranchTypes;
friend class TTreeCloner;
TBranchElement(const TBranchElement&);
TBranchElement& operator=(const TBranchElement&);
private:
void InitializeOffsets();
Bool_t CheckBranchID();
Bool_t IsMissingCollection() const;
TClass* GetCurrentClass();
TClass* GetParentClass();
TVirtualCollectionProxy *GetCollectionProxy();
Int_t GetDataMemberOffset(const TClass *cl, const char *name);
Int_t GetDataMemberOffsetEx(TClass* par_cl, TString& parentName, Int_t off);
public:
TBranchElement();
TBranchElement(const char *name, TStreamerInfo *sinfo, Int_t id, char *pointer, Int_t basketsize=32000, Int_t splitlevel = 0, Int_t btype=0);
TBranchElement(const char *name, TClonesArray *clones, Int_t basketsize=32000, Int_t splitlevel = 0, Int_t compress=-1);
TBranchElement(const char *name, TVirtualCollectionProxy *cont, Int_t basketsize=32000, Int_t splitlevel = 0, Int_t compress=-1);
virtual ~TBranchElement();
virtual Int_t Branch(const char *folder, Int_t bufsize=32000, Int_t splitlevel=99);
virtual TBranch *Branch(const char *name, void *address, const char *leaflist, Int_t bufsize=32000);
virtual TBranch *Branch(const char *name, const char *classname, void *addobj, Int_t bufsize=32000, Int_t splitlevel=99);
virtual void Browse(TBrowser *b);
void BuildTitle(const char *name);
Int_t Fill();
void FillLeaves(TBuffer &b);
TBranchElement *GetBranchCount() const {return fBranchCount;}
TBranchElement *GetBranchCount2() const {return fBranchCount2;}
UInt_t GetCheckSum() {return fCheckSum;}
virtual const char *GetClassName() const {return fClassName.Data();}
virtual const char *GetClonesName() const {return fClonesName.Data();}
Int_t GetEntry(Long64_t entry=0, Int_t getall = 0);
const char *GetIconName() const;
Int_t GetID() const {return fID;}
TStreamerInfo *GetInfo();
char *GetObject() const { return fObject; };
virtual const char *GetParentName() const {return fParentName.Data();}
virtual Int_t GetMaximum() const;
Int_t GetNdata() const {return fNdata;};
Int_t GetType() const {return fType;}
Int_t GetStreamerType() const {return fStreamerType;}
virtual const char *GetTypeName() const;
Double_t GetValue(Int_t i, Int_t len, Bool_t subarr = kFALSE) const;
virtual void *GetValuePointer() const;
Bool_t IsBranchFolder() const {return TestBit(kBranchFolder);}
Bool_t IsFolder() const;
virtual Bool_t Notify() {fAddress = 0; return 1;}
virtual void Print(Option_t *option="") const;
void PrintValue(Int_t i) const;
virtual void ReadLeaves(TBuffer &b);
virtual void Reset(Option_t *option="");
virtual void ResetAddress();
virtual void SetAddress(void *addobj);
virtual void SetAutoDelete(Bool_t autodel=kTRUE);
virtual void SetBasketSize(Int_t buffsize);
virtual void SetBranchCount(TBranchElement *bre);
virtual void SetBranchCount2(TBranchElement *bre) {fBranchCount2 = bre;}
virtual void SetBranchFolder() {SetBit(kBranchFolder);}
virtual void SetClassName(const char *name) {fClassName=name;}
void SetParentClass(TClass *clparent);
virtual void SetParentName(const char *name) {fParentName=name;}
virtual void SetupAddresses();
virtual void SetType(Int_t btype) {fType=btype;}
virtual Int_t Unroll(const char *name, TClass *cltop, TClass *cl,Int_t basketsize, Int_t splitlevel, Int_t btype);
ClassDef(TBranchElement,8)
};
inline void TBranchElement::SetParentClass(TClass *clparent)
{
fParentClass = clparent;
SetParentName(clparent?clparent->GetName():"");
}
#endif
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.