Skip to content

Commit

Permalink
Add loadavg to Python bindings.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Sully authored and dougm committed Apr 8, 2011
1 parent 436ceb3 commit e0c289a
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions bindings/python/_sigar.c
Expand Up @@ -131,6 +131,22 @@ static PyObject *pysigar_new_strlist(char **data, unsigned long number)
return av;
}

static PyObject *pysigar_new_doublelist(double *data, unsigned long number)
{
unsigned long i;
PyObject *av;

if (!(av = PyTuple_New(number))) {
return NULL;
}

for (i=0; i<number; i++) {
PyTuple_SET_ITEM(av, i, PyFloat_FromDouble(data[i]));
}

return av;
}

static PyObject *pysigar_new_list(char *data, unsigned long number,
int size, PyTypeObject *type)
{
Expand Down Expand Up @@ -214,6 +230,21 @@ static PyObject *pysigar_arp_list(PyObject *self, PyObject *args)
return RETVAL;
}

static PyObject *pysigar_loadavg(PyObject *self, PyObject *args)
{
int status;
sigar_t *sigar = PySIGAR;
sigar_loadavg_t loadavg;

status = sigar_loadavg_get(sigar, &loadavg);
if (status != SIGAR_OK) {
PySigar_Croak();
return NULL;
}

return pysigar_new_doublelist(loadavg.loadavg, 3);
}

static PyObject *pysigar_format_size(PyObject *self, PyObject *args)
{
char buffer[56];
Expand All @@ -232,6 +263,7 @@ static PyMethodDef pysigar_methods[] = {
{ "net_interface_list", pysigar_net_interface_list, METH_NOARGS, NULL },
{ "file_system_list", pysigar_file_system_list, METH_NOARGS, NULL },
{ "arp_list", pysigar_arp_list, METH_NOARGS, NULL },
{ "loadavg", pysigar_loadavg, METH_NOARGS, NULL },
PY_SIGAR_METHODS
{NULL}
};
Expand Down

0 comments on commit e0c289a

Please sign in to comment.