Logo ROOT   6.21/01
Reference Guide
TClingClassInfo Class Referencefinal

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 *)
 
 TClingClassInfo (cling::Interpreter *, const clang::Type &)
 
 TClingClassInfo (cling::Interpreter *, const clang::Decl *)
 
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, 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 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
 
TClingMethodInfo GetMethodWithArgs (const char *fname, const char *arglist, 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
 
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 (int tagnum)
 
void Init (const clang::Type &)
 
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
 
voidNew (const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
 
voidNew (int n, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
 
voidNew (int n, void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
 
voidNew (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 ()
 
virtual const clang::Decl * GetDecl () const
 
clang::Decl * GetDecl ()
 
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
 
TClingClassInfooperator= (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
 

#include </mnt/build/workspace/root-makedoc/rootspi/rdoc/src/master/core/metacling/src/TClingClassInfo.h>

Inheritance diagram for TClingClassInfo:
[legend]

Member Enumeration Documentation

◆ EInheritanceMode

Enumerator
kInThisScope 
kWithInheritance 

Definition at line 75 of file TClingClassInfo.h.

Constructor & Destructor Documentation

◆ TClingClassInfo() [1/5]

TClingClassInfo::TClingClassInfo ( )
explicitprivatedelete

◆ TClingClassInfo() [2/5]

TClingClassInfo::TClingClassInfo ( cling::Interpreter *  interp,
Bool_t  all = kTRUE 
)
explicit

Definition at line 71 of file TClingClassInfo.cxx.

◆ TClingClassInfo() [3/5]

TClingClassInfo::TClingClassInfo ( cling::Interpreter *  interp,
const char *  name 
)
explicit

Definition at line 82 of file TClingClassInfo.cxx.

◆ TClingClassInfo() [4/5]

TClingClassInfo::TClingClassInfo ( cling::Interpreter *  ,
const clang::Type &   
)
explicit

◆ TClingClassInfo() [5/5]

TClingClassInfo::TClingClassInfo ( cling::Interpreter *  ,
const clang::Decl *   
)
explicit

Member Function Documentation

◆ AddBaseOffsetFunction()

void TClingClassInfo::AddBaseOffsetFunction ( const clang::Decl *  decl,
OffsetPtrFunc_t  func 
)
inline

Definition at line 86 of file TClingClassInfo.h.

◆ AddBaseOffsetValue()

void TClingClassInfo::AddBaseOffsetValue ( const clang::Decl *  decl,
ptrdiff_t  offset 
)

Definition at line 132 of file TClingClassInfo.cxx.

◆ ClassProperty()

long TClingClassInfo::ClassProperty ( ) const

Definition at line 141 of file TClingClassInfo.cxx.

◆ Delete()

void TClingClassInfo::Delete ( void arena,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 194 of file TClingClassInfo.cxx.

◆ DeleteArray()

void TClingClassInfo::DeleteArray ( void arena,
bool  dtorOnly,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 211 of file TClingClassInfo.cxx.

◆ Destruct()

void TClingClassInfo::Destruct ( void arena,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 231 of file TClingClassInfo.cxx.

◆ FileName()

const char * TClingClassInfo::FileName ( )

Definition at line 1311 of file TClingClassInfo.cxx.

◆ FullName()

void TClingClassInfo::FullName ( std::string &  output,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 1321 of file TClingClassInfo.cxx.

◆ GetBaseOffset()

ptrdiff_t TClingClassInfo::GetBaseOffset ( TClingClassInfo toBase,
void address,
bool  isDerivedObject 
)

Definition at line 606 of file TClingClassInfo.cxx.

◆ GetDataMember()

const clang::ValueDecl * TClingClassInfo::GetDataMember ( const char *  name) const

Definition at line 272 of file TClingClassInfo.cxx.

◆ GetDeclId()

TDictionary::DeclId_t TClingClassInfo::GetDeclId ( ) const
inline

Definition at line 98 of file TClingClassInfo.h.

◆ GetFunctionTemplate()

const FunctionTemplateDecl * TClingClassInfo::GetFunctionTemplate ( const char *  fname) const

Definition at line 242 of file TClingClassInfo.cxx.

◆ GetMethod() [1/5]

TClingMethodInfo TClingClassInfo::GetMethod ( const char *  fname) const

Definition at line 286 of file TClingClassInfo.cxx.

◆ GetMethod() [2/5]

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.

◆ GetMethod() [3/5]

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.

◆ GetMethod() [4/5]

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.

◆ GetMethod() [5/5]

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.

◆ GetMethodNArg()

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.

◆ GetMethodWithArgs() [1/2]

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.

◆ GetMethodWithArgs() [2/2]

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.

◆ GetOffset()

long TClingClassInfo::GetOffset ( const clang::CXXMethodDecl *  md) const

Definition at line 579 of file TClingClassInfo.cxx.

◆ GetType()

const clang::Type* TClingClassInfo::GetType ( ) const
inline

Definition at line 126 of file TClingClassInfo.h.

◆ GetUnderlyingType()

EDataType TClingClassInfo::GetUnderlyingType ( ) const

Definition at line 811 of file TClingClassInfo.cxx.

◆ GetUsingNamespaces()

std::vector< std::string > TClingClassInfo::GetUsingNamespaces ( )

Definition at line 637 of file TClingClassInfo.cxx.

◆ HasDefaultConstructor()

bool TClingClassInfo::HasDefaultConstructor ( ) const

Definition at line 666 of file TClingClassInfo.cxx.

◆ HasMethod()

bool TClingClassInfo::HasMethod ( const char *  name) const

Definition at line 689 of file TClingClassInfo.cxx.

◆ Init() [1/4]

void TClingClassInfo::Init ( const char *  name)

Definition at line 701 of file TClingClassInfo.cxx.

◆ Init() [2/4]

void TClingClassInfo::Init ( const clang::Decl *  )

◆ Init() [3/4]

void TClingClassInfo::Init ( int  tagnum)

Definition at line 741 of file TClingClassInfo.cxx.

◆ Init() [4/4]

void TClingClassInfo::Init ( const clang::Type &  )

◆ InternalNext()

int TClingClassInfo::InternalNext ( )

Definition at line 905 of file TClingClassInfo.cxx.

◆ IsBase()

bool TClingClassInfo::IsBase ( const char *  name) const

Definition at line 770 of file TClingClassInfo.cxx.

◆ IsEnum()

bool TClingClassInfo::IsEnum ( cling::Interpreter *  interp,
const char *  name 
)
static

Definition at line 794 of file TClingClassInfo.cxx.

◆ IsLoaded()

bool TClingClassInfo::IsLoaded ( ) const

Definition at line 859 of file TClingClassInfo.cxx.

◆ IsScopedEnum()

bool TClingClassInfo::IsScopedEnum ( ) const

Definition at line 804 of file TClingClassInfo.cxx.

◆ IsValidMethod()

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.

◆ New() [1/4]

void * TClingClassInfo::New ( const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt) const

Definition at line 1038 of file TClingClassInfo.cxx.

◆ New() [2/4]

void * TClingClassInfo::New ( int  n,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 1078 of file TClingClassInfo.cxx.

◆ New() [3/4]

void * TClingClassInfo::New ( int  n,
void arena,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 1123 of file TClingClassInfo.cxx.

◆ New() [4/4]

void * TClingClassInfo::New ( void arena,
const ROOT::TMetaUtils::TNormalizedCtxt &  normCtxt 
) const

Definition at line 1163 of file TClingClassInfo.cxx.

◆ Next()

int TClingClassInfo::Next ( )

Definition at line 1033 of file TClingClassInfo.cxx.

◆ operator=()

TClingClassInfo& TClingClassInfo::operator= ( const TClingClassInfo )
privatedelete

◆ Property()

long TClingClassInfo::Property ( ) const

Definition at line 1201 of file TClingClassInfo.cxx.

◆ RootFlag()

int TClingClassInfo::RootFlag ( ) const

Definition at line 1256 of file TClingClassInfo.cxx.

◆ SetDecl()

void TClingClassInfo::SetDecl ( const clang::Decl *  D)
inline

Definition at line 93 of file TClingClassInfo.h.

◆ Size()

int TClingClassInfo::Size ( ) const

Definition at line 1265 of file TClingClassInfo.cxx.

◆ Tagnum()

long TClingClassInfo::Tagnum ( ) const

Definition at line 1303 of file TClingClassInfo.cxx.

◆ Title()

const char * TClingClassInfo::Title ( )

Definition at line 1343 of file TClingClassInfo.cxx.

◆ TmpltName()

const char * TClingClassInfo::TmpltName ( ) const

Definition at line 1383 of file TClingClassInfo.cxx.

Member Data Documentation

◆ fDeclFileName

std::string TClingClassInfo::fDeclFileName
private

Definition at line 68 of file TClingClassInfo.h.

◆ fDescend

bool TClingClassInfo::fDescend
private

Definition at line 61 of file TClingClassInfo.h.

◆ fFirstTime

bool TClingClassInfo::fFirstTime
private

Definition at line 60 of file TClingClassInfo.h.

◆ fInterp

cling::Interpreter* TClingClassInfo::fInterp
private

Definition at line 59 of file TClingClassInfo.h.

◆ fIsIter

bool TClingClassInfo::fIsIter
private

Definition at line 63 of file TClingClassInfo.h.

◆ fIter

clang::DeclContext::decl_iterator TClingClassInfo::fIter
private

Definition at line 64 of file TClingClassInfo.h.

◆ fIterAll

bool TClingClassInfo::fIterAll
private

Definition at line 62 of file TClingClassInfo.h.

◆ fIterStack

std::vector<clang::DeclContext::decl_iterator> TClingClassInfo::fIterStack
private

Definition at line 66 of file TClingClassInfo.h.

◆ fOffsetCache

llvm::DenseMap<const clang::Decl*, std::pair<ptrdiff_t, OffsetPtrFunc_t> > TClingClassInfo::fOffsetCache
private

Definition at line 69 of file TClingClassInfo.h.

◆ fTitle

std::string TClingClassInfo::fTitle
private

Definition at line 67 of file TClingClassInfo.h.

◆ fType

const clang::Type* TClingClassInfo::fType
private

Definition at line 65 of file TClingClassInfo.h.


The documentation for this class was generated from the following files: