Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TFormLeafInfoReference.h
Go to the documentation of this file.
1// @(#)root/treeplayer:$Id$
2// Author: Markus Frank 01/02/2006
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers and al. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TFormLeafInfoReference
13#define ROOT_TFormLeafInfoReference
14
15#include "TFormLeafInfo.h"
16
17// Forward declarations
19
22public:
23 Proxy* fProxy; ///<! Cached pointer to reference proxy
24 TBranch* fBranch; ///<! Cached pointer to branch object
25public:
26 /// Initializing constructor
27 TFormLeafInfoReference(TClass* classptr, TStreamerElement* element, int off);
28 /// Copy constructor
30 /// Default destructor
31 ~TFormLeafInfoReference() override;
32 /// Exception safe swap.
33 void Swap(TFormLeafInfoReference &other);
34 /// Exception safe assignment operator.
36 /// Virtual copy constructor
37 TFormLeafInfo* DeepCopy() const override;
38
39 /// Access to the info's proxy
40 Proxy* GetProxy() const { return fProxy; }
41 /// Access to the info's connected branch
42 TBranch* GetBranch() const { return fBranch; }
43 /// Access to the info's connected branch
44 void SetBranch(TBranch* branch) override
45 { fBranch = branch; if ( fNext ) fNext->SetBranch(branch); }
46 /// Access to the offset of the data
47 virtual Int_t GetOffset() const { return fOffset; }
48 /// Return true only if the underlying data is an integral value
49 Bool_t IsInteger() const override { return kFALSE; }
50 /// Return true only if the underlying data is a string
51 Bool_t IsString() const override { return kFALSE; }
52 /// Return true only if the underlying data is a reference
53 Bool_t IsReference() const override { return kTRUE; }
54 /// Access to target class pointer (if available)
55 TClass* GetClass() const override;
56 /// Access to the value class of the reference proxy
57 virtual TClass* GetValueClass(TLeaf* from);
58 /// Access to the value class from the object pointer
59 virtual TClass* GetValueClass(void* from);
60 /// Return the address of the local value
61 void *GetLocalValuePointer( TLeaf *from, Int_t instance = 0) override;
62 /// Return the address of the local value
63 void *GetLocalValuePointer(char *from, Int_t instance = 0) override;
64 /// Return true if any of underlying data has a array size counter
65 Bool_t HasCounter() const override;
66 /// Return the size of the underlying array for the current entry in the TTree.
67 Int_t ReadCounterValue(char *where) override;
68 /// Return the current size of the array container
69 Int_t GetCounterValue(TLeaf* leaf) override;
70
71 /// Access value of referenced object (macro from TFormLeafInfo.g)
72 DECLARE_GETVAL( , override);
73 /// Read value of referenced object
74 DECLARE_READVAL( , override);
75 /// TFormLeafInfo overload: Update (and propagate) cached information
76 Bool_t Update() override;
77};
78
79#endif /* ROOT_TFormLeafInfoReference */
static Roo_reg_AGKInteg1D instance
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
#define DECLARE_READVAL(VIRTUAL, OVERRIDE)
#define DECLARE_GETVAL(VIRTUAL, OVERRIDE)
A TTree is a list of TBranches.
Definition TBranch.h:93
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition TClass.h:81
A small helper class to implement the following of reference objects stored in a TTree.
Bool_t IsInteger() const override
Return true only if the underlying data is an integral value.
Proxy * GetProxy() const
Access to the info's proxy.
Int_t ReadCounterValue(char *where) override
Return the size of the underlying array for the current entry in the TTree.
TBranch * fBranch
! Cached pointer to branch object
Bool_t IsString() const override
Return true only if the underlying data is a string.
Bool_t HasCounter() const override
Return true if any of underlying data has a array size counter.
Proxy * fProxy
! Cached pointer to reference proxy
Bool_t Update() override
TFormLeafInfo overload: Update (and propagate) cached information.
TFormLeafInfo * DeepCopy() const override
Virtual copy constructor.
virtual TClass * GetValueClass(TLeaf *from)
Access to the value class of the reference proxy.
void SetBranch(TBranch *branch) override
Access to the info's connected branch.
TClass * GetClass() const override
Access to target class pointer (if available)
TBranch * GetBranch() const
Access to the info's connected branch.
virtual Int_t GetOffset() const
Access to the offset of the data.
Bool_t IsReference() const override
Return true only if the underlying data is a reference.
~TFormLeafInfoReference() override
Default destructor.
TFormLeafInfoReference & operator=(const TFormLeafInfoReference &orig)
Exception safe assignment operator.
void * GetLocalValuePointer(TLeaf *from, Int_t instance=0) override
Return the address of the local value.
Int_t GetCounterValue(TLeaf *leaf) override
Return the current size of the array container.
This class is a small helper class to implement reading a data member on an object stored in a TTree.
virtual void SetBranch(TBranch *br)
TFormLeafInfo * fNext
follow this to grab the inside information
Longptr_t fOffset
! Offset of the data pointed inside the class fClass
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition TLeaf.h:57
#define Swap(a, b)
Definition geom.c:201