8 #ifndef ROOT_TBranchSTL
9 #define ROOT_TBranchSTL
22 class TBranchSTL:
public TBranch {
25 TBranchSTL( TTree* tree,
const char* name,
26 TVirtualCollectionProxy* collProxy,
27 Int_t buffsize, Int_t splitlevel );
28 TBranchSTL( TBranch* parent,
const char* name,
29 TVirtualCollectionProxy* collProxy,
30 Int_t buffsize, Int_t splitlevel,
31 TStreamerInfo* info, Int_t
id );
32 virtual ~TBranchSTL();
33 virtual void Browse( TBrowser *b );
34 virtual Bool_t IsFolder()
const;
35 virtual const char *GetClassName()
const {
return fClassName.Data(); }
36 virtual Int_t GetExpectedType(TClass *&clptr,EDataType &type);
37 virtual Int_t GetEntry( Long64_t entry = 0, Int_t getall = 0 );
38 virtual TStreamerInfo *GetInfo()
const;
39 virtual void Print(Option_t*)
const;
40 virtual void SetAddress(
void* addr );
42 ClassDef( TBranchSTL, 1 )
46 void ReadLeavesImpl( TBuffer& b );
47 void FillLeavesImpl( TBuffer& b );
48 virtual Int_t FillImpl(ROOT::Internal::TBranchIMTHelper *);
50 struct ElementBranchHelper_t
52 ElementBranchHelper_t():
53 fBranch( 0 ), fPointers( 0 ), fId( 0 ),
54 fBaseOffset( 0 ), fPosition( 0 ) {}
56 TBranchElement* fBranch;
57 std::vector<void*>* fPointers;
63 typedef std::map<TClass*, ElementBranchHelper_t> BranchMap_t;
64 BranchMap_t fBranchMap;
65 std::vector<ElementBranchHelper_t> fBranchVector;
67 TVirtualCollectionProxy* fCollProxy;
73 mutable Int_t fClassVersion;
75 mutable TStreamerInfo *fInfo;
80 #endif // ROOT_TBranchSTL