DynObjType Struct Reference
[Global functions and enums]

#include <DoType.h>

List of all members.

Public Types

enum  { AmbigEither = 3, AmbigId = 1, AmbigName = 2 }

Public Member Functions

 DynObjType (const char *type, int type_id, int flags, int size, const void *_this=NULL, const void *_base_ptr=NULL, const char *header=NULL)
 DynObjType (const char *type, const char *base, int type_id, int flags, int size, const void *_this=NULL, const void *_base_ptr=NULL, const char *header=NULL)
void Ctor (const char *type, const char *base, int type_id, int flags, int size, const void *_this, const void *_base_ptr, const char *header)
bool IsOk ()
bool operator== (const char *type) const
bool operator== (void **vtbl) const
bool operator== (int type_id) const
bool IsA (int type_id, const char *pcaller_addr) const
bool CanBeA (int type_id, const void *pobj, const char *pcaller_addr) const
bool IsSideBase (const void *pvo) const
bool MatchesTypeName (const char *type) const
bool IsSameType (DynObjType *opdt) const
bool IsSameTypeAndCompatible (DynObjType *opdt) const
bool IsAmbigous (int amb_type=AmbigEither) const
int HasNestedSideBases ()
DynObjTypeGetOuterMost (const void *pobj, int *poff=NULL) const
DoCompoundNode * GetCompound (void **vtbl, int *poff=NULL) const
DynObjTypeGetTypeAtOffset (int off) const
DoTypeItem * LookupTypeItem (char type) const
DoTypeItem * LookupTypeItemLinkFirst (char type)
bool AddTypeItem (DoTypeItem *pitem)
DoTypeItem * RemoveTypeItem (char type)
void ** GetKey ()

Public Attributes

StructHeader _sh
const char * _type
int _type_id
short _vtbl_size
short _size
int _flags
DoBaseNode _base
void ** _vtbl
DoCompoundNode * _compounds
DoModuleNode * _mod_fst
const char * _header
DoTypeItem * _pext

Protected Member Functions

bool LinkAfter (DynObjType *after, bool is_name)
void LinkModule (DoModuleC *pmod)
void UnlinkModule (DoModuleC *pmod)
DoModuleCGetOriginalModule ()
void * GetObj (void *pself, const char *type, DynObjType **found_type=NULL, DynObjType *pdt_avoid=NULL)
void * GetObj (void *pself, int type_id, const char *pcaller, DynObjType **found_type=NULL, DynObjType *pdt_avoid=NULL)
bool CanBeAInternal (int type_id, const char *pcaller_addr) const
bool IsTypeForCaller (const char *pcaller_addr) const

Friends

class DoRunTimeC
class SideBaseDecl
void * doGetObj (void *obj, const char *type, DynObjType *self_type, doCastAlgo algo, DynObjType **pdt_found)
void * doGetObj (void *obj, int type_id, DynObjType *self_type, doCastAlgo algo, DynObjType **pdt_found)
void * doGetObj (DynI *pdi, const char *type, doCastAlgo algo, DynObjType **pdt_found, bool internal_from_dyni)


Detailed Description

Internal representation of a type. This keeps all data representing the internals of a registered DynObjType. All data fields are generated by the source compiler, allowing for using the correct object offsets in the hos application.

Friends And Related Function Documentation

void* doGetObj ( void *  obj,
const char *  type,
DynObjType self_type,
doCastAlgo  algo,
DynObjType **  pdt_found 
) [friend]

Get sub-object or interface.

Parameters:
pobj Query object
type string
self_type Type of pobj or NULL if not known
algo Algoithm to use in cast
found_type Pointer-to-pointer: store found type here if non-NULL
Returns:
Pointer to interface/object

void* doGetObj ( void *  obj,
int  type_id,
DynObjType self_type,
doCastAlgo  algo,
DynObjType **  pdt_found 
) [friend]

Get sub-object or interface.

Parameters:
pobj Query object
type_id Integer type ID
self_type Type of pobj or NULL if not known
algo Algoithm to use in cast
found_type Pointer-to-pointer: store found type here if non-NULL
Returns:
Pointer to interface/object


The documentation for this struct was generated from the following file:

Generated on Sun Feb 15 16:35:57 2009 for DynObj by  doxygen 1.5.6