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 IsInteger() const override { return false; }
50 /// Return true only if the underlying data is a string
51 bool IsString() const override { return false; }
52 /// Return true only if the underlying data is a reference
53 bool IsReference() const override { return true; }
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 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 Update() override;
77};
78
79#endif /* ROOT_TFormLeafInfoReference */
static Roo_reg_AGKInteg1D instance
int Int_t
Definition RtypesCore.h:45
#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.
Proxy * GetProxy() const
Access to the info's proxy.
bool IsInteger() const override
Return true only if the underlying data is an integral value.
bool HasCounter() const override
Return true if any of underlying data has a array size counter.
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
Proxy * fProxy
! Cached pointer to reference proxy
bool IsReference() const override
Return true only if the underlying data is a reference.
TFormLeafInfo * DeepCopy() const override
Virtual copy constructor.
virtual TClass * GetValueClass(TLeaf *from)
Access to the value class of the reference proxy.
bool IsString() const override
Return true only if the underlying data is a string.
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.
~TFormLeafInfoReference() override
Default destructor.
TFormLeafInfoReference & operator=(const TFormLeafInfoReference &orig)
Exception safe assignment operator.
bool Update() override
TFormLeafInfo overload: Update (and propagate) cached information.
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