diff --git a/include/dap_events_python.h b/include/dap_events_python.h index 7f652fcc26dd894e78ee945ffc0faa56653cc327..bf6cb15493d542813c4ee5e26ae4eb2fe68ffbbc 100644 --- a/include/dap_events_python.h +++ b/include/dap_events_python.h @@ -38,7 +38,7 @@ static PyMethodDef PyDapEventsObject_methods[] = { static PyTypeObject dapEvents_dapEventsType = { PyVarObject_HEAD_INIT(NULL, 0) - "libDapServerCore.DapEvents", /* tp_name */ + "libCellFrame.ServerCore.DapEvents", /* tp_name */ sizeof(PyDapEventsObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)PyDapEventsObject_dealloc,//(destructor)Noddy_dealloc, /* tp_dealloc */ diff --git a/include/dap_events_socket_python.h b/include/dap_events_socket_python.h index 9795e7e3ecfc91ada1213b1004df6cd09ca9574d..719ee422c25ae0b0f47e9cfb380545fbe0d6d08a 100644 --- a/include/dap_events_socket_python.h +++ b/include/dap_events_socket_python.h @@ -51,7 +51,7 @@ static PyMethodDef PyDapEventsObjectSocket_methods[] = { static PyTypeObject dapEventsSocket_dapEventsSocketType = { PyVarObject_HEAD_INIT(NULL, 0) - "libDapServerCore.DapEventsSocket", /* tp_name */ + "libCellFrame.ServerCore.DapEventsSocket", /* tp_name */ sizeof(PyDapEventsSocketObject), /* tp_basicsize */ 0, /* tp_itemsize */ 0,//(destructor)Noddy_dealloc, /* tp_dealloc */ diff --git a/include/libdap-server-core-python.h b/include/libdap-server-core-python.h index 047549eaf13d1d165ae58b497a8b6c7eedaf4b64..fc69007e2ff4d87aae74fc024c5b60a5680d5258 100644 --- a/include/libdap-server-core-python.h +++ b/include/libdap-server-core-python.h @@ -1,5 +1,6 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" +#include "dap_server_python.h" #include "dap_server.h" #include "dap_client_remote.h" #include "dap_events.h" @@ -11,61 +12,80 @@ extern "C" { #endif -typedef struct PyDapServer { +#undef LOG_TAG +#define LOG_TAG "libdap-server-core-python" + +typedef struct SeverCore{ PyObject_HEAD - dap_server_t *t_server; -}PyDapServerObject; +}PyServerCoreObject; + +int dap_server_core_init(uint32_t l_thread_cnt, size_t conn_t); +void dap_server_core_deinit(void); +//static PyObject *dap_server_core_init(PyObject *self, PyObject *args); +//static PyObject *dap_server_core_deinit(); + +PyObject *dap_server_core_loop(PyObject *self, PyObject *args); +PyObject *dap_server_core_listen(PyObject *self, PyObject *args); + +static PyMethodDef ServerCorePythonMethods[] = { + {"loop", dap_server_core_loop, METH_VARARGS | METH_STATIC, ""}, + {"listen", dap_server_core_listen, METH_VARARGS | METH_STATIC, ""}, + {NULL, NULL, 0, NULL} +}; + -PyTypeObject dapServer_dapServerType = { +static PyTypeObject ServerCore_ServerCoreType = { PyVarObject_HEAD_INIT(NULL, 0) - "libDapServerCore.DapServer", /* tp_name */ - sizeof(PyDapServerObject), /* tp_basicsize */ + "libCellFrame.ServerCore", /* tp_name */ + sizeof(PyServerCoreObject), /* tp_basicsize */ 0, /* tp_itemsize */ - 0, /* tp_dealloc */ + 0,//(destructor)Noddy_dealloc, /* tp_dealloc */ 0, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ - 0, /* tp_compare */ + 0, /* tp_reserved */ 0, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ - 0, /* tp_hash */ + 0, /* tp_hash */ 0, /* tp_call */ 0, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT, /* tp_flags */ - "DapServer objects", /* tp_doc */ + Py_TPFLAGS_DEFAULT | + Py_TPFLAGS_BASETYPE, /* tp_flags */ + "ServerCore objects", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + ServerCorePythonMethods, /* tp_methods */ + 0, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0,//(initproc)PyDapEventsObject_init,//(initproc)Noddy_init, /* tp_init */ + 0, /* tp_alloc */ + PyType_GenericNew,//PyDapEventsObject_new,//Noddy_new, /* tp_new */ }; -#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_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} -}; - -static struct PyModuleDef dapservercorepythonmodule = { - PyModuleDef_HEAD_INIT, - "libDapServerCore", /* name of module */ - NULL, /* module documentation, may be NULL */ - -1, /* size of per-interpreter state of the module, - or -1 if the module keeps state in global variables. */ - DapServerCorePythonMethods -}; +//static struct PyModuleDef dapservercorepythonmodule = { +// PyModuleDef_HEAD_INIT, +// "libDapServerCore", /* name of module */ +// NULL, /* module documentation, may be NULL */ +// -1, /* size of per-interpreter state of the module, +// or -1 if the module keeps state in global variables. */ +// DapServerCorePythonMethods +//}; -PyMODINIT_FUNC PyInit_libDapServerCore(void); +//PyMODINIT_FUNC PyInit_libDapServerCore(void); #ifdef __cplusplus diff --git a/src/libdap-server-core-python.c b/src/libdap-server-core-python.c index 64b5682897afb4bb6ad527adb902e4b083eff803..cebb5903ae800394bc3bc2a296fb80d339e5c9c4 100644 --- a/src/libdap-server-core-python.c +++ b/src/libdap-server-core-python.c @@ -1,33 +1,35 @@ #include "libdap-server-core-python.h" -static PyObject *dap_server_core_init(PyObject *self, PyObject *args){ - uint32_t l_thread_cnt; - size_t conn_t; - const char *app_name; - const char *app_log; - if (!PyArg_ParseTuple(args, "I|n|s|s", &l_thread_cnt, &conn_t, &app_name, &app_log)){ - return NULL; - } - int32_t result_common_init = dap_common_init(app_name, app_log); - if (result_common_init != 0) - return PyLong_FromLong(result_common_init); - int32_t result = dap_server_init(l_thread_cnt); +//static PyObject *dap_server_core_init(PyObject *self, PyObject *args){ +int dap_server_core_init(uint32_t l_thread_cnt, size_t conn_t){ +// uint32_t l_thread_cnt; +// size_t conn_t; +// const char *app_name; +// const char *app_log; +// if (!PyArg_ParseTuple(args, "I|n|s|s", &l_thread_cnt, &conn_t, &app_name, &app_log)){ +// return NULL; +// } +// int32_t result_common_init = dap_common_init(app_name, app_log); +// if (result_common_init != 0) +// return PyLong_FromLong(result_common_init); + int 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); +// return PyLong_FromLong(result); + return result; } -static PyObject *dap_server_core_deinit(){ + +void dap_server_core_deinit(void){ dap_client_remote_deinit(); dap_server_deinit(); dap_events_deinit(); - return PyLong_FromLong(0); } -static PyObject *dap_server_core_loop(PyObject *self, PyObject *args){ +PyObject *dap_server_core_loop(PyObject *self, PyObject *args){ PyObject *obj_server; if (!PyArg_ParseTuple(args, "O", &obj_server)){ return NULL; @@ -37,7 +39,7 @@ static PyObject *dap_server_core_loop(PyObject *self, PyObject *args){ return PyLong_FromLong(result); } -static PyObject *dap_server_core_listen(PyObject *self, PyObject *args){ +PyObject *dap_server_core_listen(PyObject *self, PyObject *args){ const char *addr; uint16_t port; uint16_t type; @@ -51,43 +53,43 @@ static PyObject *dap_server_core_listen(PyObject *self, PyObject *args){ return Py_BuildValue("O", obj); } -PyMODINIT_FUNC PyInit_libDapServerCore(void){ - dapServer_dapServerType.tp_new = PyType_GenericNew; - //dapEvents_dapEventsType.tp_new = PyType_GenericNew; - dapEventsSocket_dapEventsSocketType.tp_new = PyType_GenericNew; - if (PyType_Ready(&dapServer_dapServerType) < 0 || PyType_Ready(&dapEvents_dapEventsType) < 0 - || PyType_Ready(&dapEventsSocket_dapEventsSocketType) < 0) - return NULL; +//PyMODINIT_FUNC PyInit_libDapServerCore(void){ +// dapServer_dapServerType.tp_new = PyType_GenericNew; +// //dapEvents_dapEventsType.tp_new = PyType_GenericNew; +// dapEventsSocket_dapEventsSocketType.tp_new = PyType_GenericNew; +// if (PyType_Ready(&dapServer_dapServerType) < 0 || PyType_Ready(&dapEvents_dapEventsType) < 0 +// || PyType_Ready(&dapEventsSocket_dapEventsSocketType) < 0) +// return NULL; - PyObject *module = PyModule_Create(&dapservercorepythonmodule); +// PyObject *module = PyModule_Create(&dapservercorepythonmodule); - PyModule_AddObject(module, "DapEvents", (PyObject*)&dapEvents_dapEventsType); - PyModule_AddObject(module, "DapEventsSocket", (PyObject*)&dapEventsSocket_dapEventsSocketType); +// PyModule_AddObject(module, "DapEvents", (PyObject*)&dapEvents_dapEventsType); +// PyModule_AddObject(module, "DapEventsSocket", (PyObject*)&dapEventsSocket_dapEventsSocketType); - return module; -} +// return module; +//} -int main(int argc, char **argv) { - wchar_t *program = Py_DecodeLocale(argv[0], NULL); - if (program == NULL) { - fprintf(stderr, "Fatal error: cannot decode argv[0]\n"); - exit(1); - } +//int main(int argc, char **argv) { +// wchar_t *program = Py_DecodeLocale(argv[0], NULL); +// if (program == NULL) { +// fprintf(stderr, "Fatal error: cannot decode argv[0]\n"); +// exit(1); +// } - /* Add a built-in module, before Py_Initialize */ - PyImport_AppendInittab("libDapServerCore", PyInit_libDapServerCore); +// /* Add a built-in module, before Py_Initialize */ +// PyImport_AppendInittab("libDapServerCore", PyInit_libDapServerCore); - /* Pass argv[0] to the Python interpreter */ - Py_SetProgramName(program); +// /* Pass argv[0] to the Python interpreter */ +// Py_SetProgramName(program); - /* Initialize the Python interpreter. Required. */ - Py_Initialize(); +// /* Initialize the Python interpreter. Required. */ +// Py_Initialize(); - /* Optionally import the module; alternatively, - import can be deferred until the embedded script - imports it. */ - PyImport_ImportModule("libDapServerCore"); +// /* Optionally import the module; alternatively, +// import can be deferred until the embedded script +// imports it. */ +// PyImport_ImportModule("libDapServerCore"); - PyMem_RawFree(program); - return 0; -} +// PyMem_RawFree(program); +// return 0; +//}