From 5f5474a29e2edb4f22fd5fa89a55a6b29f013fe1 Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Tue, 26 Nov 2019 17:27:24 +0700 Subject: [PATCH] [+] Added base for wrapping dap_client --- include/libdap_client_python.h | 98 ++++++++++++++++++++++++++++++++++ src/libdap_client_python.c | 80 +++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 include/libdap_client_python.h create mode 100644 src/libdap_client_python.c diff --git a/include/libdap_client_python.h b/include/libdap_client_python.h new file mode 100644 index 00000000..9a95fbf7 --- /dev/null +++ b/include/libdap_client_python.h @@ -0,0 +1,98 @@ +#define PY_SSIZE_T_CLEAN +#include <Python.h> +#include "dap_client.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct PyDapClient{ + PyObject_HEAD + dap_client_t *client; +}PyDapClientObject; + +int dap_client_init_py(); +void dap_client_deinit_py(); + +//PyObject *dap_client_new_py(PyObject *) +PyObject *dap_client_delete_py(PyObject *self, PyObject *args); + +PyObject *dao_client_set_uplink_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_uplink_addr_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_uplink_port_py(PyObject *self, PyObject *args); + +PyObject *dap_client_get_key_stream_py(PyObject *self, PyObject *args); +PyObject *dap_client_go_stage_py(PyObject *self, PyObject *args); +PyObject *dap_client_reset_py(PyObject *self, PyObject *args); +PyObject *dap_client_request_enc_py(PyObject *self, PyObject *args); +PyObject *dap_client_request_py(PyObject *self, PyObject *args); +PyObject *dap_client_disconnect_py(PyObject *self, PyObject *args); + +PyObject *dap_client_get_stage_str_py(PyObject *self, PyObject *args); +PyObject *dap_client_stage_str_py(PyObject *self, PyObject *args); + +PyObject *dap_client_get_stage_status_str_py(PyObject *self, PyObject *args); +PyObject *dap_client_stage_status_str_py(PyObject *self, PyObject *args); +PyObject *dap_client_error_str_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_error_str_py(PyObject *self, PyObject *args); + +PyObject *dap_client_get_auth_cookie_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_stream_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_stream_ch_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_stream_id_py(PyObject *self, PyObject *args); +PyObject *dap_client_set_active_channels_py(PyObject *self, PyObject *args); + +PyObject *dap_client_get_stage_py(PyObject *self, PyObject *args); +PyObject *dap_client_get_stage_status_py(PyObject *self, PyObject *args); + +static PyMethodDef DapClientMethods[] = { + {NULL, NULL, 0, NULL} +}; + +static PyTypeObject dapClientObject_dapClientType = { + PyVarObject_HEAD_INIT(NULL, 0) + "CellFrame.Client", /* tp_name */ + sizeof(PyDapClientObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + 0, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + 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 | + Py_TPFLAGS_BASETYPE, /* tp_flags */ + "Client objects", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + DapClientMethods, /* 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, /* tp_init */ + 0, /* tp_alloc */ + PyType_GenericNew, /* tp_new */ + +}; + +#ifdef __cplusplus +} +#endif + diff --git a/src/libdap_client_python.c b/src/libdap_client_python.c new file mode 100644 index 00000000..101eee85 --- /dev/null +++ b/src/libdap_client_python.c @@ -0,0 +1,80 @@ +#include "libdap_client_python.h" + +int dap_client_init_py(){ + return dap_client_init(); +} +void dap_client_deinit_py(){ + dap_client_deinit(); +} + +PyObject *dao_client_set_uplink_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_uplink_addr_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_uplink_port_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_client_get_key_stream_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_go_stage_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_reset_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_request_enc_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_request_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_disconnect_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_client_get_stage_str_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_stage_str_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_client_get_stage_status_str_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_stage_status_str_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_error_str_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_error_str_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_client_get_auth_cookie_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_stream_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_stream_ch_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_stream_id_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_set_active_channels_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_client_get_stage_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_client_get_stage_status_py(PyObject *self, PyObject *args){ + return NULL; +} \ No newline at end of file -- GitLab