object.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef AFUN__OBJECT_H_PUBLIC
  2. #define AFUN__OBJECT_H_PUBLIC
  3. #include "tool.h"
  4. typedef struct af_Object af_Object;
  5. typedef struct af_Inherit af_Inherit;
  6. typedef struct af_ObjectAPI af_ObjectAPI;
  7. /* 对象API函数 DLC */
  8. typedef void objectAPIFunc();
  9. DEFINE_DLC_SYMBOL(objectAPIFunc);
  10. #include "obj_api.h"
  11. #include "env.h"
  12. /* 对象创建与释放函数 */
  13. af_Object *makeObject(char *id, bool free_api, af_ObjectAPI *api, bool allow_inherit, af_Object *belong,
  14. af_Inherit *inherit, af_Environment *env);
  15. void freeObject(af_Object *obj, af_Environment *env);
  16. /* 对象属性获取函数 */
  17. af_Object *getBelongObject(af_Object *object, af_Environment *env);
  18. /* 对象继承关系函数 */
  19. af_Inherit *makeInherit(af_Object *obj);
  20. af_Inherit *freeInherit(af_Inherit *ih);
  21. void freeAllInherit(af_Inherit *ih);
  22. /* API表 创建与释放 */
  23. af_ObjectAPI *makeObjectAPI(void);
  24. void freeObjectAPI(af_ObjectAPI *api);
  25. /* API表 管理函数 */
  26. int addAPI(DLC_SYMBOL(objectAPIFunc) func, char *api_name, af_ObjectAPI *api);
  27. void *findAPI(char *api_name, af_ObjectAPI *api);
  28. /* 对象API函数 */
  29. void *findObjectAPI(char *api_name, af_Object *obj);
  30. int addAPIToObject(DLC_SYMBOL(objectAPIFunc) func, char *api_name, af_Object *obj);
  31. #endif //AFUN__OBJECT_H_PUBLIC