00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #define PYTHON_VAR 1
00023 #define PYTHON_FUNC 2
00024
00025 #define Callable_Check(op) PyObject_TypeCheck(op, &Callable_Type)
00026 #define Egguser_Check(op) PyObject_TypeCheck(op, &Egguser_Type)
00027
00028 #define FlushAll() do {\
00029 Flush(0);\
00030 Flush(1);\
00031 } while (0)
00032
00033 typedef struct {
00034 PyObject_HEAD
00035 int type;
00036 void *client_data;
00037 } CallableObject;
00038
00039 typedef struct {
00040 PyObject_HEAD
00041 user_t *user;
00042 } EgguserObject;
00043
00044 typedef struct {
00045 PyDictObject dict;
00046 } MyDictObject;
00047
00048 partymember_t *LogTarget;
00049
00050 script_module_t my_script_interface;
00051
00052 void Flush(unsigned Target);
00053 PyObject *c_to_python_var(script_var_t *v);
00054 int python_to_c_var(PyObject *obj, script_var_t *var, int type);
00055 int MyModule_Init(void);
00056 PyObject *GetVar(script_linked_var_t *var);
00057 int SetVar(script_linked_var_t *var, PyObject *Value);
00058 PyObject *MyModule_Add(char *name, char *doc);
00059 PyObject *MyDict_New(PyTypeObject *Type, PyObject *args, PyObject *kwds);
00060
00061 PyTypeObject Callable_Type, MyDict_Type, Stdio_Type, Egguser_Type;
00062 PyObject *EggdropModule;