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) {
243 if (treeEntry !=
fRead) {
254 if (treeEntry !=
fRead) {
267 if (treeEntry !=
fRead) {
280 if (treeEntry !=
fRead) {
293 if (treeEntry !=
fRead) {
306 if (treeEntry !=
fRead) {
317 if (treeEntry !=
fRead) {
331 if (treeEntry !=
fRead) {
345 if (treeEntry !=
fRead) {
361 if (treeEntry !=
fRead) {
373 fBranch->TBranch::GetEntry(treeEntry);
449 location = (
char*)tca->
At(i);
467 location = (
char*)tca->
At(i);
470 if (location) location +=
fOffset;
474 return *(
void**)(location);
486 char *location =
nullptr;
514 if (location) location +=
fOffset;
518 return *(
void**)(location);
529#if defined(_MSC_VER) && !defined(__clang__)
530#pragma optimize("", on)
541 std::cout <<
"fWhere " <<
fWhere << std::endl;
542 if (
fWhere) std::cout <<
"value? " << *(
unsigned char*)
GetStart() << std::endl;
550 if (!
Read())
return nullptr;
551 unsigned char* str = (
unsigned char*)
GetStart();
556 static unsigned char default_val = {};
572 operator const char*() {
573 if (!
Read())
return "";
578 if (!
Read())
return "";
583 if (!
Read())
return "";
587 operator std::string() {
588 if (!
Read())
return "";
589 return std::string((
const char*)
GetStart());
600 std::cout <<
"fWhere " <<
fWhere << std::endl;
605 std::cout <<
"location " <<
fWhere << std::endl;
615 if (!
Read())
return nullptr;
627 if (!
Read())
return nullptr;
628 if (!
fWhere)
return nullptr;
642 std::cout <<
"fWhere " <<
fWhere << std::endl;
647 std::cout <<
"location " <<
fWhere << std::endl;
657 if (!
Read())
return nullptr;
667 if (!
Read())
return nullptr;
668 if (!
fWhere)
return nullptr;
683 std::cout <<
"fWhere " <<
fWhere << std::endl;
684 if (
fWhere) std::cout <<
"value? " << *(T*)
GetStart() << std::endl;
692 if (!
Read())
return 0;
739 std::cout <<
"fWhere " <<
GetWhere() << std::endl;
748 if (!
Read())
return nullptr;
781 static T default_val;
811 static T default_val;
#define R__unlikely(expr)
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.
Bool_t ReadNoParentNoBranchCountNoCollection()
TNotifyLink< TBranchProxy > fNotify
Internal::TBranchProxyDirector * fDirector
Bool_t ReadNoParentNoBranchCountCollectionPointer()
TVirtualCollectionProxy * fCollection
virtual Int_t GetEntries()
void * GetClaStart(UInt_t i=0)
Bool_t Setup()
Initialize/cache the necessary information.
const TString fBranchName
Bool_t ReadNoParentBranchCountCollectionNoPointer()
void * GetStlStart(UInt_t i=0)
TBranchElement * fBranchCount
const char * GetBranchName() const
@ kReadNoParentBranchCountNoCollection
@ kReadParentCollectionPointer
@ kReadParentCollectionNoPointer
@ kReadNoParentNoBranchCountNoCollection
@ kReadNoParentNoBranchCountCollectionPointer
@ kReadNoParentBranchCountCollectionNoPointer
@ kReadNoParentBranchCountCollectionPointer
@ kReadParentNoCollection
@ kReadNoParentNoBranchCountCollectionNoPointer
virtual void * GetStart(UInt_t=0)
virtual Int_t GetArrayLength()
Bool_t IsaPointer() const
const TString fDataMember
Bool_t ReadNoParentBranchCountNoCollection()
void Reset()
Completely reset the object.
Bool_t ReadParentCollectionPointer()
virtual void * GetAddressOfElement(UInt_t)
Return the address of the element number i.
TBranchProxy * GetProxy()
Bool_t ReadNoParentNoBranchCountCollectionNoPointer()
TBranchProxy()
Constructor.
virtual void Print()
Display the content of the object.
Bool_t ReadParentNoCollection()
TVirtualCollectionProxy * GetCollection()
Bool_t ReadNoParentBranchCountCollectionPointer()
TStreamerElement * fElement
Bool_t ReadParentCollectionNoPointer()
virtual ~TBranchProxy()
Typical Destructor.
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
TArrayProxy< TArrayType< Bool_t > > TArrayBoolProxy
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
TClaImpProxy< Bool_t > TClaBoolProxy
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
TStlImpProxy< Bool_t > TStlBoolProxy
TArrayProxy< TArrayType< Float_t > > TArrayFloatProxy
TImpProxy< Float16_t > TFloat16Proxy
TStlArrayProxy< TArrayType< UInt_t > > TStlArrayUIntProxy
TStlArrayProxy< TArrayType< Bool_t > > TStlArrayBoolProxy
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
TClaImpProxy< ULong_t > TClaULongProxy
TArrayProxy< TArrayType< Long64_t > > TArrayLong64Proxy
TClaImpProxy< ULong64_t > TClaULong64Proxy
TImpProxy< Double32_t > TDouble32Proxy
TClaArrayProxy< TArrayType< ULong_t > > TClaArrayULongProxy
TImpProxy< UInt_t > TUIntProxy
TClaImpProxy< UChar_t > TClaUCharProxy
TClaImpProxy< Float_t > TClaFloatProxy
TImpProxy< Float_t > TFloatProxy
TClaImpProxy< UShort_t > TClaUShortProxy
TArrayProxy< TArrayType< Float16_t > > TArrayFloat16Proxy
TImpProxy< Short_t > TShortProxy
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
TClaArrayProxy< TArrayType< Bool_t > > TClaArrayBoolProxy
TStlImpProxy< Long64_t > TStlLong64Proxy
TStlImpProxy< Short_t > TStlShortProxy
TImpProxy< Bool_t > TBoolProxy
TClaArrayProxy< TArrayType< Float16_t > > TClaArrayFloat16Proxy
TStlImpProxy< ULong_t > TStlULongProxy
TStlArrayProxy< TArrayType< Double_t > > TStlArrayDoubleProxy
TArrayProxy< TArrayType< Double32_t > > TArrayDouble32Proxy
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
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