Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaRTTI.h
Go to the documentation of this file.
1#ifndef Podd_THaRTTI_h_
2#define Podd_THaRTTI_h_
3
5//
6// THaRTTI
7//
9
10#include "TString.h"
11#include "VarType.h"
12
13class TDataMember;
14class TRealData;
15class TList;
16class TObject;
17
18class THaRTTI {
19
20public:
22
25 fDataMember(nullptr), fRealData(nullptr), fElemClass(nullptr) {}
26 virtual ~THaRTTI() = default;
27
28 Int_t Find( TClass* cl, const TString& var,
29 const void* p = nullptr );
30
32 TClass* GetClass() const;
35 Long_t GetOffset() const { return fOffset; }
36 TRealData* GetRealData() const { return fRealData; }
37 const char* GetSubscript() const { return fSubscript.Data(); }
38 VarType GetType() const { return fType; }
39 Bool_t IsArray() const { return (fArrayType != kScalar); }
40 Bool_t IsObject() const { return (fType == kObject ||
41 fType == kObjectP ||
42 fType == kObject2P); }
43 Bool_t IsObjVector() const { return (fType == kObjectV ||
44 fType == kObjectPV); }
45 Bool_t IsPointer() const;
46 Bool_t IsValid() const { return (fOffset != -1); }
47 void Print( Option_t* opt="" ) const;
48 void Reset() {
50 fDataMember = nullptr; fRealData = nullptr; fElemClass = nullptr;
51 }
52
53protected:
54
55 Long_t fOffset; // Offset with respect to THIS pointer
56 VarType fType; // Variable type (kObject if object)
57 EArrayType fArrayType; // Array type (see EArrayType)
58 TString fSubscript; // For fixed array: Description of dimension(s)
59 Long_t fCountOffset; // For var array: Offset of length specifier
60 TDataMember* fDataMember; // Associated ROOT TDataMember
61 TRealData* fRealData; // Associated ROOT TRealData
62 TClass* fElemClass; // Class of object vector element type
63
64 ClassDef(THaRTTI,0) //Parsed type information for a ROOT class member variable
65};
66
67#endif
int Int_t
long Long_t
bool Bool_t
const char Option_t
#define ClassDef(name, id)
TDataMember * fDataMember
Definition THaRTTI.h:60
EArrayType fArrayType
Definition THaRTTI.h:57
TRealData * fRealData
Definition THaRTTI.h:61
Bool_t IsObjVector() const
Definition THaRTTI.h:43
VarType GetType() const
Definition THaRTTI.h:38
TString fSubscript
Definition THaRTTI.h:58
EArrayType
Definition THaRTTI.h:21
@ kScalar
Definition THaRTTI.h:21
@ kVariable
Definition THaRTTI.h:21
@ kFixed
Definition THaRTTI.h:21
@ kVector
Definition THaRTTI.h:21
void Print(Option_t *opt="") const
Definition THaRTTI.cxx:284
virtual ~THaRTTI()=default
Bool_t IsPointer() const
Definition THaRTTI.cxx:278
THaRTTI()
Definition THaRTTI.h:23
Long_t GetCountOffset() const
Definition THaRTTI.h:33
Bool_t IsArray() const
Definition THaRTTI.h:39
Bool_t IsObject() const
Definition THaRTTI.h:40
Long_t fCountOffset
Definition THaRTTI.h:59
TClass * fElemClass
Definition THaRTTI.h:62
TRealData * GetRealData() const
Definition THaRTTI.h:36
Long_t fOffset
Definition THaRTTI.h:55
VarType fType
Definition THaRTTI.h:56
void Reset()
Definition THaRTTI.h:48
Long_t GetOffset() const
Definition THaRTTI.h:35
EArrayType GetArrayType() const
Definition THaRTTI.h:31
TClass * GetClass() const
Definition THaRTTI.cxx:265
TDataMember * GetDataMember() const
Definition THaRTTI.h:34
Bool_t IsValid() const
Definition THaRTTI.h:46
Int_t Find(TClass *cl, const TString &var, const void *p=nullptr)
Definition THaRTTI.cxx:29
const char * GetSubscript() const
Definition THaRTTI.h:37
const char * Data() const