#include <DynObj.h>
Public Member Functions | |
Non-virtuals | |
Functions included with DO_FAT_VOBJ define | |
DynObjType * | GetType () const |
bool | IsA (int type_id) const |
bool | CanBeA (int type_id) const |
bool | IsA (const char *type) const |
void * | GetObj (int type_id, doCastAlgo algo=doCastFull) |
void * | GetObj (const char *type, doCastAlgo algo=doCastFull) |
const char * | GetError (int *perr_code=NULL) const |
void | ClearError () |
bool | SetError (const char *err_str, int err_code=-1) const |
bool | IsA (int type_id, DynObjType *ptype) const |
bool | CanBeA (int type_id, DynObjType *ptype) const |
bool | IsA (const char *type, DynObjType *ptype) const |
const char * | GetTypeName () const |
bool | doIsOk () const |
In this class the virtual functions (number of them, signatures) are not known. It only promises that it has a VTable, and we can do type lookups from that. VObjs can be used when we have C++ classes that don't derive from DynI. Objects of type VObj are not created, but one can get pointers to them through casts/queries (doGetVObj).
DynObjType* VObj::GetType | ( | ) | const |
Returns type structure for this object. Does a global lookup using object VPTR.
Reimplemented in DynI.
bool VObj::IsA | ( | int | type_id | ) | const [inline] |
Test if object is of a certain type ID IsA returns true if the requested type can be returned without adjusting the 'this' pointer (must be main base class).
Reimplemented in DynI.
bool VObj::CanBeA | ( | int | type_id | ) | const [inline] |
Test if object 'can be' of a certain type ID CanBeA returns true if the requested type is available as any base class of the object (main base or side base).
Reimplemented in DynI.
bool VObj::IsA | ( | const char * | type | ) | const [inline] |
Same as IsA but using type string
Reimplemented in DynI.
void* VObj::GetObj | ( | int | type_id, | |
doCastAlgo | algo = doCastFull | |||
) | [inline] |
Raw cast, lookup internal type by type ID.
Reimplemented in DynI.
void* VObj::GetObj | ( | const char * | type, | |
doCastAlgo | algo = doCastFull | |||
) | [inline] |
Raw cast, lookup internal type by type string.
Reimplemented in DynI.
const char* VObj::GetError | ( | int * | perr_code = NULL |
) | const |
Returns current error string for object or NULL if no error
perr_code | a location to store the error code, default is NULL |
void VObj::ClearError | ( | ) |
This will clear the error state for the object if set
bool VObj::SetError | ( | const char * | err_str, | |
int | err_code = -1 | |||
) | const |
Set the internal error state for the object
bool VObj::IsA | ( | int | type_id, | |
DynObjType * | ptype | |||
) | const |
IsA variant, here we know our own type
bool VObj::CanBeA | ( | int | type_id, | |
DynObjType * | ptype | |||
) | const |
CanBeA variant, here we know our own type
bool VObj::IsA | ( | const char * | type, | |
DynObjType * | ptype | |||
) | const |
IsA variant, here we know our own type
const char* VObj::GetTypeName | ( | ) | const [inline] |
Returns name of type
Reimplemented in DynI.
bool VObj::doIsOk | ( | ) | const [inline] |
Check if object exists and has no errors
Reimplemented in DynI.