ROOT
6.07/01
Reference Guide
|
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 53 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 *) | |
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 clang::ValueDecl * | GetDataMember (const char *name) const |
const clang::Decl * | GetDecl () 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, 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 |
TClingMethodInfo | GetMethod (const char *fname, const char *proto, bool objectIsConst, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const |
TClingMethodInfo | GetMethodWithArgs (const char *fname, const char *arglist, 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 |
TClingMethodInfo | GetMethod (const char *fname, const llvm::SmallVectorImpl< clang::QualType > &proto, bool objectIsConst, 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 |
long | GetOffset (const clang::CXXMethodDecl *md) const |
ptrdiff_t | GetBaseOffset (TClingClassInfo *toBase, void *address, bool isDerivedObject) |
const clang::Type * | GetType () const |
bool | HasDefaultConstructor () const |
bool | HasMethod (const char *name) const |
void | Init (const char *name) |
void | Init (const clang::Decl *) |
void | Init (int tagnum) |
void | Init (const clang::Type &) |
bool | IsBase (const char *name) const |
bool | IsLoaded () const |
bool | IsValid () const |
bool | IsValidMethod (const char *method, const char *proto, Bool_t objectIsConst, long *offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const |
int | InternalNext () |
int | Next () |
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 |
long | Property () const |
int | RootFlag () const |
int | Size () const |
long | Tagnum () const |
const char * | FileName () |
void | FullName (std::string &output, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const |
const char * | Name () const |
const char * | Title () |
const char * | TmpltName () const |
Static Public Member Functions | |
static bool | IsEnum (cling::Interpreter *interp, const char *name) |
Private Member Functions | |
TClingClassInfo () | |
TClingClassInfo & | operator= (const TClingClassInfo &) |
Private Attributes | |
cling::Interpreter * | fInterp |
bool | fFirstTime |
bool | fDescend |
bool | fIterAll |
clang::DeclContext::decl_iterator | fIter |
const clang::Decl * | fDecl |
const clang::Type * | fType |
std::vector < clang::DeclContext::decl_iterator > | fIterStack |
std::string | fTitle |
std::string | fDeclFileName |
llvm::DenseMap< const clang::Decl *, std::pair < ptrdiff_t, OffsetPtrFunc_t > > | fOffsetCache |
#include </mnt/vdb/lsf/workspace/root-makedoc/rootspi/rdoc/src/master/core/meta/src/TClingClassInfo.h>
Enumerator | |
---|---|
kInThisScope | |
kWithInheritance |
Definition at line 73 of file TClingClassInfo.h.
|
explicitprivate |
Definition at line 71 of file TClingClassInfo.cxx.
|
explicit |
Definition at line 102 of file TClingClassInfo.cxx.
|
explicit |
|
inline |
Definition at line 83 of file TClingClassInfo.h.
Referenced by TClingBaseClassInfo::Offset().
void TClingClassInfo::AddBaseOffsetValue | ( | const clang::Decl * | decl, |
ptrdiff_t | offset | ||
) |
Definition at line 144 of file TClingClassInfo.cxx.
Referenced by TClingBaseClassInfo::Offset().
long TClingClassInfo::ClassProperty | ( | ) | const |
Definition at line 153 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_ClassProperty().
void TClingClassInfo::Delete | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 206 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Delete().
void TClingClassInfo::DeleteArray | ( | void * | arena, |
bool | dtorOnly, | ||
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 223 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_DeleteArray().
void TClingClassInfo::Destruct | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 243 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Destruct().
const char * TClingClassInfo::FileName | ( | ) |
Definition at line 1258 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_FileName().
void TClingClassInfo::FullName | ( | std::string & | output, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1267 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_FullName(), TClingBaseClassInfo::FullName(), TCling::GenerateTClass(), and TCling::GetInterpreterTypeName().
ptrdiff_t TClingClassInfo::GetBaseOffset | ( | TClingClassInfo * | toBase, |
void * | address, | ||
bool | isDerivedObject | ||
) |
Definition at line 618 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_GetBaseOffset(), and TCling::InspectMembers().
const clang::ValueDecl * TClingClassInfo::GetDataMember | ( | const char * | name | ) | const |
Definition at line 284 of file TClingClassInfo.cxx.
Referenced by TCling::GetDataMember(), and TCling::GetDeclId().
|
inline |
Definition at line 90 of file TClingClassInfo.h.
Referenced by TCling::ClassInfo_GetBaseOffset(), TClingCallFunc::ExecDefaultConstructor(), TClingCallFunc::ExecDestructor(), FileName(), TClingBaseClassInfo::GenerateBaseOffsetFunction(), TCling::GenerateTClass(), GetBaseOffset(), TCling::GetEnum(), GetOffset(), TCling::InspectMembers(), IsBase(), TClingCallFunc::make_ctor_wrapper(), TClingCallFunc::make_dtor_wrapper(), TClingBaseClassInfo::Offset(), TClingBaseClassInfo::Property(), TCling__TEST_isInvalidDecl(), TClingBaseClassInfo::TClingBaseClassInfo(), TClingDataMemberInfo::TClingDataMemberInfo(), TClingMethodInfo::TClingMethodInfo(), Title(), and TCling::UpdateClassInfoWithDecl().
|
inline |
Definition at line 91 of file TClingClassInfo.h.
Referenced by TCling::SetClassInfo(), and TCling::UpdateClassInfoWithDecl().
const FunctionTemplateDecl * TClingClassInfo::GetFunctionTemplate | ( | const char * | fname | ) | const |
Definition at line 254 of file TClingClassInfo.cxx.
Referenced by TCling::GetFunctionTemplate().
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname | ) | const |
Definition at line 298 of file TClingClassInfo.cxx.
Referenced by TCling::GenerateTClass(), TCling::GetFunction(), TCling::GetFunctionWithPrototype(), TCling::GetFunctionWithValues(), TCling::GetInterfaceMethodWithPrototype(), TCling::GetMangledNameWithPrototype(), GetMethod(), GetMethodNArg(), GetMethodWithArgs(), IsValidMethod(), and TClingCallFunc::SetFuncProto().
TClingMethodInfo TClingClassInfo::GetMethod | ( | const char * | fname, |
const char * | proto, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 338 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 345 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 431 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 439 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 571 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_GetMethodNArg().
TClingMethodInfo TClingClassInfo::GetMethodWithArgs | ( | const char * | fname, |
const char * | arglist, | ||
long * | poffset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch , |
||
EInheritanceMode | imode = kWithInheritance |
||
) | const |
Definition at line 505 of file TClingClassInfo.cxx.
Referenced by TCling::GetFunctionWithValues(), and TClingCallFunc::SetFunc().
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 512 of file TClingClassInfo.cxx.
long TClingClassInfo::GetOffset | ( | const clang::CXXMethodDecl * | md | ) | const |
Definition at line 591 of file TClingClassInfo.cxx.
Referenced by GetMethod(), and GetMethodWithArgs().
|
inline |
Definition at line 115 of file TClingClassInfo.h.
Referenced by TClingBaseClassInfo::GenerateBaseOffsetFunction(), TCling::InspectMembers(), TClingBaseClassInfo::InternalNext(), TClingDataMemberInfo::TypeName(), TClingDataMemberInfo::TypeTrueName(), and TCling::UpdateClassInfoWithDecl().
bool TClingClassInfo::HasDefaultConstructor | ( | ) | const |
Definition at line 666 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_HasDefaultConstructor(), and New().
bool TClingClassInfo::HasMethod | ( | const char * | name | ) | const |
Definition at line 709 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_HasMethod().
void TClingClassInfo::Init | ( | const char * | name | ) |
Definition at line 721 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Init(), and TCling::UpdateClassInfoWithDecl().
void TClingClassInfo::Init | ( | const clang::Decl * | ) |
void TClingClassInfo::Init | ( | int | tagnum | ) |
Definition at line 759 of file TClingClassInfo.cxx.
void TClingClassInfo::Init | ( | const clang::Type & | ) |
int TClingClassInfo::InternalNext | ( | ) |
Definition at line 873 of file TClingClassInfo.cxx.
Referenced by Next(), and TClingClassInfo().
bool TClingClassInfo::IsBase | ( | const char * | name | ) | const |
Definition at line 788 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_IsBase().
|
static |
Definition at line 812 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_IsEnum().
bool TClingClassInfo::IsLoaded | ( | ) | const |
Definition at line 822 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_IsLoaded(), Delete(), DeleteArray(), Destruct(), GetFunctionTemplate(), GetMethod(), GetMethodNArg(), GetMethodWithArgs(), HasDefaultConstructor(), HasMethod(), IsBase(), IsValidMethod(), and New().
bool TClingClassInfo::IsValid | ( | ) | const |
Definition at line 852 of file TClingClassInfo.cxx.
Referenced by TCling::CheckClassInfo(), TCling::ClassInfo_IsValid(), ClassProperty(), Delete(), TClingCallFunc::ExecDefaultConstructor(), TClingCallFunc::ExecDestructor(), FileName(), FullName(), TCling::GenerateTClass(), TCling::GetInterpreterTypeName(), IsBase(), IsEnum(), IsLoaded(), TClingBaseClassInfo::IsValid(), Name(), New(), Property(), RootFlag(), TClingCallFunc::SetFunc(), TClingCallFunc::SetFuncProto(), Size(), Tagnum(), TCling__TEST_isInvalidDecl(), TClingDataMemberInfo::TClingDataMemberInfo(), TClingMethodInfo::TClingMethodInfo(), Title(), and TmpltName().
bool TClingClassInfo::IsValidMethod | ( | const char * | method, |
const char * | proto, | ||
Bool_t | objectIsConst, | ||
long * | offset, | ||
ROOT::EFunctionMatchMode | mode = ROOT::kConversionMatch |
||
) | const |
Definition at line 857 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_IsValidMethod().
const char * TClingClassInfo::Name | ( | ) | const |
Definition at line 1289 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Name(), TClingBaseClassInfo::GenerateBaseOffsetFunction(), TCling::GetInterpreterTypeName(), and TClingBaseClassInfo::Name().
void * TClingClassInfo::New | ( | const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ) | const |
Definition at line 989 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_New().
void * TClingClassInfo::New | ( | int | n, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1029 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | int | n, |
void * | arena, | ||
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1074 of file TClingClassInfo.cxx.
void * TClingClassInfo::New | ( | void * | arena, |
const ROOT::TMetaUtils::TNormalizedCtxt & | normCtxt | ||
) | const |
Definition at line 1114 of file TClingClassInfo.cxx.
int TClingClassInfo::Next | ( | ) |
Definition at line 984 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Next().
|
private |
long TClingClassInfo::Property | ( | ) | const |
Definition at line 1152 of file TClingClassInfo.cxx.
Referenced by TCling::CheckClassInfo(), TCling::ClassInfo_Property(), and IsEnum().
int TClingClassInfo::RootFlag | ( | ) | const |
Definition at line 1203 of file TClingClassInfo.cxx.
int TClingClassInfo::Size | ( | ) | const |
Definition at line 1212 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Size().
long TClingClassInfo::Tagnum | ( | ) | const |
Definition at line 1250 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Tagnum(), and TClingBaseClassInfo::Tagnum().
const char * TClingClassInfo::Title | ( | ) |
Definition at line 1307 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_Title().
const char * TClingClassInfo::TmpltName | ( | ) | const |
Definition at line 1347 of file TClingClassInfo.cxx.
Referenced by TCling::ClassInfo_TmpltName(), and TClingBaseClassInfo::TmpltName().
|
private |
Definition at line 62 of file TClingClassInfo.h.
Referenced by ClassProperty(), Delete(), FullName(), GetDataMember(), GetDecl(), GetDeclId(), GetFunctionTemplate(), GetMethod(), GetMethodWithArgs(), GetOffset(), HasDefaultConstructor(), HasMethod(), Init(), InternalNext(), IsBase(), IsLoaded(), IsValid(), Name(), New(), Property(), Size(), Tagnum(), TClingClassInfo(), and TmpltName().
|
private |
Definition at line 66 of file TClingClassInfo.h.
Referenced by FileName().
|
private |
Definition at line 59 of file TClingClassInfo.h.
Referenced by Init(), and InternalNext().
|
private |
Definition at line 58 of file TClingClassInfo.h.
Referenced by Init(), InternalNext(), and TClingClassInfo().
|
private |
Definition at line 57 of file TClingClassInfo.h.
Referenced by Delete(), DeleteArray(), Destruct(), FileName(), FullName(), GetBaseOffset(), GetDataMember(), GetFunctionTemplate(), GetMethod(), GetMethodWithArgs(), GetOffset(), HasDefaultConstructor(), HasMethod(), Init(), InternalNext(), IsBase(), New(), Property(), Size(), TClingClassInfo(), and Title().
|
private |
Definition at line 61 of file TClingClassInfo.h.
Referenced by Init(), InternalNext(), and TClingClassInfo().
|
private |
Definition at line 60 of file TClingClassInfo.h.
Referenced by InternalNext(), and TClingClassInfo().
|
private |
Definition at line 64 of file TClingClassInfo.h.
Referenced by Init(), and InternalNext().
|
private |
Definition at line 67 of file TClingClassInfo.h.
Referenced by AddBaseOffsetFunction(), AddBaseOffsetValue(), and GetBaseOffset().
|
private |
Definition at line 65 of file TClingClassInfo.h.
Referenced by Title().
|
private |
Definition at line 63 of file TClingClassInfo.h.
Referenced by FullName(), GetFunctionTemplate(), GetMethod(), GetMethodWithArgs(), GetType(), Init(), InternalNext(), and TClingClassInfo().