From 6f169212985c7e4880a0e3e54ba36e133d99b0ff Mon Sep 17 00:00:00 2001 From: Alexey Stratulat <--local> Date: Mon, 5 Aug 2019 23:32:01 +0700 Subject: [PATCH] [*] Fixed problems with cross connections of header files. Improved dap_events wrapping; added wrapping for the following dap_events_socket_remove_and_delete, dap_events_kill_socket functions. --- include/dap_events_python.h | 8 ++------ include/dap_events_socket_python.h | 9 +++++---- include/libdap-server-core-python.h | 2 ++ src/dap_events_python.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/include/dap_events_python.h b/include/dap_events_python.h index 1924a623..80af2082 100644 --- a/include/dap_events_python.h +++ b/include/dap_events_python.h @@ -1,10 +1,8 @@ -#ifndef _DAP_EVENTS_PYTHON_H -#define _DAP_EVENTS_PYTHON_H - +#pragma once #include "Python.h" #include "dap_events.h" -//#include "dap_events_socket_python.h" +#include "dap_events_socket_python.h" #ifdef __cplusplus @@ -56,5 +54,3 @@ PyObject *dap_events_wait_py(PyObject *self, PyObject *args); //dap_events_t *sh #ifdef __cplusplus } #endif - -#endif diff --git a/include/dap_events_socket_python.h b/include/dap_events_socket_python.h index 4bd9cc79..d3968648 100644 --- a/include/dap_events_socket_python.h +++ b/include/dap_events_socket_python.h @@ -1,11 +1,14 @@ -#ifndef _DAP_EVENTS_SOCKET_PYTHON_H_ -#define _DAP_EVENTS_SOCKET_PYTHON_H_ +#pragma once #include "Python.h" #include "dap_events_socket.h" #include "dap_events_python.h" #include "dap_common.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef struct PyDapEventsSocket{ PyObject_HEAD dap_events_socket_t *t_events_socket; @@ -63,5 +66,3 @@ PyObject *dap_events_socket_shrink_buf_in_py(PyObject *self, PyObject *args);//d #ifdef __cplusplus } #endif - -#endif diff --git a/include/libdap-server-core-python.h b/include/libdap-server-core-python.h index 411e65e5..c96f4d27 100644 --- a/include/libdap-server-core-python.h +++ b/include/libdap-server-core-python.h @@ -60,6 +60,8 @@ static PyMethodDef DapServerCorePythonMethods[] = { {"eventsDellete", dap_events_delete_py, METH_VARARGS, ""}, {"eventsStart", dap_events_start_py, METH_VARARGS, ""}, {"eventsWait", dap_events_wait_py, METH_VARARGS, ""}, + {"eventsSocketRemoveAndDelete", dap_events_socket_remove_and_delete_py, METH_VARARGS, ""}, + {"eventsKillSocket", dap_events_kill_socket_py, METH_VARARGS, ""}, /* Events Socket */ {"eventsSocketInit", dap_events_socket_init_py, METH_NOARGS, ""}, {"eventsSocketDeinit", dap_events_socket_deinit_py, METH_NOARGS, ""}, diff --git a/src/dap_events_python.c b/src/dap_events_python.c index 0bf53073..726120f0 100644 --- a/src/dap_events_python.c +++ b/src/dap_events_python.c @@ -30,10 +30,24 @@ PyObject *dap_events_delete_py(PyObject *self, PyObject *args){ } //void dap_events_socket_remove_and_delete( dap_events_socket_t* a_es ); PyObject *dap_events_socket_remove_and_delete_py(PyObject *self, PyObject *args){ + PyObject *in_obj; + PyObject *in_bool; + if (!PyArg_ParseTuple(args, "O|O", &in_obj, &in_bool)){ + return NULL; + } + bool preserve_inheritor = true; + if (in_bool == Py_False) + preserve_inheritor = false; + dap_events_socket_remove_and_delete(((PyDapEventsSocketObject*)in_obj)->t_events_socket, preserve_inheritor); return PyLong_FromLong(0); } PyObject *dap_events_kill_socket_py(PyObject *self, PyObject *args){ + PyObject *in_obj; + if (!PyArg_ParseTuple(args, "O", &in_obj)){ + return NULL; + } + dap_events_kill_socket(((PyDapEventsSocketObject*)in_obj)->t_events_socket); return PyLong_FromLong(0); } -- GitLab