blob: 184469679b8f743b90f794214be8ff49640d13ee [file] [log] [blame]
Guido van Rossum116857c1994-01-02 23:22:21 +00001/*
Guido van Rossum116857c1994-01-02 23:22:21 +00002 * Author: George V. Neville-Neil
Guido van Rossum116857c1994-01-02 23:22:21 +00003 */
4
Barry Warsaw58d40a71997-01-13 22:57:42 +00005#include "Python.h"
Guido van Rossum116857c1994-01-02 23:22:21 +00006
7/* Our stuff... */
8#include "timing.h"
9
Barry Warsaw58d40a71997-01-13 22:57:42 +000010static PyObject *
Peter Schneider-Kampe89b1562000-07-10 12:04:18 +000011start_timing(PyObject *self, PyObject *args)
Guido van Rossum116857c1994-01-02 23:22:21 +000012{
Barry Warsaw58d40a71997-01-13 22:57:42 +000013 if (!PyArg_Parse(args, ""))
14 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000015
Barry Warsaw58d40a71997-01-13 22:57:42 +000016 Py_INCREF(Py_None);
17 BEGINTIMING;
18 return Py_None;
Guido van Rossum116857c1994-01-02 23:22:21 +000019}
20
Barry Warsaw58d40a71997-01-13 22:57:42 +000021static PyObject *
Peter Schneider-Kampe89b1562000-07-10 12:04:18 +000022finish_timing(PyObject *self, PyObject *args)
Guido van Rossum116857c1994-01-02 23:22:21 +000023{
Barry Warsaw58d40a71997-01-13 22:57:42 +000024 if (!PyArg_Parse(args, ""))
25 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000026
Barry Warsaw58d40a71997-01-13 22:57:42 +000027 ENDTIMING
28 Py_INCREF(Py_None);
29 return Py_None;
Guido van Rossum116857c1994-01-02 23:22:21 +000030}
31
Barry Warsaw58d40a71997-01-13 22:57:42 +000032static PyObject *
Peter Schneider-Kampe89b1562000-07-10 12:04:18 +000033seconds(PyObject *self, PyObject *args)
Guido van Rossum116857c1994-01-02 23:22:21 +000034{
Barry Warsaw58d40a71997-01-13 22:57:42 +000035 if (!PyArg_Parse(args, ""))
36 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000037
Barry Warsaw58d40a71997-01-13 22:57:42 +000038 return PyInt_FromLong(TIMINGS);
Guido van Rossum116857c1994-01-02 23:22:21 +000039
40}
41
Barry Warsaw58d40a71997-01-13 22:57:42 +000042static PyObject *
Peter Schneider-Kampe89b1562000-07-10 12:04:18 +000043milli(PyObject *self, PyObject *args)
Guido van Rossum116857c1994-01-02 23:22:21 +000044{
Barry Warsaw58d40a71997-01-13 22:57:42 +000045 if (!PyArg_Parse(args, ""))
46 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000047
Barry Warsaw58d40a71997-01-13 22:57:42 +000048 return PyInt_FromLong(TIMINGMS);
Guido van Rossum116857c1994-01-02 23:22:21 +000049
50}
Barry Warsaw58d40a71997-01-13 22:57:42 +000051static PyObject *
Peter Schneider-Kampe89b1562000-07-10 12:04:18 +000052micro(PyObject *self, PyObject *args)
Guido van Rossum116857c1994-01-02 23:22:21 +000053{
Barry Warsaw58d40a71997-01-13 22:57:42 +000054 if (!PyArg_Parse(args, ""))
55 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000056
Barry Warsaw58d40a71997-01-13 22:57:42 +000057 return PyInt_FromLong(TIMINGUS);
Guido van Rossum116857c1994-01-02 23:22:21 +000058
59}
60
61
Barry Warsaw58d40a71997-01-13 22:57:42 +000062static PyMethodDef timing_methods[] = {
63 {"start", start_timing},
64 {"finish", finish_timing},
65 {"seconds", seconds},
66 {"milli", milli},
67 {"micro", micro},
68 {NULL, NULL}
Guido van Rossum116857c1994-01-02 23:22:21 +000069};
70
71
Thomas Woutersf3f33dc2000-07-21 06:00:07 +000072DL_EXPORT(void) inittiming(void)
Guido van Rossum116857c1994-01-02 23:22:21 +000073{
Barry Warsaw58d40a71997-01-13 22:57:42 +000074 (void)Py_InitModule("timing", timing_methods);
Guido van Rossum116857c1994-01-02 23:22:21 +000075}