CsEntityType Struct Reference

Base class for all types. More...

Inheritance diagram for CsEntityType:
CsScopeEntity CsEntity CsEntityClass CsEntityDelegate CsEntityEnum CsEntityInterface CsEntityStruct

List of all members.

Public Member Functions

 CsEntityType (cs_entity entity_type, cs_entity_access access, WPHashString phs, AssemblyEntity *assembly, CsNode *node)
 CsEntityType (cs_entity entity_type, cs_entity_access access, WPHashString phs, AssemblyEntity *assembly, CsNode *node, unsigned power_of_2)
 ~CsEntityType ()
void addMethodImplementation (CsEntityMethod *interface_method, CsEntityMethod *implementation_method)
void addIndexer (CsEntityProperty *indexer)
bool isBaseOf (const CsEntityType *derived)
bool isDerivedFrom (const CsEntityType *base)
CsEntityTypegetBaseTypeEntity () const
int evalOuterGenericParams () const
int evalGenericParamsDefinedInType () const
virtual void setStatic (bool flag)
virtual bool isStatic () const
 Returns true if it is a static entity.
bool isAbstract () const
bool isSealed () const
virtual void deleteProjectEntities ()
void removeDerivedType (CsEntityType *type)
void iRemoveEntities ()

Static Public Member Functions

static bool isBaseDerived (const CsEntityType *base, const CsEntityType *derived)
 Returns true if base type derived from derived type.
static bool isBaseDerivedCached (const CsEntityType *base, const CsEntityType *derived)
 Returns true if base derived from derived type, cached version.
static void addBaseTypes (VoidPtrHashSetTemplate< CsEntity * > *base_types_cache, const CsEntityType *derived_entity)
 Add base types to cache.
static bool isBaseDerivedOuterInner (const CsEntityType *base, const CsEntityType *derived)
 Returns true if base type derived from derived_type or base type is outer type.

Public Attributes

CsEntityTypeRef base_type
 Base class. Undefined for System.Object.
value_single_list_with_delete_value
< CsEntityTypeRef > * 
interfaces
 List of interfaces implemented in type.
CsEntityTypeRef entity_typeref
 Itself type representation in CsEntityTypeRef form.
single_list< CsEntityAttribute * > * attributes
 Attributes.
value_single_list
< CsEntityMethodImplementation > * 
method_implementations
 Explicit method implementations.
single_list< CsEntityProperty * > * indexers
 Indexers defined in type.
unsigned __int16 n_generic_params
 Total number of generic parameters.
unsigned __int16 n_inner_generic_params
 Number of type generic parameters.
CsEntityGenericParam ** generic_params
 Generic parameters.
VoidPtrHashSetTemplate
< CsEntity * > * 
base_types_cache
 Base types cache.

Static Private Member Functions

static bool isBaseDerived2 (const CsEntityType *base, const CsEntityType *derived)
static bool isBaseDerivedOuterInner2 (const CsEntityType *base, const CsEntityType *derived)

Static Private Attributes

static set< const CsEntityType * > * recursive_types_

Friends

struct CsEntityTypeRef

Detailed Description

Base class for all types.


Constructor & Destructor Documentation

CsEntityType::CsEntityType ( cs_entity  entity_type,
cs_entity_access  access,
WPHashString  phs,
AssemblyEntity assembly,
CsNode node 
) [inline]
CsEntityType::CsEntityType ( cs_entity  entity_type,
cs_entity_access  access,
WPHashString  phs,
AssemblyEntity assembly,
CsNode node,
unsigned  power_of_2 
) [inline]
CsEntityType::~CsEntityType (  )  [inline]

Member Function Documentation

static void CsEntityType::addBaseTypes ( VoidPtrHashSetTemplate< CsEntity * > *  base_types_cache,
const CsEntityType derived_entity 
) [static]

Add base types to cache.

void CsEntityType::addIndexer ( CsEntityProperty indexer  )  [inline]
void CsEntityType::addMethodImplementation ( CsEntityMethod interface_method,
CsEntityMethod implementation_method 
) [inline]
virtual void CsEntityType::deleteProjectEntities (  )  [virtual]
int CsEntityType::evalGenericParamsDefinedInType (  )  const [inline]
int CsEntityType::evalOuterGenericParams (  )  const [inline]
CsEntityType* CsEntityType::getBaseTypeEntity (  )  const [inline]
void CsEntityType::iRemoveEntities (  )  [inline]
bool CsEntityType::isAbstract (  )  const [inline]
static bool CsEntityType::isBaseDerived ( const CsEntityType base,
const CsEntityType derived 
) [static]

Returns true if base type derived from derived type.

static bool CsEntityType::isBaseDerived2 ( const CsEntityType base,
const CsEntityType derived 
) [static, private]
static bool CsEntityType::isBaseDerivedCached ( const CsEntityType base,
const CsEntityType derived 
) [static]

Returns true if base derived from derived type, cached version.

static bool CsEntityType::isBaseDerivedOuterInner ( const CsEntityType base,
const CsEntityType derived 
) [static]

Returns true if base type derived from derived_type or base type is outer type.

static bool CsEntityType::isBaseDerivedOuterInner2 ( const CsEntityType base,
const CsEntityType derived 
) [static, private]
bool CsEntityType::isBaseOf ( const CsEntityType derived  )  [inline]
bool CsEntityType::isDerivedFrom ( const CsEntityType base  )  [inline]
bool CsEntityType::isSealed (  )  const [inline]
virtual bool CsEntityType::isStatic (  )  const [inline, virtual]

Returns true if it is a static entity.

Reimplemented from CsEntity.

void CsEntityType::removeDerivedType ( CsEntityType type  ) 
virtual void CsEntityType::setStatic ( bool  flag  )  [inline, virtual]

Reimplemented from CsEntity.


Friends And Related Function Documentation

friend struct CsEntityTypeRef [friend]

Reimplemented from CsEntity.


Member Data Documentation

Attributes.

Base class. Undefined for System.Object.

VoidPtrHashSetTemplate<CsEntity*>* CsEntityType::base_types_cache [mutable]

Base types cache.

Itself type representation in CsEntityTypeRef form.

Indexers defined in type.

value_single_list_with_delete_value<CsEntityTypeRef>* CsEntityType::interfaces

List of interfaces implemented in type.

Explicit method implementations.

Total number of generic parameters.

Number of type generic parameters.

set<const CsEntityType*>* CsEntityType::recursive_types_ [static, private]
© 2010 metaspec