doap: Add XEP-0288
[prosody.git] / util-src / time.c
blobbc6b5b1cea5e4bac004435605bbc8a29efafc338
1 #ifndef _POSIX_C_SOURCE
2 #define _POSIX_C_SOURCE 200809L
3 #endif
5 #include <time.h>
6 #include <lua.h>
8 lua_Number tv2number(struct timespec *tv) {
9 return tv->tv_sec + tv->tv_nsec * 1e-9;
12 int lc_time_realtime(lua_State *L) {
13 struct timespec t;
14 clock_gettime(CLOCK_REALTIME, &t);
15 lua_pushnumber(L, tv2number(&t));
16 return 1;
19 int lc_time_monotonic(lua_State *L) {
20 struct timespec t;
21 clock_gettime(CLOCK_MONOTONIC, &t);
22 lua_pushnumber(L, tv2number(&t));
23 return 1;
26 int luaopen_util_time(lua_State *L) {
27 lua_createtable(L, 0, 2);
29 lua_pushcfunction(L, lc_time_realtime);
30 lua_setfield(L, -2, "now");
31 lua_pushcfunction(L, lc_time_monotonic);
32 lua_setfield(L, -2, "monotonic");
34 return 1;