From 9116d006420b36c6a3084fb958f2c69bce123f1b Mon Sep 17 00:00:00 2001 From: Alexey Stratulat <--local> Date: Thu, 1 Aug 2019 00:08:13 +0700 Subject: [PATCH] Added to initialization/deinitialization dap_events, dap_client_remote --- include/libdap-server-core-python.h | 16 +++++++++++++- src/libdap-server-core-python.c | 34 ++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/include/libdap-server-core-python.h b/include/libdap-server-core-python.h index 87b2402a..1d7771d1 100644 --- a/include/libdap-server-core-python.h +++ b/include/libdap-server-core-python.h @@ -1,17 +1,31 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" #include "dap_server.h" +#include "dap_client_remote.h" +#include "dap_events.h" +#include "dap_common.h" #ifdef __cplusplus extern "C" { #endif +dap_server_t *t_server; + + + +#define LOG_TAG "libdap-server-core-python" + static PyObject *dap_server_core_init(PyObject *self, PyObject *args); -static PyObject *dap_server_core_deinit(); +static PyObject *dap_server_core_deinit(void); + +static PyObject *dap_server_core_loop(PyObject *self, PyObject *args); +static PyObject *dap_server_core_listen(PyObject *self, PyObject *args); static PyMethodDef DapServerCorePythonMethods[] = { {"init", dap_server_core_init, METH_VARARGS, "Initialization of the DAP (Deus Applicaions Prototypes) server core library"}, {"deinit", dap_server_core_deinit, METH_NOARGS, "Deinitialization of the DAP (Deus Applicaions Prototypes) server core library"}, + {"loop", dap_server_core_loop, METH_VARARGS, ""}, + {"listen", dap_server_core_listen, METH_VARARGS, ""}, {NULL, NULL, 0, NULL} }; diff --git a/src/libdap-server-core-python.c b/src/libdap-server-core-python.c index 431db0e3..4eb618a5 100644 --- a/src/libdap-server-core-python.c +++ b/src/libdap-server-core-python.c @@ -2,9 +2,41 @@ static PyObject *dap_server_core_init(PyObject *self, PyObject *args){ - return PyLong_FromLong(0); + uint32_t l_thread_cnt; + size_t conn_t; + if (!PyArg_ParseTuple(args, "I|n", &l_thread_cnt, &conn_t)){ + return NULL; + } + int32_t result = dap_server_init(l_thread_cnt); + if ( result != 0 ) { + log_it( L_CRITICAL, "Can't init socket server module" ); + } + dap_events_init(l_thread_cnt, conn_t); + dap_client_remote_init(); + return PyLong_FromLong(result); } static PyObject *dap_server_core_deinit(){ + dap_client_remote_deinit(); + dap_server_deinit(); + dap_events_deinit(); + return PyLong_FromLong(0); +} + +static PyObject *dap_server_core_loop(PyObject *self, PyObject *args){ + int32_t result = dap_server_loop(t_server); + return PyLong_FromLong(result); +} + +static PyObject *dap_server_core_listen(PyObject *self, PyObject *args){ + const char *addr; + uint16_t port; + uint16_t type; + if (!PyArg_ParseTuple(args, "s|H|H", &addr, &port, &type)){ + return NULL; + } + if (type > 1) + return NULL; + t_server = dap_server_listen(addr, port, type); return PyLong_FromLong(0); } -- GitLab