00001
00016 #if !defined(INC_OSKI_MATTYPES_H)
00017
00018 #define INC_OSKI_MATTYPES_H
00019
00023 void oski_InitMatTypeManager (void);
00024
00028 void oski_CloseMatTypeManager (void);
00029
00034 oski_id_t oski_RegisterMatType (const char *type_name,
00035 oski_id_t id_ind_type, oski_id_t id_val_type);
00036
00040 oski_id_t oski_LookupMatTypeId (const char *type_name,
00041 oski_id_t id_ind_type, oski_id_t id_val_type);
00042
00054 #define OSKI_MATTYPE_ID(type) \
00055 oski_LookupMatTypeId((const char *)(type), OSKI_IND_ID, OSKI_VAL_ID)
00056
00065
00077 #define OSKI_MATTYPE_METHOD(type, name) \
00078 (OSKI_MAKENAME_FUNCPT(name))oski_LookupMatTypeMethod( \
00079 type, OSKI_IND_ID, OSKI_VAL_ID, \
00080 "oski_" MACRO_TO_STRING(name) \
00081 )
00082
00086 void *oski_LookupMatTypeMethod (const char *type_name,
00087 oski_id_t id_ind_type, oski_id_t id_val_type,
00088 const char *method_name);
00089
00099 #define OSKI_MATTYPEID_METHOD(type_id, name) \
00100 (OSKI_MAKENAME_FUNCPT(name))oski_LookupMatTypeIdMethod( \
00101 type_id, "oski_" MACRO_TO_STRING(name) \
00102 )
00103
00107 void *oski_LookupMatTypeIdMethod (oski_id_t id, const char *method_name);
00108
00111 #endif
00112
00113