Logo ROOT   6.07/09
Reference Guide
List of all members | 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 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
 
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 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
 
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 IsValid () const
 
bool IsValidMethod (const char *method, const char *proto, Bool_t objectIsConst, long *offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const
 
const char * Name () 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
 
int Size () const
 
long Tagnum () 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

const clang::Decl * fDecl
 
std::string fDeclFileName
 
bool fDescend
 
bool fFirstTime
 
cling::Interpreter * fInterp
 
clang::DeclContext::decl_iterator fIter
 
bool fIterAll
 
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
 

#include </mnt/vdb/lsf/workspace/root-makedoc-v608/rootspi/rdoc/src/v6-08-00-patches/core/meta/src/TClingClassInfo.h>

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.

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

Definition at line 144 of file TClingClassInfo.cxx.

long TClingClassInfo::ClassProperty ( ) const

Definition at line 153 of file TClingClassInfo.cxx.

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

Definition at line 206 of file TClingClassInfo.cxx.

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

Definition at line 223 of file TClingClassInfo.cxx.

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

Definition at line 243 of file TClingClassInfo.cxx.

const char * TClingClassInfo::FileName ( )

Definition at line 1218 of file TClingClassInfo.cxx.

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

Definition at line 1227 of file TClingClassInfo.cxx.

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

Definition at line 618 of file TClingClassInfo.cxx.

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

Definition at line 284 of file TClingClassInfo.cxx.

const clang::Decl* TClingClassInfo::GetDecl ( ) const
inline

Definition at line 90 of file TClingClassInfo.h.

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

Definition at line 91 of file TClingClassInfo.h.

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

Definition at line 254 of file TClingClassInfo.cxx.

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

Definition at line 298 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 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.

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.

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.

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

Definition at line 115 of file TClingClassInfo.h.

bool TClingClassInfo::HasDefaultConstructor ( ) const

Definition at line 646 of file TClingClassInfo.cxx.

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

Definition at line 669 of file TClingClassInfo.cxx.

void TClingClassInfo::Init ( const char *  name)

Definition at line 681 of file TClingClassInfo.cxx.

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

Definition at line 719 of file TClingClassInfo.cxx.

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

Definition at line 833 of file TClingClassInfo.cxx.

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

Definition at line 748 of file TClingClassInfo.cxx.

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

Definition at line 772 of file TClingClassInfo.cxx.

bool TClingClassInfo::IsLoaded ( ) const

Definition at line 782 of file TClingClassInfo.cxx.

bool TClingClassInfo::IsValid ( ) const

Definition at line 812 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 817 of file TClingClassInfo.cxx.

const char * TClingClassInfo::Name ( ) const

Definition at line 1249 of file TClingClassInfo.cxx.

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

Definition at line 949 of file TClingClassInfo.cxx.

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

Definition at line 989 of file TClingClassInfo.cxx.

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

Definition at line 1034 of file TClingClassInfo.cxx.

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

Definition at line 1074 of file TClingClassInfo.cxx.

int TClingClassInfo::Next ( )

Definition at line 944 of file TClingClassInfo.cxx.

TClingClassInfo& TClingClassInfo::operator= ( const TClingClassInfo )
private
long TClingClassInfo::Property ( ) const

Definition at line 1112 of file TClingClassInfo.cxx.

int TClingClassInfo::RootFlag ( ) const

Definition at line 1163 of file TClingClassInfo.cxx.

int TClingClassInfo::Size ( ) const

Definition at line 1172 of file TClingClassInfo.cxx.

long TClingClassInfo::Tagnum ( ) const

Definition at line 1210 of file TClingClassInfo.cxx.

const char * TClingClassInfo::Title ( )

Definition at line 1267 of file TClingClassInfo.cxx.

const char * TClingClassInfo::TmpltName ( ) const

Definition at line 1307 of file TClingClassInfo.cxx.

Member Data Documentation

const clang::Decl* TClingClassInfo::fDecl
private

Definition at line 62 of file TClingClassInfo.h.

std::string TClingClassInfo::fDeclFileName
private

Definition at line 66 of file TClingClassInfo.h.

bool TClingClassInfo::fDescend
private

Definition at line 59 of file TClingClassInfo.h.

bool TClingClassInfo::fFirstTime
private

Definition at line 58 of file TClingClassInfo.h.

cling::Interpreter* TClingClassInfo::fInterp
private

Definition at line 57 of file TClingClassInfo.h.

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

Definition at line 61 of file TClingClassInfo.h.

bool TClingClassInfo::fIterAll
private

Definition at line 60 of file TClingClassInfo.h.

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

Definition at line 64 of file TClingClassInfo.h.

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

Definition at line 67 of file TClingClassInfo.h.

std::string TClingClassInfo::fTitle
private

Definition at line 65 of file TClingClassInfo.h.

const clang::Type* TClingClassInfo::fType
private

Definition at line 63 of file TClingClassInfo.h.


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