blob: a07ecef98dddf9fb15e1f2d593cb6176a9057fb6 [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 *
Guido van Rossum116857c1994-01-02 23:22:21 +000011start_timing(self, args)
Barry Warsaw58d40a71997-01-13 22:57:42 +000012 PyObject *self;
13 PyObject *args;
Guido van Rossum116857c1994-01-02 23:22:21 +000014{
Barry Warsaw58d40a71997-01-13 22:57:42 +000015 if (!PyArg_Parse(args, ""))
16 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000017
Barry Warsaw58d40a71997-01-13 22:57:42 +000018 Py_INCREF(Py_None);
19 BEGINTIMING;
20 return Py_None;
Guido van Rossum116857c1994-01-02 23:22:21 +000021}
22
Barry Warsaw58d40a71997-01-13 22:57:42 +000023static PyObject *
Guido van Rossum116857c1994-01-02 23:22:21 +000024finish_timing(self, args)
Barry Warsaw58d40a71997-01-13 22:57:42 +000025 PyObject *self;
26 PyObject *args;
Guido van Rossum116857c1994-01-02 23:22:21 +000027{
Barry Warsaw58d40a71997-01-13 22:57:42 +000028 if (!PyArg_Parse(args, ""))
29 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000030
Barry Warsaw58d40a71997-01-13 22:57:42 +000031 ENDTIMING
32 Py_INCREF(Py_None);
33 return Py_None;
Guido van Rossum116857c1994-01-02 23:22:21 +000034}
35
Barry Warsaw58d40a71997-01-13 22:57:42 +000036static PyObject *
Guido van Rossum116857c1994-01-02 23:22:21 +000037seconds(self, args)
Barry Warsaw58d40a71997-01-13 22:57:42 +000038 PyObject *self;
39 PyObject *args;
Guido van Rossum116857c1994-01-02 23:22:21 +000040{
Barry Warsaw58d40a71997-01-13 22:57:42 +000041 if (!PyArg_Parse(args, ""))
42 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000043
Barry Warsaw58d40a71997-01-13 22:57:42 +000044 return PyInt_FromLong(TIMINGS);
Guido van Rossum116857c1994-01-02 23:22:21 +000045
46}
47
Barry Warsaw58d40a71997-01-13 22:57:42 +000048static PyObject *
Guido van Rossum116857c1994-01-02 23:22:21 +000049milli(self, args)
Barry Warsaw58d40a71997-01-13 22:57:42 +000050 PyObject *self;
51 PyObject *args;
Guido van Rossum116857c1994-01-02 23:22:21 +000052{
Barry Warsaw58d40a71997-01-13 22:57:42 +000053 if (!PyArg_Parse(args, ""))
54 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000055
Barry Warsaw58d40a71997-01-13 22:57:42 +000056 return PyInt_FromLong(TIMINGMS);
Guido van Rossum116857c1994-01-02 23:22:21 +000057
58}
Barry Warsaw58d40a71997-01-13 22:57:42 +000059static PyObject *
Guido van Rossum116857c1994-01-02 23:22:21 +000060micro(self, args)
Barry Warsaw58d40a71997-01-13 22:57:42 +000061 PyObject *self;
62 PyObject *args;
Guido van Rossum116857c1994-01-02 23:22:21 +000063{
Barry Warsaw58d40a71997-01-13 22:57:42 +000064 if (!PyArg_Parse(args, ""))
65 return NULL;
Guido van Rossum116857c1994-01-02 23:22:21 +000066
Barry Warsaw58d40a71997-01-13 22:57:42 +000067 return PyInt_FromLong(TIMINGUS);
Guido van Rossum116857c1994-01-02 23:22:21 +000068
69}
70
71
Barry Warsaw58d40a71997-01-13 22:57:42 +000072static PyMethodDef timing_methods[] = {
73 {"start", start_timing},
74 {"finish", finish_timing},
75 {"seconds", seconds},
76 {"milli", milli},
77 {"micro", micro},
78 {NULL, NULL}
Guido van Rossum116857c1994-01-02 23:22:21 +000079};
80
81
82void inittiming()
83{
Barry Warsaw58d40a71997-01-13 22:57:42 +000084 (void)Py_InitModule("timing", timing_methods);
85 if (PyErr_Occurred())
86 Py_FatalError("can't initialize module timing");
Guido van Rossum116857c1994-01-02 23:22:21 +000087}