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 55 of file TClingClassInfo.h.
Public Types | |
enum | EInheritanceMode { kInThisScope = 0 , kWithInheritance = 1 } |
Public Member Functions | |
TClingClassInfo (cling::Interpreter *, Bool_t all=kTRUE) | |
TClingClassInfo (cling::Interpreter *, const char *classname, bool intantiateTemplate=kTRUE) | |
TClingClassInfo (cling::Interpreter *, const clang::Decl *) | |
TClingClassInfo (cling::Interpreter *, const clang::Type &) | |
void | AddBaseOffsetFunction (const clang::Decl *decl, OffsetPtrFunc_t func) |
void | AddBaseOffsetValue (const clang::Decl *decl, ptrdiff_t offset) |
long | ClassProperty () const |
void | Delete (void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
void | DeleteArray (void *arena, bool dtorOnly, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
void | Destruct (void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
const char * | FileName () |
void | FullName (std::string &output, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
ptrdiff_t | GetBaseOffset (TClingClassInfo *toBase, void *address, bool isDerivedObject) |
const clang::ValueDecl * | GetDataMember (const char *name) const |
TDictionary::DeclId_t | GetDeclId () const |
const clang::FunctionTemplateDecl * | GetFunctionTemplate (const char *fname) const |
TClingMethodInfo | GetMethod (const char *fname) const |
TClingMethodInfo | GetMethod (const char *fname, const char *proto, bool objectIsConst, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
TClingMethodInfo | GetMethod (const char *fname, const char *proto, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
TClingMethodInfo | GetMethod (const char *fname, const llvm::SmallVectorImpl< clang::QualType > &proto, bool objectIsConst, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
TClingMethodInfo | GetMethod (const char *fname, const llvm::SmallVectorImpl< clang::QualType > &proto, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
int | GetMethodNArg (const char *method, const char *proto, Bool_t objectIsConst, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const |
TClingMethodInfo | GetMethodWithArgs (const char *fname, const char *arglist, bool objectIsConst, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
TClingMethodInfo | GetMethodWithArgs (const char *fname, const char *arglist, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
long | GetOffset (const clang::CXXMethodDecl *md) const |
const clang::Type * | GetType () const |
EDataType | GetUnderlyingType () const |
std::vector< std::string > | GetUsingNamespaces () |
bool | HasDefaultConstructor () const |
bool | HasMethod (const char *name) const |
void | Init (const char *name) |
void | Init (const clang::Decl *) |
void | Init (const clang::Type &) |
void | Init (int tagnum) |
int | InternalNext () |
bool | IsBase (const char *name) const |
bool | IsLoaded () const |
bool | IsScopedEnum () const |
bool | IsValidMethod (const char *method, const char *proto, Bool_t objectIsConst, long *offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const |
void * | New (const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
void * | New (int n, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
void * | New (int n, void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
void * | New (void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
int | Next () |
long | Property () const |
int | RootFlag () const |
void | SetDecl (const clang::Decl *D) |
int | Size () const |
long | Tagnum () const |
const char * | Title () |
const char * | TmpltName () const |
Public Member Functions inherited from TClingDeclInfo | |
TClingDeclInfo (const clang::Decl *D) | |
virtual | ~TClingDeclInfo () |
clang::Decl * | GetDecl () |
virtual const clang::Decl * | GetDecl () const |
virtual bool | IsValid () const |
virtual const char * | Name () |
Static Public Member Functions | |
static bool | IsEnum (cling::Interpreter *interp, const char *name) |
Private Member Functions | |
TClingClassInfo ()=delete | |
TClingClassInfo & | operator= (const TClingClassInfo &)=delete |
Private Attributes | |
std::string | fDeclFileName |
bool | fDescend: 1 |
bool | fFirstTime: 1 |
cling::Interpreter * | fInterp |
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::string | fTitle |
const clang::Type * | fType |
Additional Inherited Members | |
Protected Attributes inherited from TClingDeclInfo | |
const clang::Decl * | fDecl = nullptr |
std::string | fNameCache |
Enumerator | |
---|---|
kInThisScope | |
kWithInheritance |
Definition at line 75 of file TClingClassInfo.h.
|
explicitprivatedelete |
Definition at line 71 of file TClingClassInfo.cxx.
|
explicit |
Definition at line 82 of file TClingClassInfo.cxx.
|
explicit |
|
explicit |
|
inline |
Definition at line 86 of file TClingClassInfo.h.
void TClingClassInfo::AddBaseOffsetValue | ( | const clang::Decl * | decl, |
ptrdiff_t | offset | ||
) |
Definition at line 132 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 194 of file TClingClassInfo.cxx.
void TClingClassInfo::DeleteArray | ( | void * | arena, |
bool | dtorOnly, | ||
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 211 of file TClingClassInfo.cxx.
void TClingClassInfo::Destruct | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 231 of file TClingClassInfo.cxx.
const char * TClingClassInfo::FileName | ( | ) |
Definition at line 1311 of file TClingClassInfo.cxx.
void TClingClassInfo::FullName | ( | std::string & | output, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1321 of file TClingClassInfo.cxx.
ptrdiff_t TClingClassInfo::GetBaseOffset | ( | TClingClassInfo * | toBase, |
void * | address, | ||
bool | isDerivedObject | ||
) |
Definition at line 606 of file TClingClassInfo.cxx.
const clang::ValueDecl * TClingClassInfo::GetDataMember | ( | const char * | name | ) | const |
Definition at line 272 of file TClingClassInfo.cxx.
|
inline |
Definition at line 98 of file TClingClassInfo.h.
const FunctionTemplateDecl * TClingClassInfo::GetFunctionTemplate | ( | const char * | fname | ) | const |
Definition at line 242 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname | ) | const |
Definition at line 286 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const char * | proto, | ||
bool | objectIsConst, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 333 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const char * | proto, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 326 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const llvm::SmallVectorImpl< clang::QualType > & | proto, | ||
bool | objectIsConst, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 427 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const llvm::SmallVectorImpl< clang::QualType > & | proto, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 419 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 559 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethodWithArgs | ( | const char * | fname, |
const char * | arglist, | ||
bool | objectIsConst, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 500 of file TClingClassInfo.cxx.
TClingMethodInfo TClingClassInfo::GetMethodWithArgs | ( | const char * | fname, |
const char * | arglist, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 493 of file TClingClassInfo.cxx.
long TClingClassInfo::GetOffset | ( | const clang::CXXMethodDecl * | md | ) | const |
Definition at line 579 of file TClingClassInfo.cxx.
|
inline |
Definition at line 126 of file TClingClassInfo.h.
EDataType TClingClassInfo::GetUnderlyingType | ( | ) | const |
Definition at line 811 of file TClingClassInfo.cxx.
std::vector< std::string > TClingClassInfo::GetUsingNamespaces | ( | ) |
Definition at line 637 of file TClingClassInfo.cxx.
bool TClingClassInfo::HasDefaultConstructor | ( | ) | const |
Definition at line 666 of file TClingClassInfo.cxx.
bool TClingClassInfo::HasMethod | ( | const char * | name | ) | const |
Definition at line 689 of file TClingClassInfo.cxx.
void TClingClassInfo::Init | ( | const char * | name | ) |
Definition at line 701 of file TClingClassInfo.cxx.
void TClingClassInfo::Init | ( | const clang::Decl * | ) |
void TClingClassInfo::Init | ( | const clang::Type & | ) |
void TClingClassInfo::Init | ( | int | tagnum | ) |
Definition at line 741 of file TClingClassInfo.cxx.
int TClingClassInfo::InternalNext | ( | ) |
Definition at line 905 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsBase | ( | const char * | name | ) | const |
Definition at line 770 of file TClingClassInfo.cxx.
|
static |
Definition at line 794 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsLoaded | ( | ) | const |
Definition at line 859 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsScopedEnum | ( | ) | const |
Definition at line 804 of file TClingClassInfo.cxx.
bool TClingClassInfo::IsValidMethod | ( | const char * | method, |
const char * | proto, | ||
Bool_t | objectIsConst, | ||
long * | offset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch |
||
) | const |
Definition at line 889 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ) | const |
Definition at line 1038 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | int | n, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1078 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | int | n, |
void * | arena, | ||
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1123 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1163 of file TClingClassInfo.cxx.
int TClingClassInfo::Next | ( | ) |
Definition at line 1033 of file TClingClassInfo.cxx.
|
privatedelete |
long TClingClassInfo::Property | ( | ) | const |
Definition at line 1201 of file TClingClassInfo.cxx.
int TClingClassInfo::RootFlag | ( | ) | const |
Definition at line 1256 of file TClingClassInfo.cxx.
|
inline |
Definition at line 93 of file TClingClassInfo.h.
int TClingClassInfo::Size | ( | ) | const |
Definition at line 1265 of file TClingClassInfo.cxx.
long TClingClassInfo::Tagnum | ( | ) | const |
Definition at line 1303 of file TClingClassInfo.cxx.
const char * TClingClassInfo::Title | ( | ) |
Definition at line 1343 of file TClingClassInfo.cxx.
const char * TClingClassInfo::TmpltName | ( | ) | const |
Definition at line 1383 of file TClingClassInfo.cxx.
|
private |
Definition at line 68 of file TClingClassInfo.h.
|
private |
Definition at line 61 of file TClingClassInfo.h.
|
private |
Definition at line 60 of file TClingClassInfo.h.
|
private |
Definition at line 59 of file TClingClassInfo.h.
|
private |
Definition at line 63 of file TClingClassInfo.h.
|
private |
Definition at line 64 of file TClingClassInfo.h.
|
private |
Definition at line 62 of file TClingClassInfo.h.
|
private |
Definition at line 66 of file TClingClassInfo.h.
|
private |
Definition at line 69 of file TClingClassInfo.h.
|
private |
Definition at line 67 of file TClingClassInfo.h.
|
private |
Definition at line 65 of file TClingClassInfo.h.