00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __PYTHON_SESSION_H_
00021
00022 #define __PYTHON_SESSION_H_
00023
00024 #include <Python.h>
00025
00026 typedef struct {
00027 PyObject_HEAD
00028 char * name;
00029 } ekg_sessionObj;
00030
00031 void ekg_session_dealloc(ekg_sessionObj * o);
00032 PyObject * ekg_session_repr(ekg_sessionObj * self);
00033 PyObject * ekg_session_str(ekg_sessionObj * self);
00034 int ekg_session_init(ekg_sessionObj *self, PyObject *args, PyObject *kwds);
00035 int ekg_session_len(ekg_sessionObj * self);
00036 PyObject *ekg_session_set(ekg_sessionObj * self, PyObject * key, PyObject * value);
00037 PyObject *ekg_session_connected(ekg_sessionObj * self);
00038 PyObject *ekg_session_get_attr(ekg_sessionObj * self, char * attr);
00039 PyObject *ekg_session_user_get(ekg_sessionObj * self, PyObject * pyargs);
00040 PyObject *ekg_session_users(ekg_sessionObj * self);
00041 PyObject *ekg_session_get(ekg_sessionObj * self, PyObject * key);
00042 PyObject *ekg_session_status_set(ekg_sessionObj * self, PyObject * pyargs);
00043 PyObject *ekg_session_status(ekg_sessionObj * self);
00044 PyObject *ekg_session_connect(ekg_sessionObj * self);
00045 PyObject *ekg_session_disconnect(ekg_sessionObj * self);
00046
00047 staticforward PyMethodDef ekg_session_methods[] = {
00048 {"connected", (PyCFunction)ekg_session_connected, METH_NOARGS, "Check if session is connected"},
00049 {"user_get", (PyCFunction)ekg_session_user_get, METH_VARARGS, "Return user object"},
00050 {"users", (PyCFunction)ekg_session_users, METH_NOARGS, "Return userlist"},
00051 {"status_set", (PyCFunction)ekg_session_status_set, METH_VARARGS, "Set status for session"},
00052 {"status", (PyCFunction)ekg_session_status, METH_NOARGS, "Get status tuple for session"},
00053 {"connect", (PyCFunction)ekg_session_connect, METH_NOARGS, "Connect session"},
00054 {"disconnect", (PyCFunction)ekg_session_disconnect, METH_NOARGS, "Disconnect session"},
00055 {NULL, NULL, 0, NULL}
00056 };
00057
00058 static PyMappingMethods ekg_session_mapping = {
00059 (inquiry) ekg_session_len,
00060 (binaryfunc) ekg_session_get,
00061 (objobjargproc) ekg_session_set
00062 };
00063
00064 static PyTypeObject ekg_session_type = {
00065 PyObject_HEAD_INIT(NULL)
00066 0,
00067 "session",
00068 sizeof(ekg_sessionObj),
00069 0,
00070 (destructor)ekg_session_dealloc,
00071 0,
00072 (getattrfunc)ekg_session_get_attr,
00073 0,
00074 0,
00075 (reprfunc)ekg_session_repr,
00076 0,
00077 0,
00078 &ekg_session_mapping,
00079 0,
00080 0,
00081 (reprfunc)ekg_session_str,
00082 0,
00083 0,
00084 0,
00085 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
00086 "Session object",
00087 0,
00088 0,
00089 0,
00090 0,
00091 0,
00092 0,
00093 ekg_session_methods,
00094 0,
00095 0,
00096 0,
00097 0,
00098 0,
00099 0,
00100 0,
00101 (initproc)ekg_session_init,
00102 0,
00103 0,
00104 };
00105
00106 #endif
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116