summaryrefslogtreecommitdiff
path: root/src/hwdmodule.cpp
blob: 3d21e0807f6288fa5c3667a424077aeef84ff9e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#define PY_SSIZE_T_CLEAN
#include <Python.h>

#include <hwd.h>


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);
}