blob: 6e7ab638c74cb00f156963d45d98cc91c26f3a69 [file] [log] [blame]
Igor Sysoevd90282d2004-09-28 08:34:51 +00001
2/*
Igor Sysoevff8da912004-09-29 16:00:49 +00003 * Copyright (C) Igor Sysoev
Igor Sysoevd90282d2004-09-28 08:34:51 +00004 */
5
6
Igor Sysoevd59a0472003-11-10 21:09:22 +00007#ifndef _NGX_TIMES_H_INCLUDED_
8#define _NGX_TIMES_H_INCLUDED_
9
10
11#include <ngx_config.h>
12#include <ngx_core.h>
13
14
Igor Sysoevc2068d02005-10-19 12:33:58 +000015typedef struct {
16 time_t sec;
17 ngx_uint_t msec;
18 ngx_int_t gmtoff;
19} ngx_time_t;
20
21
Igor Sysoev8184d1b2005-03-04 14:06:57 +000022void ngx_time_init(void);
Igor Sysoevc2068d02005-10-19 12:33:58 +000023void ngx_time_update(time_t sec, ngx_uint_t msec);
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000024u_char *ngx_http_time(u_char *buf, time_t t);
25u_char *ngx_http_cookie_time(u_char *buf, time_t t);
Igor Sysoev562e53e2003-11-13 06:14:05 +000026void ngx_gmtime(time_t t, ngx_tm_t *tp);
Igor Sysoevd59a0472003-11-10 21:09:22 +000027
Igor Sysoev1b138ed2003-11-18 21:34:08 +000028
Igor Sysoevc2068d02005-10-19 12:33:58 +000029extern volatile ngx_time_t *ngx_cached_time;
Igor Sysoevd59a0472003-11-10 21:09:22 +000030
Igor Sysoevc2068d02005-10-19 12:33:58 +000031#define ngx_time() ngx_cached_time->sec
32#define ngx_timeofday() (ngx_time_t *) ngx_cached_time
Igor Sysoevc0247302004-06-27 18:01:57 +000033
Igor Sysoevc2068d02005-10-19 12:33:58 +000034extern volatile ngx_str_t ngx_cached_err_log_time;
35extern volatile ngx_str_t ngx_cached_http_time;
36extern volatile ngx_str_t ngx_cached_http_log_time;
Igor Sysoev10318a22004-01-29 21:45:01 +000037
38/*
Igor Sysoev208eed22005-10-07 13:30:52 +000039 * milliseconds elapsed since epoch and truncated to ngx_msec_t,
40 * used in event timers
Igor Sysoev10318a22004-01-29 21:45:01 +000041 */
Igor Sysoevc2068d02005-10-19 12:33:58 +000042extern volatile ngx_msec_t ngx_current_msec;
Igor Sysoev10318a22004-01-29 21:45:01 +000043
Igor Sysoevd59a0472003-11-10 21:09:22 +000044
45#endif /* _NGX_TIMES_H_INCLUDED_ */