Git init
[profile/ivi/libsoup2.4.git] / libsoup / soup-date.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2005 Novell, Inc.
4  * Copyright (C) 2007 Red Hat, Inc.
5  */
6
7 #ifndef SOUP_DATE_H
8 #define SOUP_DATE_H 1
9
10 #include <time.h>
11 #include <libsoup/soup-types.h>
12
13 G_BEGIN_DECLS
14
15 struct _SoupDate {
16         int      year;
17         int      month;
18         int      day;
19
20         int      hour;
21         int      minute;
22         int      second;
23
24         gboolean utc;
25         int      offset;
26 };
27
28 typedef enum {
29         SOUP_DATE_HTTP = 1,
30         SOUP_DATE_COOKIE,
31         SOUP_DATE_RFC2822,
32         SOUP_DATE_ISO8601_COMPACT,
33         SOUP_DATE_ISO8601_FULL,
34         SOUP_DATE_ISO8601 = SOUP_DATE_ISO8601_FULL,
35         SOUP_DATE_ISO8601_XMLRPC
36 } SoupDateFormat;
37
38 GType soup_date_get_type (void);
39 #define SOUP_TYPE_DATE (soup_date_get_type ())
40
41 SoupDate *soup_date_new             (int             year,
42                                      int             month,
43                                      int             day, 
44                                      int             hour,
45                                      int             minute,
46                                      int             second);
47 SoupDate *soup_date_new_from_string (const char     *date_string);
48 SoupDate *soup_date_new_from_time_t (time_t          when);
49 SoupDate *soup_date_new_from_now    (int             offset_seconds);
50
51 char     *soup_date_to_string       (SoupDate       *date,
52                                      SoupDateFormat  format);
53 time_t    soup_date_to_time_t       (SoupDate       *date);
54 void      soup_date_to_timeval      (SoupDate       *date,
55                                      GTimeVal       *time);
56
57 gboolean  soup_date_is_past         (SoupDate       *date);
58
59 int       soup_date_get_year        (SoupDate       *date);
60 int       soup_date_get_month       (SoupDate       *date);
61 int       soup_date_get_day         (SoupDate       *date);
62 int       soup_date_get_hour        (SoupDate       *date);
63 int       soup_date_get_minute      (SoupDate       *date);
64 int       soup_date_get_second      (SoupDate       *date);
65 int       soup_date_get_utc         (SoupDate       *date);
66 int       soup_date_get_offset      (SoupDate       *date);
67
68 SoupDate *soup_date_copy            (SoupDate       *date);
69 void      soup_date_free            (SoupDate       *date);
70
71 G_END_DECLS
72
73 #endif /* SOUP_DATE_H */