Emulation of the CINT ClassInfo class.
The CINT C++ interpreter provides an interface to metadata about a class through the ClassInfo class. This class provides the same functionality, using an interface as close as possible to ClassInfo but the class metadata comes from the Clang C++ compiler, not CINT.
Definition at line 59 of file TClingClassInfo.h.
Public Types | |
enum | EInheritanceMode { kInThisScope = 0 , kWithInheritance = 1 } |
Static Public Member Functions | |
static bool | IsEnum (cling::Interpreter *interp, const char *name) |
Private Attributes | |
std::string | fDeclFileName |
bool | fDescend: 1 |
bool | fFirstTime: 1 |
cling::Interpreter * | fInterp = nullptr |
bool | fIsIter: 1 |
clang::DeclContext::decl_iterator | fIter |
bool | fIterAll: 1 |
std::vector< clang::DeclContext::decl_iterator > | fIterStack |
llvm::DenseMap< const clang::Decl *, std::pair< ptrdiff_t, OffsetPtrFunc_t > > | fOffsetCache |
std::mutex | fOffsetCacheMutex |
std::string | fTitle |
const clang::Type * | fType = nullptr |
Additional Inherited Members | |
![]() | |
long | Property (long property, clang::QualType &qt) const |
![]() | |
const clang::Decl * | fDecl = nullptr |
std::string | fNameCache |
#include </github/home/ROOT-CI/src/core/metacling/src/TClingClassInfo.h>
Enumerator | |
---|---|
kInThisScope | |
kWithInheritance |
Definition at line 79 of file TClingClassInfo.h.
|
inlineexplicit |
Definition at line 85 of file TClingClassInfo.h.
|
inline |
Definition at line 89 of file TClingClassInfo.h.
Definition at line 71 of file TClingClassInfo.cxx.
|
explicit |
Definition at line 81 of file TClingClassInfo.cxx.
|
explicit |
|
explicit |
|
inline |
Definition at line 118 of file TClingClassInfo.h.
void TClingClassInfo::AddBaseOffsetValue | ( | const clang::Decl * | decl, |
ptrdiff_t | offset ) |
Definition at line 131 of file TClingClassInfo.cxx.
long TClingClassInfo::ClassProperty | ( | ) | const |
Definition at line 141 of file TClingClassInfo.cxx.
void TClingClassInfo::Delete | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 204 of file TClingClassInfo.cxx.
void TClingClassInfo::DeleteArray | ( | void * | arena, |
bool | dtorOnly, | ||
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 221 of file TClingClassInfo.cxx.
void TClingClassInfo::Destruct | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 241 of file TClingClassInfo.cxx.
const char * TClingClassInfo::FileName | ( | ) |
Definition at line 1366 of file TClingClassInfo.cxx.
void TClingClassInfo::FullName | ( | std::string & | output, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 1376 of file TClingClassInfo.cxx.
ptrdiff_t TClingClassInfo::GetBaseOffset | ( | TClingClassInfo * | toBase, |
void * | address, | ||
bool | isDerivedObject ) |
Definition at line 616 of file TClingClassInfo.cxx.
Definition at line 282 of file TClingClassInfo.cxx.
|
inline |
Definition at line 133 of file TClingClassInfo.h.
const FunctionTemplateDecl * TClingClassInfo::GetFunctionTemplate | ( | const char * | fname | ) | const |
Definition at line 252 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname | ) | const |
Definition at line 296 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const char * | proto, | ||
bool | objectIsConst, | ||
Longptr_t * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch, | ||
EInheritanceMode | imode = kWithInheritance ) const |
Definition at line 343 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const char * | proto, | ||
Longptr_t * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch, | ||
EInheritanceMode | imode = kWithInheritance ) const |
Definition at line 336 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const llvm::SmallVectorImpl< clang::QualType > & | proto, | ||
bool | objectIsConst, | ||
Longptr_t * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch, | ||
EInheritanceMode | imode = kWithInheritance ) const |
Definition at line 437 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const llvm::SmallVectorImpl< clang::QualType > & | proto, | ||
Longptr_t * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch, | ||
EInheritanceMode | imode = kWithInheritance ) const |
Definition at line 429 of file TClingClassInfo.cxx.
int TClingClassInfo::GetMethodNArg | ( | const char * | method, |
const char * | proto, | ||
Bool_t | objectIsConst, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch ) const |
Definition at line 569 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethodWithArgs | ( | const char * | fname, |
const char * | arglist, | ||
bool | objectIsConst, | ||
Longptr_t * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch, | ||
EInheritanceMode | imode = kWithInheritance ) const |
Definition at line 510 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethodWithArgs | ( | const char * | fname, |
const char * | arglist, | ||
Longptr_t * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch, | ||
EInheritanceMode | imode = kWithInheritance ) const |
Definition at line 503 of file TClingClassInfo.cxx.
Definition at line 589 of file TClingClassInfo.cxx.
|
inline |
Definition at line 161 of file TClingClassInfo.h.
EDataType TClingClassInfo::GetUnderlyingType | ( | ) | const |
Definition at line 837 of file TClingClassInfo.cxx.
std::vector< std::string > TClingClassInfo::GetUsingNamespaces | ( | ) |
Definition at line 647 of file TClingClassInfo.cxx.
ROOT::TMetaUtils::EIOCtorCategory TClingClassInfo::HasDefaultConstructor | ( | bool | checkio = false, |
std::string * | type_name = nullptr ) const |
Definition at line 676 of file TClingClassInfo.cxx.
Definition at line 714 of file TClingClassInfo.cxx.
void TClingClassInfo::Init | ( | const char * | name | ) |
Definition at line 726 of file TClingClassInfo.cxx.
void TClingClassInfo::Init | ( | const clang::Decl * | decl | ) |
void TClingClassInfo::Init | ( | const clang::Type & | tag | ) |
void TClingClassInfo::Init | ( | int | tagnum | ) |
Definition at line 766 of file TClingClassInfo.cxx.
int TClingClassInfo::InternalNext | ( | ) |
Definition at line 933 of file TClingClassInfo.cxx.
Definition at line 795 of file TClingClassInfo.cxx.
Definition at line 819 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsLoaded | ( | ) | const |
Definition at line 887 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsScopedEnum | ( | ) | const |
Definition at line 830 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsValidMethod | ( | const char * | method, |
const char * | proto, | ||
Bool_t | objectIsConst, | ||
Longptr_t * | offset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch ) const |
Definition at line 917 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ) | const |
Definition at line 1066 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | int | n, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 1114 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | int | n, |
void * | arena, | ||
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 1164 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt ) const |
Definition at line 1210 of file TClingClassInfo.cxx.
int TClingClassInfo::Next | ( | ) |
Definition at line 1061 of file TClingClassInfo.cxx.
|
inline |
Definition at line 100 of file TClingClassInfo.h.
long TClingClassInfo::Property | ( | ) | const |
Definition at line 1255 of file TClingClassInfo.cxx.
int TClingClassInfo::RootFlag | ( | ) | const |
Definition at line 1311 of file TClingClassInfo.cxx.
|
inline |
Definition at line 128 of file TClingClassInfo.h.
int TClingClassInfo::Size | ( | ) | const |
Definition at line 1320 of file TClingClassInfo.cxx.
Longptr_t TClingClassInfo::Tagnum | ( | ) | const |
Definition at line 1358 of file TClingClassInfo.cxx.
const char * TClingClassInfo::Title | ( | ) |
Definition at line 1398 of file TClingClassInfo.cxx.
const char * TClingClassInfo::TmpltName | ( | ) | const |
Definition at line 1438 of file TClingClassInfo.cxx.
|
private |
Definition at line 72 of file TClingClassInfo.h.
|
private |
Definition at line 65 of file TClingClassInfo.h.
|
private |
Definition at line 64 of file TClingClassInfo.h.
|
private |
Definition at line 63 of file TClingClassInfo.h.
|
private |
Definition at line 67 of file TClingClassInfo.h.
|
private |
Definition at line 68 of file TClingClassInfo.h.
|
private |
Definition at line 66 of file TClingClassInfo.h.
|
private |
Definition at line 70 of file TClingClassInfo.h.
|
private |
Definition at line 75 of file TClingClassInfo.h.
|
private |
Definition at line 74 of file TClingClassInfo.h.
|
private |
Definition at line 71 of file TClingClassInfo.h.
|
private |
Definition at line 69 of file TClingClassInfo.h.