ROOT  6.06/09
Reference Guide
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
TClingClassInfo Class Reference

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 ()
 
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
 
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 ()
 
TClingClassInfooperator= (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-v606/rootspi/rdoc/src/v6-06-00-patches/core/meta/src/TClingClassInfo.h>

+ Collaboration diagram for TClingClassInfo:

Member Enumeration Documentation

Enumerator
kInThisScope 
kWithInheritance 

Definition at line 73 of file TClingClassInfo.h.

Constructor & Destructor Documentation

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

Definition at line 71 of file TClingClassInfo.cxx.

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

Definition at line 102 of file TClingClassInfo.cxx.

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

Member Function Documentation

void TClingClassInfo::AddBaseOffsetFunction ( const clang::Decl *  decl,
OffsetPtrFunc_t  func 
)
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
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().

const clang::Decl* TClingClassInfo::GetDecl ( ) const
inline
TDictionary::DeclId_t TClingClassInfo::GetDeclId ( ) const
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
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().

const clang::Type* TClingClassInfo::GetType ( ) const
inline
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().

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

Definition at line 812 of file TClingClassInfo.cxx.

Referenced by TCling::ClassInfo_IsEnum().

bool TClingClassInfo::IsLoaded ( ) const
bool TClingClassInfo::IsValid ( ) const
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
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().

TClingClassInfo& TClingClassInfo::operator= ( const TClingClassInfo )
private
long TClingClassInfo::Property ( ) const
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

Member Data Documentation

const clang::Decl* TClingClassInfo::fDecl
private
std::string TClingClassInfo::fDeclFileName
private

Definition at line 66 of file TClingClassInfo.h.

Referenced by FileName().

bool TClingClassInfo::fDescend
private

Definition at line 59 of file TClingClassInfo.h.

Referenced by Init(), and InternalNext().

bool TClingClassInfo::fFirstTime
private

Definition at line 58 of file TClingClassInfo.h.

Referenced by Init(), InternalNext(), and TClingClassInfo().

cling::Interpreter* TClingClassInfo::fInterp
private
clang::DeclContext::decl_iterator TClingClassInfo::fIter
private

Definition at line 61 of file TClingClassInfo.h.

Referenced by Init(), InternalNext(), and TClingClassInfo().

bool TClingClassInfo::fIterAll
private

Definition at line 60 of file TClingClassInfo.h.

Referenced by InternalNext(), and TClingClassInfo().

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

Definition at line 64 of file TClingClassInfo.h.

Referenced by Init(), and InternalNext().

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

Definition at line 67 of file TClingClassInfo.h.

Referenced by AddBaseOffsetValue(), and GetBaseOffset().

std::string TClingClassInfo::fTitle
private

Definition at line 65 of file TClingClassInfo.h.

Referenced by Title().

const clang::Type* TClingClassInfo::fType
private

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