Skip to content
Snippets Groups Projects
Commit 26b47a3a authored by Alexey Stratulat's avatar Alexey Stratulat
Browse files

[+] Created dap_events wrapping. Added wrapping for functions:...

[+] Created  dap_events wrapping. Added wrapping for functions: dap_events_init, dap_events_deinit, dap_events_new, dap_events_delete, dap_events_start, dap_events_wait.
parent 690a81e5
No related branches found
No related tags found
1 merge request!1Features 2392
#include "Python.h"
#include "dap_events.h"
typedef struct PyDapEvents{
PyObject_HEAD
dap_events_t *t_events;
}PyDapEventsObject;
static PyTypeObject dapEvents_dapEventsType = {
PyVarObject_HEAD_INIT(NULL, 0)
"libDapServerCore.DapEvents", /* tp_name */
sizeof(PyDapEventsObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_compare */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT, /* tp_flags */
"DapEvents objects", /* tp_doc */
};
PyObject *dap_events_init_py(PyObject *self, PyObject *args); //uint32_t a_threads_count, size_t conn_t ); // Init server module
PyObject *dap_events_deinit_py(); // Deinit server module
PyObject *dap_events_new_py();
PyObject *dap_events_delete_py(PyObject *self, PyObject *args); //dap_events_t * sh );
//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); //dap_events_socket_t* a_es, bool preserve_inheritor );
PyObject *dap_events_kill_socket_py(PyObject *self, PyObject *args); //dap_events_socket_t *a_es );
PyObject *dap_events_start_py(PyObject *self, PyObject *args); //dap_events_t *sh );
PyObject *dap_events_wait_py(PyObject *self, PyObject *args); //dap_events_t *sh );
......@@ -4,6 +4,7 @@
#include "dap_client_remote.h"
#include "dap_events.h"
#include "dap_common.h"
#include "dap_events_python.h"
#ifdef __cplusplus
extern "C" {
......@@ -14,9 +15,9 @@ typedef struct PyDapServer {
dap_server_t *t_server;
}PyDapServerObject;
static PyTypeObject dapServer_dapServerType = {
PyTypeObject dapServer_dapServerType = {
PyVarObject_HEAD_INIT(NULL, 0)
"libdap_server_core_python_module.DapServer", /* tp_name */
"libDapServerCore.DapServer", /* tp_name */
sizeof(PyDapServerObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
......@@ -41,7 +42,7 @@ static PyTypeObject dapServer_dapServerType = {
#define LOG_TAG "libdap-server-core-python"
static PyObject *dap_server_core_init(PyObject *self, PyObject *args);
static PyObject *dap_server_core_deinit(void);
static PyObject *dap_server_core_deinit();
static PyObject *dap_server_core_loop(PyObject *self, PyObject *args);
static PyObject *dap_server_core_listen(PyObject *self, PyObject *args);
......@@ -51,6 +52,13 @@ static PyMethodDef DapServerCorePythonMethods[] = {
{"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, ""},
/* Wrapping Events */
{"eventsInit", dap_events_init_py, METH_VARARGS, ""},
{"eventsDeinit", dap_events_deinit_py, METH_NOARGS, ""},
{"eventsNew", dap_events_new_py, METH_NOARGS, ""},
{"eventsDellete", dap_events_delete_py, METH_VARARGS, ""},
{"eventsStart", dap_events_start_py, METH_VARARGS, ""},
{"eventsWait", dap_events_wait_py, METH_VARARGS, ""},
{NULL, NULL, 0, NULL}
};
......
#include "dap_events_python.h"
PyObject *dap_events_init_py(PyObject *self, PyObject *args){
uint32_t a_threads_count;
size_t conn_t;
if (!PyArg_ParseTuple(args, "I|n", &a_threads_count, &conn_t)){
return NULL;
}
int32_t result = dap_events_init(a_threads_count, conn_t);
return PyLong_FromLong(result);
}
PyObject *dap_events_deinit_py(void){
dap_events_deinit();
return PyLong_FromLong(0);
}
PyObject *dap_events_new_py(void){
PyObject *new_dap_events_obj = _PyObject_New(&dapEvents_dapEventsType);
((PyDapEventsObject*)new_dap_events_obj)->t_events = dap_events_new();
return Py_BuildValue("O", new_dap_events_obj);
}
PyObject *dap_events_delete_py(PyObject *self, PyObject *args){
PyObject *in_obj;
if (PyArg_ParseTuple(args, "O", &in_obj)){
return NULL;
}
dap_events_delete(((PyDapEventsObject*)in_obj)->t_events);
PyObject_Del(in_obj);
return PyLong_FromLong(0);
}
//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){
return PyLong_FromLong(0);
}
PyObject *dap_events_kill_socket_py(PyObject *self, PyObject *args){
return PyLong_FromLong(0);
}
PyObject *dap_events_start_py(PyObject *self, PyObject *args){
PyObject *in_object;
if (!PyArg_ParseTuple(args, "O", &in_object)){
return NULL;
}
int32_t result = dap_events_start(((PyDapEventsObject*)in_object)->t_events);
return PyLong_FromLong(result);
}
PyObject *dap_events_wait_py(PyObject *self, PyObject *args){
PyObject *in_object;
if (!PyArg_ParseTuple(args, "O", &in_object)){
return NULL;
}
int32_t result = dap_events_wait(((PyDapEventsObject*)in_object)->t_events);
return PyLong_FromLong(result);
}
......@@ -49,7 +49,8 @@ static PyObject *dap_server_core_listen(PyObject *self, PyObject *args){
PyMODINIT_FUNC PyInit_libDapServerCore(void){
dapServer_dapServerType.tp_new = PyType_GenericNew;
if (PyType_Ready(&dapServer_dapServerType) < 0)
dapEvents_dapEventsType.tp_new = PyType_GenericNew;
if (PyType_Ready(&dapServer_dapServerType) < 0 || PyType_Ready(&dapEvents_dapEventsType) < 0)
return NULL;
return PyModule_Create(&dapservercorepythonmodule);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment