Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
TClingDataMemberInfo Class Referencefinal

Emulation of the CINT DataMemberInfo class.

The CINT C++ interpreter provides an interface to metadata about the data members of a class through the DataMemberInfo class. This class provides the same functionality, using an interface as close as possible to DataMemberInfo but the data member metadata comes from the Clang C++ compiler, not CINT.

Definition at line 71 of file TClingDataMemberInfo.h.

Public Types

typedef TDictionary::DeclId_t DeclId_t

Public Member Functions

 TClingDataMemberInfo (cling::Interpreter *interp)
 TClingDataMemberInfo (cling::Interpreter *interp, const clang::ValueDecl *, TClingClassInfo *)
 TClingDataMemberInfo (cling::Interpreter *interp, TClingClassInfo *ci, TDictionary::EMemberSelection selection)
int ArrayDim () const
const clang::UsingShadowDecl * GetAsUsingShadowDecl () const
const clang::ValueDecl * GetAsValueDecl () const
const clang::Type * GetClassAsType () const
const clang::Decl * GetDecl () const override
clang::Decl * GetDecl ()
DeclId_t GetDeclId () const
const clang::ValueDecl * GetTargetValueDecl () const
 Get the ValueDecl, or if this represents a UsingShadowDecl, the underlying target ValueDecl.
virtual bool IsValid () const
int MaxIndex (int dim) const
const char * Name () const override
int Next ()
Longptr_t Offset ()
long Property () const
const char * Title ()
const char * TypeName () const
long TypeProperty () const
int TypeSize () const
const char * TypeTrueName (const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
llvm::StringRef ValidArrayIndex () const

Protected Member Functions

long Property (long property, clang::QualType &qt) const

Protected Attributes

const clang::Decl * fDecl = nullptr
std::string fNameCache

Private Member Functions

void CheckForIoTypeAndName () const
void ClearNames ()

Private Attributes

TClingClassInfo fClassInfo
union { 
   double   fDouble 
   float   fFloat 
   long   fLong 
fConstInitVal
int64_t fEnumValue
bool fFirstTime = true
cling::Interpreter * fInterp
std::string fIoName
std::string fIoType
TClingDataMemberIter fIter
std::string fTitle

#include </home/stephan/code/root-2/core/metacling/src/TClingDataMemberInfo.h>

Inheritance diagram for TClingDataMemberInfo:
TClingDeclInfo

Member Typedef Documentation

◆ DeclId_t

Constructor & Destructor Documentation

◆ TClingDataMemberInfo() [1/3]

TClingDataMemberInfo::TClingDataMemberInfo ( cling::Interpreter * interp)
inlineexplicit

Definition at line 100 of file TClingDataMemberInfo.h.

◆ TClingDataMemberInfo() [2/3]

TClingDataMemberInfo::TClingDataMemberInfo ( cling::Interpreter * interp,
TClingClassInfo * ci,
TDictionary::EMemberSelection selection )

Definition at line 97 of file TClingDataMemberInfo.cxx.

◆ TClingDataMemberInfo() [3/3]

TClingDataMemberInfo::TClingDataMemberInfo ( cling::Interpreter * interp,
const clang::ValueDecl * ValD,
TClingClassInfo * ci )

Definition at line 121 of file TClingDataMemberInfo.cxx.

Member Function Documentation

◆ ArrayDim()

int TClingDataMemberInfo::ArrayDim ( ) const

Definition at line 196 of file TClingDataMemberInfo.cxx.

◆ CheckForIoTypeAndName()

void TClingDataMemberInfo::CheckForIoTypeAndName ( ) const
inlineprivate

Definition at line 144 of file TClingDataMemberInfo.cxx.

◆ ClearNames()

void TClingDataMemberInfo::ClearNames ( )
inlineprivate

Definition at line 92 of file TClingDataMemberInfo.h.

◆ GetAsUsingShadowDecl()

const clang::UsingShadowDecl * TClingDataMemberInfo::GetAsUsingShadowDecl ( ) const

Definition at line 177 of file TClingDataMemberInfo.cxx.

◆ GetAsValueDecl()

const clang::ValueDecl * TClingDataMemberInfo::GetAsValueDecl ( ) const

Definition at line 172 of file TClingDataMemberInfo.cxx.

◆ GetClassAsType()

const clang::Type * TClingDataMemberInfo::GetClassAsType ( ) const

Definition at line 192 of file TClingDataMemberInfo.cxx.

◆ GetDecl() [1/2]

const clang::Decl * TClingDataMemberInfo::GetDecl ( ) const
inlineoverridevirtual

Reimplemented from TClingDeclInfo.

Definition at line 112 of file TClingDataMemberInfo.h.

◆ GetDecl() [2/2]

clang::Decl * TClingDeclInfo::GetDecl ( )
inlineinherited

Definition at line 39 of file TClingDeclInfo.h.

◆ GetDeclId()

TDictionary::DeclId_t TClingDataMemberInfo::GetDeclId ( ) const

Definition at line 162 of file TClingDataMemberInfo.cxx.

◆ GetTargetValueDecl()

const clang::ValueDecl * TClingDataMemberInfo::GetTargetValueDecl ( ) const

Get the ValueDecl, or if this represents a UsingShadowDecl, the underlying target ValueDecl.

Definition at line 182 of file TClingDataMemberInfo.cxx.

◆ IsValid()

virtual bool TClingDeclInfo::IsValid ( ) const
inlinevirtualinherited

Reimplemented in TClingMethodArgInfo, and TClingTypeInfo.

Definition at line 42 of file TClingDeclInfo.h.

◆ MaxIndex()

int TClingDataMemberInfo::MaxIndex ( int dim) const

Definition at line 243 of file TClingDataMemberInfo.cxx.

◆ Name()

const char * TClingDataMemberInfo::Name ( ) const
overridevirtual

Reimplemented from TClingDeclInfo.

Definition at line 626 of file TClingDataMemberInfo.cxx.

◆ Next()

int TClingDataMemberInfo::Next ( )

Definition at line 310 of file TClingDataMemberInfo.cxx.

◆ Offset()

Longptr_t TClingDataMemberInfo::Offset ( )

Definition at line 330 of file TClingDataMemberInfo.cxx.

◆ Property() [1/2]

long TClingDataMemberInfo::Property ( ) const

Definition at line 422 of file TClingDataMemberInfo.cxx.

◆ Property() [2/2]

long TClingDeclInfo::Property ( long property,
clang::QualType & qt ) const
protectedinherited

Definition at line 49 of file TClingDeclInfo.cxx.

◆ Title()

const char * TClingDataMemberInfo::Title ( )

Definition at line 638 of file TClingDataMemberInfo.cxx.

◆ TypeName()

const char * TClingDataMemberInfo::TypeName ( ) const

Definition at line 568 of file TClingDataMemberInfo.cxx.

◆ TypeProperty()

long TClingDataMemberInfo::TypeProperty ( ) const

Definition at line 541 of file TClingDataMemberInfo.cxx.

◆ TypeSize()

int TClingDataMemberInfo::TypeSize ( ) const

Definition at line 551 of file TClingDataMemberInfo.cxx.

◆ TypeTrueName()

const char * TClingDataMemberInfo::TypeTrueName ( const ROOT::TMetaUtils::TNormalizedCtxt & normCtxt) const

Definition at line 596 of file TClingDataMemberInfo.cxx.

◆ ValidArrayIndex()

llvm::StringRef TClingDataMemberInfo::ValidArrayIndex ( ) const

Definition at line 674 of file TClingDataMemberInfo.cxx.

Member Data Documentation

◆ fClassInfo

TClingClassInfo TClingDataMemberInfo::fClassInfo
private

Definition at line 76 of file TClingDataMemberInfo.h.

◆ [union]

union { ... } TClingDataMemberInfo::fConstInitVal

◆ fDecl

const clang::Decl* TClingDeclInfo::fDecl = nullptr
protectedinherited

Definition at line 30 of file TClingDeclInfo.h.

◆ fDouble

double TClingDataMemberInfo::fDouble

Definition at line 86 of file TClingDataMemberInfo.h.

◆ fEnumValue

int64_t TClingDataMemberInfo::fEnumValue
private

Definition at line 80 of file TClingDataMemberInfo.h.

◆ fFirstTime

bool TClingDataMemberInfo::fFirstTime = true
private

Definition at line 79 of file TClingDataMemberInfo.h.

◆ fFloat

float TClingDataMemberInfo::fFloat

Definition at line 85 of file TClingDataMemberInfo.h.

◆ fInterp

cling::Interpreter* TClingDataMemberInfo::fInterp
private

Definition at line 75 of file TClingDataMemberInfo.h.

◆ fIoName

std::string TClingDataMemberInfo::fIoName
mutableprivate

Definition at line 83 of file TClingDataMemberInfo.h.

◆ fIoType

std::string TClingDataMemberInfo::fIoType
mutableprivate

Definition at line 82 of file TClingDataMemberInfo.h.

◆ fIter

TClingDataMemberIter TClingDataMemberInfo::fIter
private

Definition at line 77 of file TClingDataMemberInfo.h.

◆ fLong

long TClingDataMemberInfo::fLong

Definition at line 87 of file TClingDataMemberInfo.h.

◆ fNameCache

std::string TClingDeclInfo::fNameCache
mutableprotectedinherited

Definition at line 31 of file TClingDeclInfo.h.

◆ fTitle

std::string TClingDataMemberInfo::fTitle
private

Definition at line 78 of file TClingDataMemberInfo.h.


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