| /* | 
 |  * Author: George V. Neville-Neil | 
 |  */ | 
 |  | 
 | #include "Python.h" | 
 |  | 
 | /* Our stuff... */ | 
 | #include "timing.h" | 
 |  | 
 | static PyObject * | 
 | start_timing(PyObject *self, PyObject *args) | 
 | { | 
 | 	if (!PyArg_Parse(args, "")) | 
 | 		return NULL; | 
 |  | 
 | 	Py_INCREF(Py_None); | 
 | 	BEGINTIMING; | 
 | 	return Py_None; | 
 | } | 
 |  | 
 | static PyObject * | 
 | finish_timing(PyObject *self, PyObject *args) | 
 | { | 
 | 	if (!PyArg_Parse(args, "")) | 
 | 		return NULL; | 
 |  | 
 | 	ENDTIMING     | 
 | 	Py_INCREF(Py_None); | 
 | 	return Py_None; | 
 | } | 
 |  | 
 | static PyObject * | 
 | seconds(PyObject *self, PyObject *args) | 
 | { | 
 | 	if (!PyArg_Parse(args, "")) | 
 | 		return NULL; | 
 |  | 
 | 	return PyInt_FromLong(TIMINGS); | 
 |  | 
 | } | 
 |  | 
 | static PyObject * | 
 | milli(PyObject *self, PyObject *args) | 
 | { | 
 | 	if (!PyArg_Parse(args, "")) | 
 | 		return NULL; | 
 |  | 
 | 	return PyInt_FromLong(TIMINGMS); | 
 |  | 
 | } | 
 | static PyObject * | 
 | micro(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} | 
 | }; | 
 |  | 
 |  | 
 | DL_EXPORT(void) inittiming(void) | 
 | { | 
 | 	(void)Py_InitModule("timing", timing_methods); | 
 | } |