38 if (!PyArg_ParseTuple (
function,
"O", &func))
41 if (!PyCallable_Check (func))
43 PyErr_SetString (PyExc_RuntimeError,
"Function is not callable");
47 if (PyList_Append (callback_list, func) < 0)
63 if (!PyArg_ParseTuple (
function,
"O", &func))
66 index = PySequence_Index (callback_list, func);
70 if (PySequence_DelItem (callback_list, index) < 0)
87 if (!eventregistry_obj)
90 eventregistry_obj->
callbacks = PyList_New (0);
97 return eventregistry_obj;
104 Py_TYPE (
self)->tp_free (
self);
125 return PyList_Size (registry->
callbacks) == 0;
157 "GDB event registry object",
164 eventregistry_object_methods,
int gdb_pymodule_addobject(PyObject *module, const char *name, PyObject *object)
static void evregpy_dealloc(PyObject *self)
eventregistry_object * create_eventregistry_object(void)
PyObject_HEAD PyObject * callbacks
static PyObject * evregpy_connect(PyObject *self, PyObject *function)
int evregpy_no_listeners_p(eventregistry_object *registry)
PyTypeObject eventregistry_object_type
events_object gdb_py_events
PyTypeObject eventregistry_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF("eventregistry_object")
static PyObject * evregpy_disconnect(PyObject *self, PyObject *function)
int gdbpy_initialize_eventregistry(void)
static PyMethodDef eventregistry_object_methods[]
#define PyVarObject_HEAD_INIT(type, size)