| /* |
| * Author: George V. Neville-Neil |
| */ |
| |
| #include "Python.h" |
| |
| /* Our stuff... */ |
| #include "timing.h" |
| |
| static PyObject * |
| start_timing(self, args) |
| PyObject *self; |
| PyObject *args; |
| { |
| if (!PyArg_Parse(args, "")) |
| return NULL; |
| |
| Py_INCREF(Py_None); |
| BEGINTIMING; |
| return Py_None; |
| } |
| |
| static PyObject * |
| finish_timing(self, args) |
| PyObject *self; |
| PyObject *args; |
| { |
| if (!PyArg_Parse(args, "")) |
| return NULL; |
| |
| ENDTIMING |
| Py_INCREF(Py_None); |
| return Py_None; |
| } |
| |
| static PyObject * |
| seconds(self, args) |
| PyObject *self; |
| PyObject *args; |
| { |
| if (!PyArg_Parse(args, "")) |
| return NULL; |
| |
| return PyInt_FromLong(TIMINGS); |
| |
| } |
| |
| static PyObject * |
| milli(self, args) |
| PyObject *self; |
| PyObject *args; |
| { |
| if (!PyArg_Parse(args, "")) |
| return NULL; |
| |
| return PyInt_FromLong(TIMINGMS); |
| |
| } |
| static PyObject * |
| micro(self, args) |
| PyObject *self; |
| PyObject *args; |
| { |
| if (!PyArg_Parse(args, "")) |
| return NULL; |
| |
| return PyInt_FromLong(TIMINGUS); |
| |
| } |
| |
| |
| static PyMethodDef timing_methods[] = { |
| {"start", start_timing}, |
| {"finish", finish_timing}, |
| {"seconds", seconds}, |
| {"milli", milli}, |
| {"micro", micro}, |
| {NULL, NULL} |
| }; |
| |
| |
| void inittiming() |
| { |
| (void)Py_InitModule("timing", timing_methods); |
| if (PyErr_Occurred()) |
| Py_FatalError("can't initialize module timing"); |
| } |