12#ifndef ROOT_TBranchProxy
13#define ROOT_TBranchProxy
61 operator const char*() {
return fName.Data(); }
69#if defined(_MSC_VER) && !defined(__clang__)
70#pragma optimize("", off)
114 virtual void Print();
122 const char *membername,
bool suppressMissingBranchError =
false);
149 auto treeEntry =
fDirector->GetReadEntry();
150 if (treeEntry !=
fRead) {
163 result &= (-1 !=
fLeafCount->GetBranch()->GetEntry(treeEntry));
171 result &= (-1 !=
fBranch->GetEntry(treeEntry));
242 auto treeEntry =
fDirector->GetReadEntry();
243 if (treeEntry !=
fRead) {
244 const bool result =
fParent->Read();
253 auto treeEntry =
fDirector->GetReadEntry();
254 if (treeEntry !=
fRead) {
255 const bool result =
fParent->Read();
266 auto treeEntry =
fDirector->GetReadEntry();
267 if (treeEntry !=
fRead) {
268 const bool result =
fParent->Read();
283 auto treeEntry =
fDirector->GetReadEntry();
284 if (treeEntry !=
fRead) {
285 bool result = (-1 !=
fBranch->GetEntry(treeEntry));
300 auto treeEntry =
fDirector->GetReadEntry();
301 if (treeEntry !=
fRead) {
302 bool result = (-1 !=
fBranch->GetEntry(treeEntry));
317 auto treeEntry =
fDirector->GetReadEntry();
318 if (treeEntry !=
fRead) {
319 bool result = (-1 !=
fBranch->GetEntry(treeEntry));
332 auto treeEntry =
fDirector->GetReadEntry();
333 if (treeEntry !=
fRead) {
334 bool result = (-1 !=
fBranchCount->GetEntry(treeEntry));
335 result &= (-1 !=
fBranch->GetEntry(treeEntry));
350 auto treeEntry =
fDirector->GetReadEntry();
351 if (treeEntry !=
fRead) {
352 bool result = (-1 !=
fBranchCount->GetEntry(treeEntry));
353 result &= (-1 !=
fBranch->GetEntry(treeEntry));
368 auto treeEntry =
fDirector->GetReadEntry();
369 if (treeEntry !=
fRead) {
370 bool result = (-1 !=
fBranchCount->GetEntry(treeEntry));
371 result &= (-1 !=
fBranch->GetEntry(treeEntry));
384 auto treeEntry =
fDirector->GetReadEntry();
385 if (treeEntry !=
fRead) {
401 fBranch->TBranch::GetEntry(treeEntry);
477 location = (
char*)tca->
At(i);
484 location = (
char*)
fParent->GetClaStart(i);
495 location = (
char*)tca->
At(i);
498 if (location) location +=
fOffset;
502 return *(
void**)(location);
514 char *location =
nullptr;
527 location = (
char*)
fParent->GetStlStart(i);
542 if (location) location +=
fOffset;
546 return *(
void**)(location);
561#if defined(_MSC_VER) && !defined(__clang__)
562#pragma optimize("", on)
573 std::cout <<
"fWhere " <<
fWhere << std::endl;
574 if (
fWhere) std::cout <<
"value? " << *(
unsigned char*)
GetStart() << std::endl;
582 if (!
Read())
return nullptr;
583 unsigned char* str = (
unsigned char*)
GetStart();
588 static unsigned char default_val = {};
604 operator const char*() {
605 if (!
Read())
return "";
610 if (!
Read())
return "";
615 if (!
Read())
return "";
619 operator std::string() {
620 if (!
Read())
return "";
621 return std::string((
const char*)
GetStart());
632 std::cout <<
"fWhere " <<
fWhere << std::endl;
637 std::cout <<
"location " <<
fWhere << std::endl;
647 if (!
Read())
return nullptr;
659 if (!
Read())
return nullptr;
660 if (!
fWhere)
return nullptr;
674 std::cout <<
"fWhere " <<
fWhere << std::endl;
679 std::cout <<
"location " <<
fWhere << std::endl;
689 if (!
Read())
return nullptr;
699 if (!
Read())
return nullptr;
700 if (!
fWhere)
return nullptr;
715 std::cout <<
"fWhere " <<
fWhere << std::endl;
716 if (
fWhere) std::cout <<
"value? " << *(T*)
GetStart() << std::endl;
724 if (!
Read())
return 0;
771 std::cout <<
"fWhere " <<
GetWhere() << std::endl;
780 if (!
Read())
return nullptr;
813 static T default_val;
843 static T default_val;
#define R__unlikely(expr)
int Int_t
Signed integer 4 bytes (int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
long long Long64_t
Portable signed long integer 8 bytes.
Error("WriteTObject","The current directory (%s) is not associated with a file. The object (%s) has not been written.", GetName(), objname)
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
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()
bool fSuppressMissingBranchError
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()
std::size_t GetValueSize() const
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 GetSuppressErrorsForMissingBranch() const
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()
~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
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)
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
~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.
TBranchProxy()
Constructor.
virtual void Print()
Display the content of the object.
A Branch for the case of an object.
A TTree is a list of TBranches.
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.
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.
Describe one element (data member) to be Streamed.
Defines a common interface to inspect/change the contents of an object that represents a collection.
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
static constexpr int gSize
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