00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #ifndef OB_METHODS_H
00034 #define OB_METHODS_H
00035
00041 typedef char method_ret;
00042 #define METHOD_OK 0
00043 #define METHOD_UNHANDLED 1
00044 #define METHOD_ERROR 2
00045 #define METHOD_SILENT_ERROR 3
00053
00054
00055
00056
00065 typedef struct ob_methods ob_methods;
00066 typedef method_ret (*apply_func)(ob_methods *, object *, object *, int);
00067 typedef method_ret (*process_func)(ob_methods *, object *);
00068 typedef void (*describe_func)(const ob_methods *, const object *, const object *, char *buf, size_t size);
00069 typedef method_ret (*move_on_func)(ob_methods *, object *, object *, object *);
00070 typedef method_ret (*trigger_func)(ob_methods *, object *, object *, int);
00071
00072 struct ob_methods {
00073 apply_func apply;
00074 process_func process;
00075 describe_func describe;
00076 move_on_func move_on;
00077 trigger_func trigger;
00078 struct ob_methods *fallback;
00079
00080
00081
00082 };
00083
00084 #endif