Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

VM::ClassInfo Class Reference

Represents the (namespace and type) information inside a class. More...

#include <classinfo.h>

Inheritance diagram for VM::ClassInfo:

Inheritance graph
[legend]
Collaboration diagram for VM::ClassInfo:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ClassInfo (const TLString &name, TypeID class_tid, NamespaceInfo *parent=NULL)
 Construct class info (node); see NamespaceInfo constructor.

 ~ClassInfo ()
 See base class NamespaceInfo.

void DumpTree (StringTreeDump &dump, bool IDs_resolved, bool recurse) const
 See base class. [overriding virtual].

TLString CompleteName () const
 See base class. [overriding virtual].

TypeID ClassTID () const
 Return ClassID. This is required by the ordering template.


Protected Attributes

Offset size
 Size of the complete class in bytes.

uint32 nvirtuals
 Number of (pure and non-pure) virtual methods in this class.

NonResizeableArray< BaseEntry,
uint32
base
 Array of immediate base classes.

NonResizeableArray< VTableEntry,
uint32
vtable
 Array of vtable entries.

NonResizeableArray< MemberVarEntry,
uint32
membvar
 Array of (immediate) member vars.

uint16 need_construct: 1
 Used by the linker: Is the class needed for construction (ONEW)?

uint16 need_cast: 1
 Used by the linker: Is the class needed for casting or as base?


Private Member Functions

 ClassInfo (const ClassInfo &)
 Do not use.

void operator= (const ClassInfo &)
 Do not use.


Friends

class AssemblerFile
class AssemblerFile_Plaintext
class VMLinker

Detailed Description

Represents the (namespace and type) information inside a class.

Author:
Wolfgang Wieser ] wwieser (a) gmx <*> de [
This class is used to build a tree-like structure of the class/namespace information blocks; it is NOT C++-safe.

Definition at line 83 of file classinfo.h.


Constructor & Destructor Documentation

VM::ClassInfo::ClassInfo const ClassInfo  )  [private]
 

Do not use.

VM::ClassInfo::ClassInfo const TLString name,
TypeID  class_tid,
NamespaceInfo parent = NULL
 

Construct class info (node); see NamespaceInfo constructor.

Definition at line 112 of file classinfo.cc.

References need_cast, need_construct, nvirtuals, size, and VM::TypeID.

VM::ClassInfo::~ClassInfo  ) 
 

See base class NamespaceInfo.

Definition at line 127 of file classinfo.cc.


Member Function Documentation

TypeID VM::ClassInfo::ClassTID  )  const [inline]
 

Return ClassID. This is required by the ordering template.

Definition at line 179 of file classinfo.h.

References VM::TypeID.

Referenced by VM::AssemblerFile::ORD_TypeID::ord().

TLString VM::ClassInfo::CompleteName  )  const
 

See base class. [overriding virtual].

Reimplemented from VM::ClassInfoIE.

Definition at line 47 of file classinfo.cc.

Referenced by VM::VMLinker::_LinkerNeedClassConstruct(), VM::VMLinker::_MergeNamespaceInfo_Recursive(), and VM::AssemblerFile::_ResolveIDsNamespaceLocal_Recursive().

void VM::ClassInfo::DumpTree StringTreeDump dump,
bool  IDs_resolved,
bool  recurse
const [virtual]
 

See base class. [overriding virtual].

Reimplemented from VM::NamespaceInfo.

Definition at line 53 of file classinfo.cc.

References StringTreeDump::AddIndent(), base, VM::ClassInfo::BaseEntry::ci, VM::ClassInfoIE::CompleteName(), TLString::deref(), VM::NamespaceInfo::DumpTree(), LinkedList< NamespaceInfo >::first(), LinkedList< NamespaceInfo >::IsEmpty(), membvar, VM::NonResizeableArray< VTableEntry, uint32 >::n(), VM::NonResizeableArray< MemberVarEntry, uint32 >::n(), VM::NonResizeableArray< BaseEntry, uint32 >::n(), VM::ClassInfo::MemberVarEntry::name, LinkedListBase< NamespaceInfo >::next, nvirtuals, VM::ClassInfo::MemberVarEntry::off, VM::ClassInfo::BaseEntry::off, VM::ClassInfo::VTableEntry::se, size, TLString::sprintf(), TLString::str(), StringTreeDump::SubIndent(), VM::ClassInfo::VTableEntry::symref, VM::ClassInfo::BaseEntry::tid, VM::VarType::TypeString(), uint, uint32, vtable, and VM::ClassInfo::MemberVarEntry::vtype.

void VM::ClassInfo::operator= const ClassInfo  )  [private]
 

Do not use.


Friends And Related Function Documentation

friend class AssemblerFile [friend]
 

Reimplemented from VM::NamespaceInfo.

Definition at line 86 of file classinfo.h.

friend class AssemblerFile_Plaintext [friend]
 

Reimplemented from VM::NamespaceInfo.

Definition at line 87 of file classinfo.h.

friend class VMLinker [friend]
 

Reimplemented from VM::NamespaceInfo.

Definition at line 89 of file classinfo.h.


Member Data Documentation

NonResizeableArray<BaseEntry,uint32> VM::ClassInfo::base [protected]
 

Array of immediate base classes.

Definition at line 148 of file classinfo.h.

Referenced by VM::VMLinker::_CheckBaseRecursion(), VM::VMLinker::_CheckNamespaceInfo_Recursive(), VM::VMLinker::_DoPropagateUseFlags(), VM::AssemblerFile_Plaintext::_ParseSymbols_Class_Base(), VM::AssemblerFile::_ResolveIDsNamespaceLocal_Recursive(), VM::AssemblerFile_Plaintext::_WriteSymbols_Recursive(), and DumpTree().

NonResizeableArray<MemberVarEntry,uint32> VM::ClassInfo::membvar [protected]
 

Array of (immediate) member vars.

Definition at line 152 of file classinfo.h.

Referenced by VM::VMLinker::_MergeNamespaceInfo_Recursive(), VM::AssemblerFile_Plaintext::_ParseSymbols_Class_Size(), VM::AssemblerFile_Plaintext::_WriteSymbols_Recursive(), and DumpTree().

uint16 VM::ClassInfo::need_cast [protected]
 

Used by the linker: Is the class needed for casting or as base?

Definition at line 157 of file classinfo.h.

Referenced by VM::VMLinker::_DoPropagateUseFlags(), VM::VMLinker::_LinkFunction(), VM::AssemblerFile_Plaintext::_MustDumpNamespace(), VM::VMLinker::_PropagateUseFlags_Recursive(), and ClassInfo().

uint16 VM::ClassInfo::need_construct [protected]
 

Used by the linker: Is the class needed for construction (ONEW)?

Definition at line 155 of file classinfo.h.

Referenced by VM::VMLinker::_DoPropagateUseFlags(), VM::VMLinker::_LinkerNeedClassConstruct(), VM::VMLinker::_LinkFunction(), VM::AssemblerFile_Plaintext::_MustDumpNamespace(), VM::VMLinker::_PropagateUseFlags_Recursive(), and ClassInfo().

uint32 VM::ClassInfo::nvirtuals [protected]
 

Number of (pure and non-pure) virtual methods in this class.

Definition at line 145 of file classinfo.h.

Referenced by VM::VMLinker::_MergeNamespaceInfo_Recursive(), VM::AssemblerFile_Plaintext::_ParseSymbols_Class(), VM::AssemblerFile_Plaintext::_WriteSymbols_Recursive(), ClassInfo(), and DumpTree().

Offset VM::ClassInfo::size [protected]
 

Size of the complete class in bytes.

Definition at line 142 of file classinfo.h.

Referenced by VM::VMLinker::_MergeNamespaceInfo_Recursive(), VM::AssemblerFile_Plaintext::_ParseSymbols_Class_Size(), VM::AssemblerFile_Plaintext::_WriteSymbols_Recursive(), ClassInfo(), and DumpTree().

NonResizeableArray<VTableEntry,uint32> VM::ClassInfo::vtable [protected]
 

Array of vtable entries.

Definition at line 150 of file classinfo.h.

Referenced by VM::VMLinker::_CheckNamespaceInfo_Recursive(), VM::VMLinker::_LinkerNeedClassConstruct(), VM::AssemblerFile_Plaintext::_ParseSymbols_Class_VTable(), VM::AssemblerFile::_ResolveIDsNamespaceLocal_Recursive(), VM::AssemblerFile_Plaintext::_WriteSymbols_Recursive(), and DumpTree().


The documentation for this class was generated from the following files:
Generated on Sat Feb 19 22:36:11 2005 for Ray by doxygen 1.3.5