#define PY_SSIZE_T_CLEAN #include #include static PyObject * hwd_stop_server(PyObject * self, PyObject * args) { hwd::stop_server(); Py_RETURN_NONE; } static PyObject * hwd_get_value(PyObject * self, PyObject * args) { const int value = hwd::get_value(); return PyLong_FromLong(value); } static PyObject * hwd_set_value(PyObject * self, PyObject * args) { int value = 0; if (!PyArg_ParseTuple(args, "i", &value)) return NULL; hwd::set_value(value); Py_RETURN_NONE; } static PyMethodDef HwdMethods[] = { {"stop_server", hwd_stop_server, METH_VARARGS, "Shutdown daemon instance"}, {"get_value", hwd_get_value, METH_VARARGS, "Gets value from the daemon instance"}, {"set_value", hwd_set_value, METH_VARARGS, "Sets integer value in the daemon instance"}, {NULL, NULL, 0, NULL} }; static struct PyModuleDef hwdmodule = { PyModuleDef_HEAD_INIT, "hwd", NULL, -1, HwdMethods }; PyMODINIT_FUNC PyInit_hwd(void) { return PyModule_Create(&hwdmodule); }