Pyrogenesis  trunk
wtime.h
Go to the documentation of this file.
1 /* Copyright (c) 2010 Wildfire Games
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining
4  * a copy of this software and associated documentation files (the
5  * "Software"), to deal in the Software without restriction, including
6  * without limitation the rights to use, copy, modify, merge, publish,
7  * distribute, sublicense, and/or sell copies of the Software, and to
8  * permit persons to whom the Software is furnished to do so, subject to
9  * the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included
12  * in all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  */
22 
23 /*
24  * emulate POSIX high resolution timer on Windows.
25  */
26 
27 #ifndef INCLUDED_WTIME
28 #define INCLUDED_WTIME
29 
30 
31 //
32 // <sys/types.h>
33 //
34 
35 typedef unsigned long useconds_t;
36 typedef long suseconds_t;
37 
38 
39 //
40 // <unistd.h>
41 //
42 
43 LIB_API unsigned sleep(unsigned sec);
44 LIB_API int usleep(useconds_t us);
45 
46 
47 //
48 // <time.h>
49 //
50 
51 typedef enum
52 {
53  // in our implementation, these actually do the same thing
54  // (a timer that latches the system time at startup and uses the
55  // monotonic HRT to add elapsed time since then)
58 }
59 clockid_t;
60 
61 // POSIX realtime clock_*
62 struct timespec
63 {
64  time_t tv_sec;
65  long tv_nsec;
66 };
67 
68 extern int nanosleep(const struct timespec* rqtp, struct timespec* rmtp);
69 extern int clock_gettime(clockid_t clock, struct timespec* ts);
70 extern int clock_getres(clockid_t clock, struct timespec* res);
71 
72 LIB_API char* strptime(const char* buf, const char* format, struct tm* timeptr);
73 
74 #endif // #ifndef INCLUDED_WTIME
clockid_t
Definition: wtime.h:51
LIB_API char * strptime(const char *buf, const char *format, struct tm *timeptr)
Definition: wtime.cpp:377
Definition: wtime.h:57
long suseconds_t
Definition: wtime.h:36
LIB_API int usleep(useconds_t us)
Definition: wtime.cpp:164
time_t tv_sec
Definition: wtime.h:64
void format(BasicFormatter< Char > &f, const Char *format_str, const T &value)
Definition: format.h:1705
long tv_nsec
Definition: wtime.h:65
LIB_API unsigned sleep(unsigned sec)
Definition: wtime.cpp:151
unsigned long useconds_t
Definition: wtime.h:35
Definition: wtime.h:62
int clock_gettime(clockid_t clock, struct timespec *ts)
Definition: wtime.cpp:121
int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
Definition: wtime.cpp:142
int clock_getres(clockid_t clock, struct timespec *res)
Definition: wtime.cpp:131
Definition: wtime.h:56
static volatile TimerState *volatile ts
Definition: whrt.cpp:187