upstream nginx-0.7.31
[nginx.git] / nginx / src / core / ngx_times.h
1
2 /*
3  * Copyright (C) Igor Sysoev
4  */
5
6
7 #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
15 typedef struct {
16     time_t      sec;
17     ngx_uint_t  msec;
18     ngx_int_t   gmtoff;
19 } ngx_time_t;
20
21
22 void ngx_time_init(void);
23 void ngx_time_update(time_t sec, ngx_uint_t msec);
24 u_char *ngx_http_time(u_char *buf, time_t t);
25 u_char *ngx_http_cookie_time(u_char *buf, time_t t);
26 void ngx_gmtime(time_t t, ngx_tm_t *tp);
27
28 time_t ngx_next_time(time_t when);
29 #define ngx_next_time_n      "mktime()"
30
31
32 extern volatile ngx_time_t  *ngx_cached_time;
33
34 #define ngx_time()           ngx_cached_time->sec
35 #define ngx_timeofday()      (ngx_time_t *) ngx_cached_time
36
37 extern volatile ngx_str_t    ngx_cached_err_log_time;
38 extern volatile ngx_str_t    ngx_cached_http_time;
39 extern volatile ngx_str_t    ngx_cached_http_log_time;
40
41 /*
42  * milliseconds elapsed since epoch and truncated to ngx_msec_t,
43  * used in event timers
44  */
45 extern volatile ngx_msec_t  ngx_current_msec;
46
47
48 #endif /* _NGX_TIMES_H_INCLUDED_ */