summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2012-02-08 13:31:50 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2012-02-08 13:31:50 (GMT)
commitccd5715a149388eec2f40e5efacac83d3fe357ca (patch)
tree69b6582c3ed63f6527e56ebdc996c99dccbba910 /Include
parent6f91ce74a04e958b2e5b1d1904110739eea66841 (diff)
downloadcpython-ccd5715a149388eec2f40e5efacac83d3fe357ca.zip
cpython-ccd5715a149388eec2f40e5efacac83d3fe357ca.tar.gz
cpython-ccd5715a149388eec2f40e5efacac83d3fe357ca.tar.bz2
PEP 410
Diffstat (limited to 'Include')
-rw-r--r--Include/pytime.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/Include/pytime.h b/Include/pytime.h
index d707bdb..6d438f3 100644
--- a/Include/pytime.h
+++ b/Include/pytime.h
@@ -2,7 +2,8 @@
#ifndef Py_PYTIME_H
#define Py_PYTIME_H
-#include "pyconfig.h" /* include for defines */
+#include "pyport.h"
+#include "object.h"
/**************************************************************************
Symbols and macros to supply platform-independent interfaces to time related
@@ -37,6 +38,31 @@ do { \
((tv_end.tv_sec - tv_start.tv_sec) + \
(tv_end.tv_usec - tv_start.tv_usec) * 0.000001)
+#if defined(HAVE_LONG_LONG)
+typedef unsigned PY_LONG_LONG _PyTime_fraction_t;
+#else
+typedef size_t _PyTime_fraction_t;
+#endif
+
+typedef struct
+{
+ /* timestamp = seconds + numerator / denominator */
+ time_t seconds;
+ _PyTime_fraction_t numerator;
+ /* denominator cannot be zero */
+ _PyTime_fraction_t denominator;
+ /* the timestamp resolution is 1/divisor */
+} _PyTime_t;
+
+/* Similar to POSIX gettimeofday. If system gettimeofday
+ fails or is not available, fall back to lower resolution clocks. */
+PyAPI_FUNC(void) _PyTime_get(_PyTime_t *tp);
+
+/* Convert a timestamp structure to the specified timestamp type.
+
+ Raise a ValueError if the timestamp type is unknown. */
+PyAPI_FUNC(PyObject*) _PyTime_Convert(_PyTime_t *ts, PyObject *timestamp);
+
/* Dummy to force linking. */
PyAPI_FUNC(void) _PyTime_Init(void);