From 5c3c7c41284ed9645e0fa99927088aa1e0af3e5b Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Wed, 6 Nov 2019 16:56:59 +0700 Subject: [PATCH] [+] Added wrapping dap_chain_net. Added wrapping for functions: dap_chain_net_load_all, dap_chain_net_go_to, dap_chain_net_start, dap_chain_net_stop. --- include/libdap_chain_net_python.h | 83 +++++++++++++++++++++++++++++++ src/libdap_chain_net_python.c | 76 ++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) diff --git a/include/libdap_chain_net_python.h b/include/libdap_chain_net_python.h index c5fd1031..7ba73125 100644 --- a/include/libdap_chain_net_python.h +++ b/include/libdap_chain_net_python.h @@ -1,6 +1,7 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" #include "dap_chain_net.h" +#include "wrapping_dap_chain_net_state.h" #ifdef __cplusplus extern "C"{ @@ -8,11 +9,93 @@ extern "C"{ typedef struct PyDapChainNet{ PyObject_HEAD + dap_chain_net_t *chain_net; }PyDapChainNetObject; int dap_chain_net_init_py(void); void dap_chain_net_deinit_py(void); +PyObject *dap_chain_net_load_all_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_state_go_to_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_start_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_stop_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_links_establish_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_sync_chains_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_sync_gdb_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_sync_all_py(PyObject *self, PyObject *args); + +PyObject *dap_chain_net_proc_datapool_py(PyObject *self, PyObject *args); + +PyObject *dap_chain_net_by_name_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_by_id_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_id_by_name_py(PyObject *self, PyObject *args); +PyObject *dap_chain_ledger_by_net_name_py(PyObject *self, PyObject *args); + +PyObject *dap_chain_net_get_chain_by_name_py(PyObject *self, PyObject *args); + +PyObject *dap_chain_net_get_cur_addr_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_get_cur_cell_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_get_cur_addr_int_py(PyObject *self, PyObject *args); + +PyObject *dap_chain_net_get_gdb_group_mempool_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_get_gdb_group_mempool_by_chain_type_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_links_connect_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_get_chain_by_chain_type_py(PyObject *self, PyObject *args); + +static PyMethodDef DapChainNetMethods[] = { + {"loadAll", dap_chain_net_load_all_py, METH_NOARGS | METH_STATIC, ""}, + {"stateGoTo", dap_chain_net_state_go_to_py, METH_VARARGS, ""}, + {"start", dap_chain_net_start_py, METH_VARARGS, ""}, + {"stop", dap_chain_net_stop_py, METH_VARARGS, ""}, + /*{"csAdd", (PyCFunction)dap_chain_cs_add_py, METH_VARARGS, ""}, + {"csCreate", (PyCFunction)dap_chain_cs_create_py, METH_VARARGS, ""}, + {"classAdd", (PyCFunction)dap_chain_class_add_py, METH_VARARGS, ""}, + {"classCreate", (PyCFunction)dap_chain_class_create_py, METH_VARARGS, ""},*/ + {NULL, NULL, 0, NULL} +}; + +static PyTypeObject DapChainNetObject_DapChainNetObjectType = { + PyVarObject_HEAD_INIT(NULL, 0) + "CellFrame.ChainNet", /* tp_name */ + sizeof(PyDapChainNetObject), /* 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 */ + "Chain net object", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + DapChainNetMethods, /* 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_chain_net_python.c b/src/libdap_chain_net_python.c index 8889084d..88e4954d 100644 --- a/src/libdap_chain_net_python.c +++ b/src/libdap_chain_net_python.c @@ -7,3 +7,79 @@ int dap_chain_net_init_py(void){ void dap_chain_net_deinit_py(void){ dap_chain_net_deinit(); } + +PyObject *dap_chain_net_load_all_py(PyObject *self, PyObject *args){ + dap_chain_net_load_all(); + return PyLong_FromLong(0); +} +PyObject *dap_chain_net_state_go_to_py(PyObject *self, PyObject *args){ + PyObject *obj_net_state; + if (!PyArg_ParseTuple(args, "O", &obj_net_state)) + return NULL; + int res = dap_chain_net_state_go_to(((PyDapChainNetObject*)self)->chain_net, ((PyDapChainNetStateObject*)obj_net_state)->state); + return PyLong_FromLong(res); +} +PyObject *dap_chain_net_start_py(PyObject *self, PyObject *args){ + int res = dap_chain_net_start(((PyDapChainNetObject*)self)->chain_net); + return PyLong_FromLong(res); +} +PyObject *dap_chain_net_stop_py(PyObject *self, PyObject *args){ + int res = dap_chain_net_stop(((PyDapChainNetObject*)self)->chain_net); + return PyLong_FromLong(res); +} +PyObject *dap_chain_net_links_establish_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_sync_chains_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_sync_gdb_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_sync_all_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_chain_net_proc_datapool_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_chain_net_by_name_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_by_id_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_id_by_name_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_ledger_by_net_name_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_chain_net_get_chain_by_name_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_chain_net_get_cur_addr_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_get_cur_cell_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_get_cur_addr_int_py(PyObject *self, PyObject *args){ + return NULL; +} + +PyObject *dap_chain_net_get_gdb_group_mempool_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_get_gdb_group_mempool_by_chain_type_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_links_connect_py(PyObject *self, PyObject *args){ + return NULL; +} +PyObject *dap_chain_net_get_chain_by_chain_type_py(PyObject *self, PyObject *args){ + return NULL; +} -- GitLab