12#ifndef ROOT_TBranchProxy
13#define ROOT_TBranchProxy
69#if defined(_MSC_VER) && !defined(__clang__)
70#pragma optimize("", off)
111 virtual void Print();
146 if (treeEntry !=
fRead) {
235 if (treeEntry !=
fRead) {
246 if (treeEntry !=
fRead) {
259 if (treeEntry !=
fRead) {
272 if (treeEntry !=
fRead) {
285 if (treeEntry !=
fRead) {
298 if (treeEntry !=
fRead) {
309 if (treeEntry !=
fRead) {
323 if (treeEntry !=
fRead) {
337 if (treeEntry !=
fRead) {
353 if (treeEntry !=
fRead) {
365 fBranch->TBranch::GetEntry(treeEntry);
441 location = (
char*)tca->
At(i);
459 location = (
char*)tca->
At(i);
462 if (location) location +=
fOffset;
466 return *(
void**)(location);
478 char *location =
nullptr;
506 if (location) location +=
fOffset;
510 return *(
void**)(location);
521#if defined(_MSC_VER) && !defined(__clang__)
522#pragma optimize("", on)
533 std::cout <<
"fWhere " <<
fWhere << std::endl;
534 if (
fWhere) std::cout <<
"value? " << *(
unsigned char*)
GetStart() << std::endl;
542 if (!
Read())
return nullptr;
543 unsigned char* str = (
unsigned char*)
GetStart();
548 static unsigned char default_val = {};
564 operator const char*() {
565 if (!
Read())
return "";
570 if (!
Read())
return "";
575 if (!
Read())
return "";
579 operator std::string() {
580 if (!
Read())
return "";
581 return std::string((
const char*)
GetStart());
592 std::cout <<
"fWhere " <<
fWhere << std::endl;
597 std::cout <<
"location " <<
fWhere << std::endl;
607 if (!
Read())
return nullptr;
619 if (!
Read())
return nullptr;
620 if (!
fWhere)
return nullptr;
634 std::cout <<
"fWhere " <<
fWhere << std::endl;
639 std::cout <<
"location " <<
fWhere << std::endl;
649 if (!
Read())
return nullptr;
659 if (!
Read())
return nullptr;
660 if (!
fWhere)
return nullptr;
675 std::cout <<
"fWhere " <<
fWhere << std::endl;
676 if (
fWhere) std::cout <<
"value? " << *(T*)
GetStart() << std::endl;
684 if (!
Read())
return 0;
731 std::cout <<
"fWhere " <<
GetWhere() << std::endl;
740 if (!
Read())
return nullptr;
773 static T default_val;
803 static T default_val;
#define R__unlikely(expr)
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Base class for all the proxy object.
TNotifyLink< TBranchProxy > fNotify
Internal::TBranchProxyDirector * fDirector
TVirtualCollectionProxy * fCollection
virtual Int_t GetEntries()
void * GetClaStart(UInt_t i=0)
bool ReadNoParentBranchCountNoCollection()
const TString fBranchName
bool ReadParentCollectionNoPointer()
void * GetStlStart(UInt_t i=0)
TBranchElement * fBranchCount
const char * GetBranchName() const
@ kReadNoParentBranchCountNoCollection
@ kReadParentCollectionPointer
@ kReadParentCollectionNoPointer
@ kReadNoParentNoBranchCountNoCollection
@ kReadNoParentNoBranchCountCollectionPointer
@ kReadNoParentBranchCountCollectionNoPointer
@ kReadNoParentBranchCountCollectionPointer
@ kReadParentNoCollection
@ kReadNoParentNoBranchCountCollectionNoPointer
bool ReadNoParentNoBranchCountNoCollection()
virtual void * GetStart(UInt_t=0)
virtual Int_t GetArrayLength()
const TString fDataMember
bool Setup()
Initialize/cache the necessary information.
void Reset()
Completely reset the object.
virtual void * GetAddressOfElement(UInt_t)
Return the address of the element number i.
TBranchProxy * GetProxy()
bool ReadParentNoCollection()
TBranchProxy()
Constructor.
bool ReadParentCollectionPointer()
virtual void Print()
Display the content of the object.
bool ReadNoParentBranchCountCollectionPointer()
TVirtualCollectionProxy * GetCollection()
TStreamerElement * fElement
bool ReadNoParentNoBranchCountCollectionNoPointer()
bool ReadNoParentNoBranchCountCollectionPointer()
virtual ~TBranchProxy()
Typical Destructor.
bool ReadNoParentBranchCountCollectionNoPointer()
Concrete Implementation of the branch proxy around the data members which are array of char.
~TArrayCharProxy() override=default
TArrayCharProxy()=default
void Print() override
Display the content of the object.
unsigned char At(UInt_t i)
unsigned char operator[](Int_t i)
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
Template for concrete implementation of proxy around array of T.
void Print() override
Display the content of the object.
~TArrayProxy() override=default
const array_t & At(UInt_t i)
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
const array_t & operator[](Int_t i)
Int_t GetEntries() override
Long64_t GetReadEntry() const
Return the current 'local' entry number; i.e.
String builder to be used in the constructors.
TBranchProxyHelper(const char *left, const char *right=nullptr)
Template of the Concrete Implementation of the branch proxy around an TClonesArray of array of T.
array_t * operator[](Int_t i)
~TClaArrayProxy() override=default
Template of the Concrete Implementation of the branch proxy around TClonesArray of T.
~TClaImpProxy() override=default
TClaImpProxy & operator=(T)=delete
const T & operator[](Int_t i)
Base class for the proxy around object in TClonesArray.
Int_t GetEntries() override
const TClonesArray * operator->()
const TClonesArray * GetPtr()
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
~TClaProxy() override=default
void Print() override
Display the content of the object.
Template of the proxy around objects.
void Print() override
Display the content of the object.
~TImpProxy() override=default
TImpProxy & operator=(T)=delete
Template of the Concrete Implementation of the branch proxy around an stl container of array of T.
~TStlArrayProxy() override=default
array_t * operator[](Int_t i)
Template of the Concrete Implementation of the branch proxy around an stl container of T.
TStlImpProxy & operator=(T)=delete
const T & operator[](Int_t i)
~TStlImpProxy() override=default
Base class for the proxy around STL containers.
~TStlProxy() override=default
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
const TVirtualCollectionProxy * operator->()
Int_t GetEntries() override
void Print() override
Display the content of the object.
TVirtualCollectionProxy * GetPtr()
Base class of TTreeReaderValue.
A Branch for the case of an object.
Int_t GetEntry(Long64_t entry=0, Int_t getall=0) override
Read all branches of a BranchElement and return total number of bytes.
A TTree is a list of TBranches.
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all leaves of entry and return total number of bytes read.
TClass instances represent classes, structs and namespaces in the ROOT type system.
An array of clone (identical) objects.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
virtual void * GetValuePointer() const
TBranch * GetBranch() const
A node in a doubly linked list of subscribers to TChain notifications.
Int_t GetEntries() const override
Return the number of objects in array (i.e.
TObject * At(Int_t idx) const override
Int_t GetLast() const override
Return index of last object in array.
const char * Data() const
Defines a common interface to inspect/change the contents of an object that represents a collection.
virtual void PushProxy(void *objectstart)=0
Set the address of the container being proxied and keep track of the previous one.
virtual void PopProxy()=0
Reset the address of the container being proxied to the previous container.
virtual void * At(UInt_t idx)=0
Return the address of the value at index idx
virtual UInt_t Size() const =0
Return the current number of elements in the container.
TImpProxy< Long_t > TLongProxy
TClaArrayProxy< TArrayType< ULong64_t > > TClaArrayULong64Proxy
TClaArrayProxy< TArrayType< Long64_t > > TClaArrayLong64Proxy
TClaArrayProxy< TArrayType< UChar_t > > TClaArrayUCharProxy
TStlImpProxy< UInt_t > TStlUIntProxy
TStlArrayProxy< TArrayType< Long64_t > > TStlArrayLong64Proxy
TClaArrayProxy< TArrayType< UShort_t > > TClaArrayShortProxy
TClaArrayProxy< TArrayType< Double32_t > > TClaArrayDouble32Proxy
TArrayProxy< TArrayType< Int_t > > TArrayIntProxy
TArrayProxy< TArrayType< UShort_t > > TArrayUShortProxy
TStlArrayProxy< TArrayType< ULong_t > > TStlArrayULongProxy
TStlImpProxy< ULong64_t > TStlULong64Proxy
TClaArrayProxy< TArrayType< Char_t > > TClaArrayCharProxy
TStlImpProxy< Double_t > TStlDoubleProxy
TStlArrayProxy< TArrayType< Int_t > > TStlArrayIntProxy
TStlArrayProxy< TArrayType< Float_t > > TStlArrayFloatProxy
TStlArrayProxy< TArrayType< Char_t > > TStlArrayCharProxy
TImpProxy< UShort_t > TUShortProxy
TStlArrayProxy< TArrayType< UShort_t > > TStlArrayShortProxy
TStlImpProxy< UChar_t > TStlUCharProxy
TClaImpProxy< Long_t > TClaLongProxy
TImpProxy< Double_t > TDoubleProxy
TImpProxy< ULong_t > TULongProxy
TStlArrayProxy< TArrayType< UChar_t > > TStlArrayUCharProxy
TArrayProxy< TArrayType< UChar_t > > TArrayUCharProxy
TClaImpProxy< Char_t > TClaCharProxy
TStlImpProxy< Char_t > TStlCharProxy
TClaImpProxy< Int_t > TClaIntProxy
TImpProxy< Long64_t > TLong64Proxy
TStlImpProxy< Float16_t > TStlFloat16Proxy
TClaArrayProxy< TArrayType< Long_t > > TClaArrayLongProxy
TStlImpProxy< Float_t > TStlFloatProxy
TStlArrayProxy< TArrayType< Float16_t > > TStlArrayFloat16Proxy
TStlImpProxy< Long_t > TStlLongProxy
TArrayProxy< TArrayType< UInt_t > > TArrayUIntProxy
TImpProxy< UChar_t > TUCharProxy
TClaArrayProxy< TArrayType< Float_t > > TClaArrayFloatProxy
TImpProxy< Char_t > TCharProxy
TArrayProxy< TArrayType< UShort_t > > TArrayShortProxy
TClaArrayProxy< TArrayType< Int_t > > TClaArrayIntProxy
TImpProxy< ULong64_t > TULong64Proxy
TArrayProxy< TArrayType< Double_t > > TArrayDoubleProxy
TClaImpProxy< Long64_t > TClaLong64Proxy
TArrayProxy< TArrayType< ULong64_t > > TArrayULong64Proxy
TImpProxy< Int_t > TIntProxy
TClaArrayProxy< TArrayType< UInt_t > > TClaArrayUIntProxy
TClaImpProxy< Short_t > TClaShortProxy
TClaArrayProxy< TArrayType< UShort_t > > TClaArrayUShortProxy
TArrayProxy< TArrayType< bool > > TArrayBoolProxy
TArrayProxy< TArrayType< Float_t > > TArrayFloatProxy
TImpProxy< Float16_t > TFloat16Proxy
TStlArrayProxy< TArrayType< UInt_t > > TStlArrayUIntProxy
TClaImpProxy< Double32_t > TClaDouble32Proxy
TStlArrayProxy< TArrayType< Double32_t > > TStlArrayDouble32Proxy
TClaImpProxy< UInt_t > TClaUIntProxy
TArrayProxy< TArrayType< ULong_t > > TArrayULongProxy
TStlImpProxy< Int_t > TStlIntProxy
TClaImpProxy< Double_t > TClaDoubleProxy
TStlArrayProxy< TArrayType< bool > > TStlArrayBoolProxy
TClaImpProxy< ULong_t > TClaULongProxy
TArrayProxy< TArrayType< Long64_t > > TArrayLong64Proxy
TClaImpProxy< ULong64_t > TClaULong64Proxy
TImpProxy< Double32_t > TDouble32Proxy
TClaArrayProxy< TArrayType< ULong_t > > TClaArrayULongProxy
TImpProxy< bool > TBoolProxy
TImpProxy< UInt_t > TUIntProxy
TClaImpProxy< UChar_t > TClaUCharProxy
TClaImpProxy< Float_t > TClaFloatProxy
TStlImpProxy< bool > TStlBoolProxy
TImpProxy< Float_t > TFloatProxy
TClaImpProxy< UShort_t > TClaUShortProxy
TArrayProxy< TArrayType< Float16_t > > TArrayFloat16Proxy
TImpProxy< Short_t > TShortProxy
TClaImpProxy< bool > TClaBoolProxy
TArrayProxy< TArrayType< Long_t > > TArrayLongProxy
TStlImpProxy< Double32_t > TStlDouble32Proxy
TStlArrayProxy< TArrayType< UShort_t > > TStlArrayUShortProxy
TClaArrayProxy< TArrayType< Double_t > > TClaArrayDoubleProxy
TStlArrayProxy< TArrayType< ULong64_t > > TStlArrayULong64Proxy
TStlArrayProxy< TArrayType< Long_t > > TStlArrayLongProxy
TStlImpProxy< UShort_t > TStlUShortProxy
TClaImpProxy< Float16_t > TClaFloat16Proxy
TStlImpProxy< Long64_t > TStlLong64Proxy
TStlImpProxy< Short_t > TStlShortProxy
TClaArrayProxy< TArrayType< Float16_t > > TClaArrayFloat16Proxy
TClaArrayProxy< TArrayType< bool > > TClaArrayBoolProxy
TStlImpProxy< ULong_t > TStlULongProxy
TStlArrayProxy< TArrayType< Double_t > > TStlArrayDoubleProxy
TArrayProxy< TArrayType< Double32_t > > TArrayDouble32Proxy
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Helper template to be able to determine and use array dimensions.
static constexpr int gSize
Helper class for proxy around multi dimension array.
static constexpr int gSize