12 #ifndef ROOT_TTreeReaderUtils
13 #define ROOT_TTreeReaderUtils
38 class TBranchProxyDirector;
39 class TTreeReaderArrayBase;
41 class TNamedBranchProxy {
43 TNamedBranchProxy(): fDict(0), fContentDict(0) {}
44 TNamedBranchProxy(TBranchProxyDirector* boss, TBranch* branch,
const char* fullname,
const char* membername):
45 fProxy(boss, fullname, branch, membername), fDict(0), fContentDict(0), fFullName(fullname) {}
49 TNamedBranchProxy(TBranchProxyDirector* boss, TBranch* branch,
const char* fullname,
const char* proxyname,
const char* membername):
50 fProxy(boss, proxyname, branch, membername), fDict(0), fContentDict(0), fFullName(fullname) {}
52 const char* GetName()
const {
return fFullName.c_str(); }
53 const Detail::TBranchProxy* GetProxy()
const {
return &fProxy; }
54 Detail::TBranchProxy* GetProxy() {
return &fProxy; }
55 TDictionary* GetDict()
const {
return fDict; }
56 void SetDict(TDictionary* dict) { fDict = dict; }
57 TDictionary* GetContentDict()
const {
return fContentDict; }
58 void SetContentDict(TDictionary* dict) { fContentDict = dict; }
61 Detail::TBranchProxy fProxy;
63 TDictionary* fContentDict;
64 std::string fFullName;
68 class TVirtualCollectionReader {
70 TTreeReaderValueBase::EReadStatus fReadStatus;
72 TVirtualCollectionReader() : fReadStatus(TTreeReaderValueBase::kReadNothingYet) {}
74 virtual ~TVirtualCollectionReader();
75 virtual size_t GetSize(Detail::TBranchProxy*) = 0;
76 virtual void* At(Detail::TBranchProxy*,
size_t ) = 0;
82 #endif // defined TTreeReaderUtils