| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #ifndef BLITZ_OBJECT_H
- #define BLITZ_OBJECT_H
- #include "blitz_types.h"
- #ifdef __cplusplus
- extern "C"{
- #endif
- #define BBNULL (&bbNullObject)
- #define BBNULLOBJECT (&bbNullObject)
- struct BBClass{
- //extends BBGCPool
- BBClass* super;
- void (*free)( BBObject *o );
-
- BBDebugScope*debug_scope;
- int instance_size;
- void (*ctor)( BBObject *o );
- void (*dtor)( BBObject *o );
-
- BBString* (*ToString)( BBObject *x );
- int (*Compare)( BBObject *x,BBObject *y );
- BBObject* (*SendMessage)( BBObject *m,BBObject *s );
- void (*_reserved1_)();
- void (*_reserved2_)();
- void (*_reserved3_)();
-
- void* vfns[32];
- };
- struct BBObject{
- //extends BBGCMem
- BBClass* clas;
- int refs;
- };
- extern BBClass bbObjectClass;
- extern BBObject bbNullObject;
- BBObject* bbObjectNew( BBClass *t );
- void bbObjectFree( BBObject *o );
- void bbObjectCtor( BBObject *o );
- void bbObjectDtor( BBObject *o );
- BBString* bbObjectToString( BBObject *o );
- int bbObjectCompare( BBObject *x,BBObject *y );
- BBObject* bbObjectSendMessage( BBObject *m,BBObject *s );
- void bbObjectReserved();
- BBObject* bbObjectDowncast( BBObject *o,BBClass *t );
- void bbObjectRegisterType( BBClass *clas );
- BBClass** bbObjectRegisteredTypes( int *count );
- #ifdef __cplusplus
- }
- #endif
- #endif
|