Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Internal::TTreeReaderArrayBase Class Reference

Base class of TTreeReaderArray.

Definition at line 29 of file TTreeReaderArray.h.

Public Member Functions

 TTreeReaderArrayBase (TTreeReader *reader, const char *branchname, TDictionary *dict)
 
EReadStatus GetReadStatus () const override
 
std::size_t GetSize () const
 
bool IsEmpty () const
 
- Public Member Functions inherited from ROOT::Internal::TTreeReaderValueBase
virtual ~TTreeReaderValueBase ()
 Unregister from tree reader, cleanup.
 
void * GetAddress ()
 Returns the memory address of the object being read.
 
const char * GetBranchName () const
 
TLeafGetLeaf ()
 If we are reading a leaf, return the corresponding TLeaf.
 
ESetupStatus GetSetupStatus () const
 Return this TTreeReaderValue's setup status.
 
bool IsValid () const
 Return true if the branch was setup and read correctly.
 
EReadStatus ProxyRead ()
 
EReadStatus ProxyReadDefaultImpl ()
 
template<BranchProxyRead_t Func>
ROOT::Internal::TTreeReaderValueBase::EReadStatus ProxyReadTemplate ()
 Try to read the value from the TBranchProxy, returns the status of the read.
 

Protected Member Functions

void CreateProxy () override
 Create the proxy object for our branch.
 
bool GetBranchAndLeaf (TBranch *&branch, TLeaf *&myLeaf, TDictionary *&branchActualType, bool suppressErrorsForMissingBranch=false)
 Determine the branch / leaf and its type; reset fProxy / fSetupStatus on error.
 
const char * GetBranchContentDataType (TBranch *branch, TString &contentTypeName, TDictionary *&dict)
 Access a branch's collection content (not the collection itself) through a proxy.
 
void SetImpl (TBranch *branch, TLeaf *myLeaf)
 Create the TVirtualCollectionReader object for our branch.
 
void * UntypedAt (std::size_t idx) const
 
- Protected Member Functions inherited from ROOT::Internal::TTreeReaderValueBase
 TTreeReaderValueBase (const TTreeReaderValueBase &)
 Copy-construct.
 
 TTreeReaderValueBase (TTreeReader *reader, const char *branchname, TDictionary *dict, bool opaqueRead=false)
 Construct a tree value reader and register it with the reader object.
 
void ErrorAboutMissingProxyIfNeeded ()
 
virtual const char * GetDerivedTypeName () const =0
 
Detail::TBranchProxyGetProxy () const
 
void MarkTreeReaderUnavailable ()
 
void NotifyNewTree (TTree *newTree)
 The TTreeReader has switched to a new TTree. Update the leaf.
 
TTreeReaderValueBaseoperator= (const TTreeReaderValueBase &)
 Copy-assign.
 
void RegisterWithTreeReader ()
 Register with tree reader.
 
TBranchSearchBranchWithCompositeName (TLeaf *&myleaf, TDictionary *&branchActualType, std::string &err)
 Search a branch the name of which contains a ".".
 

Protected Attributes

std::unique_ptr< TVirtualCollectionReaderfImpl
 
- Protected Attributes inherited from ROOT::Internal::TTreeReaderValueBase
TString fBranchName
 Name of the branch to read data from.
 
TDictionaryfDict
 Type that the branch should contain.
 
bool fHaveLeaf: 1
 Whether the data is in a leaf.
 
bool fHaveStaticClassOffsets: 1
 Whether !fStaticClassOffsets.empty()
 
TLeaffLeaf = nullptr
 
TString fLeafName
 
bool fOpaqueRead {false}
 If true, the reader will not do any type-checking against the actual type held by the branch.
 
Detail::TBranchProxyfProxy = nullptr
 Proxy for this branch, owned by TTreeReader.
 
Read_t fProxyReadFunc = &TTreeReaderValueBase::ProxyReadDefaultImpl
 ! Pointer to the Read implementation to use.
 
EReadStatus fReadStatus: 2
 Read status of this data access.
 
ESetupStatus fSetupStatus = kSetupNotSetup
 Setup status of this data access.
 
std::vector< Long64_tfStaticClassOffsets
 
TTreeReaderfTreeReader
 Tree reader we belong to.
 

Additional Inherited Members

- Public Types inherited from ROOT::Internal::TTreeReaderValueBase
typedef bool(ROOT::Detail::TBranchProxy::* BranchProxyRead_t) ()
 
enum  EReadStatus { kReadSuccess = 0 , kReadNothingYet , kReadError }
 
enum  ESetupStatus {
  kSetupNotSetup = -7 , kSetupTreeDestructed = -8 , kSetupMakeClassModeMismatch = -9 , kSetupMissingCounterBranch = -6 ,
  kSetupMissingBranch = -5 , kSetupInternalError = -4 , kSetupMissingDictionary = -3 , kSetupMismatch = -2 ,
  kSetupNotACollection = -1 , kSetupMatch = 0 , kSetupMatchBranch = 7 , kSetupNoCheck = 5 ,
  kSetupMatchLeaf = 6
}
 Status flags, 0 is good. More...
 
- Protected Types inherited from ROOT::Internal::TTreeReaderValueBase
typedef EReadStatus(TTreeReaderValueBase::* Read_t) ()
 
- Static Protected Member Functions inherited from ROOT::Internal::TTreeReaderValueBase
static const char * GetBranchDataType (TBranch *branch, TDictionary *&dict, TDictionary const *curDict)
 Retrieve the type of data stored by branch; put its dictionary into dict, return its type name.
 
static std::string GetElementTypeName (const std::type_info &ti)
 Stringify the template argument.
 

#include <TTreeReaderArray.h>

Inheritance diagram for ROOT::Internal::TTreeReaderArrayBase:
[legend]

Constructor & Destructor Documentation

◆ TTreeReaderArrayBase()

ROOT::Internal::TTreeReaderArrayBase::TTreeReaderArrayBase ( TTreeReader reader,
const char *  branchname,
TDictionary dict 
)
inline

Definition at line 31 of file TTreeReaderArray.h.

Member Function Documentation

◆ CreateProxy()

void ROOT::Internal::TTreeReaderArrayBase::CreateProxy ( )
overrideprotectedvirtual

Create the proxy object for our branch.

Reimplemented from ROOT::Internal::TTreeReaderValueBase.

Definition at line 405 of file TTreeReaderArray.cxx.

◆ GetBranchAndLeaf()

bool ROOT::Internal::TTreeReaderArrayBase::GetBranchAndLeaf ( TBranch *&  branch,
TLeaf *&  myLeaf,
TDictionary *&  branchActualType,
bool  suppressErrorsForMissingBranch = false 
)
protected

Determine the branch / leaf and its type; reset fProxy / fSetupStatus on error.

Definition at line 595 of file TTreeReaderArray.cxx.

◆ GetBranchContentDataType()

const char * ROOT::Internal::TTreeReaderArrayBase::GetBranchContentDataType ( TBranch branch,
TString contentTypeName,
TDictionary *&  dict 
)
protected

Access a branch's collection content (not the collection itself) through a proxy.

Retrieve the type of data contained in the collection stored by branch; put its dictionary into dict, If there is no dictionary, put its type name into contentTypeName. The contentTypeName is set to NULL if the branch does not contain a collection; in that case, the type of the branch is returned. In all other cases, NULL is returned.

Definition at line 816 of file TTreeReaderArray.cxx.

◆ GetReadStatus()

EReadStatus ROOT::Internal::TTreeReaderArrayBase::GetReadStatus ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Internal::TTreeReaderValueBase.

Definition at line 38 of file TTreeReaderArray.h.

◆ GetSize()

std::size_t ROOT::Internal::TTreeReaderArrayBase::GetSize ( ) const
inline

Definition at line 35 of file TTreeReaderArray.h.

◆ IsEmpty()

bool ROOT::Internal::TTreeReaderArrayBase::IsEmpty ( ) const
inline

Definition at line 36 of file TTreeReaderArray.h.

◆ SetImpl()

void ROOT::Internal::TTreeReaderArrayBase::SetImpl ( TBranch branch,
TLeaf myLeaf 
)
protected

Create the TVirtualCollectionReader object for our branch.

Definition at line 672 of file TTreeReaderArray.cxx.

◆ UntypedAt()

void * ROOT::Internal::TTreeReaderArrayBase::UntypedAt ( std::size_t  idx) const
inlineprotected

Definition at line 41 of file TTreeReaderArray.h.

Member Data Documentation

◆ fImpl

std::unique_ptr<TVirtualCollectionReader> ROOT::Internal::TTreeReaderArrayBase::fImpl
protected

Definition at line 50 of file TTreeReaderArray.h.

Libraries for ROOT::Internal::TTreeReaderArrayBase:

The documentation for this class was generated from the following files: