12 #ifndef ROOT_TClingBaseClassInfo
13 #define ROOT_TClingBaseClassInfo
31 #include "clang/AST/DeclCXX.h"
40 class TClingClassInfo;
42 class TClingBaseClassInfo {
46 cling::Interpreter *fInterp;
47 TClingClassInfo *fClassInfo;
50 const clang::Decl *fDecl;
51 clang::CXXRecordDecl::base_class_const_iterator fIter;
52 TClingClassInfo *fBaseInfo;
53 std::vector<std::pair<std::pair<const clang::Decl*, clang::CXXRecordDecl::base_class_const_iterator>,
long> > fIterStack;
55 bool fClassInfoOwnership;
59 ~TClingBaseClassInfo() {
60 if (fClassInfoOwnership)
delete fClassInfo;
64 TClingBaseClassInfo(cling::Interpreter*, TClingClassInfo*);
65 TClingBaseClassInfo(cling::Interpreter*, TClingClassInfo* derived, TClingClassInfo* base);
66 TClingBaseClassInfo(
const TClingBaseClassInfo&);
67 TClingBaseClassInfo& operator=(
const TClingBaseClassInfo&);
69 TClingClassInfo *GetBase()
const;
70 int InternalNext(
int onlyDirect);
73 int Next(
int onlyDirect);
74 ptrdiff_t Offset(
void * address = 0,
bool isDerivedObject =
true)
const;
75 long Property()
const;
77 void FullName(std::string &output,
const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt)
const;
78 const char *Name()
const;
79 const char *TmpltName()
const;
82 OffsetPtrFunc_t GenerateBaseOffsetFunction(TClingClassInfo* derivedClass, TClingClassInfo* targetClass,
void* address,
bool isDerivedObject)
const;
85 #endif // ROOT_TClingBaseClassInfo