Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(496)

Side by Side Diff: base/time.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/thread_pool_unittest.cc ('k') | base/time.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2004-2009 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 // ========================================================================
15 //
16 // Time functions
17
18 #ifndef OMAHA_BASE_TIME_H_
19 #define OMAHA_BASE_TIME_H_
20
21 #include <windows.h>
22 #include <atlstr.h>
23 #include "base/basictypes.h"
24
25 namespace omaha {
26
27 #define kMicrosecsTo100ns (10ULL)
28 #define kMillisecsTo100ns (10000ULL)
29 #define kSecsTo100ns (1000 * kMillisecsTo100ns)
30 #define kMinsTo100ns (60 * kSecsTo100ns)
31 #define kHoursTo100ns (60 * kMinsTo100ns)
32 #define kDaysTo100ns (24 * kHoursTo100ns)
33
34 // Jan 1 1980 was tuesday (day 2)
35 #define kStartSystemTime {1980, 1, 2, 1, 0, 0, 0, 0}
36
37 // this is Jan 1 1980 in time64
38 #define kStart100NsTime (119600064000000000uI64)
39 #define kTimeGranularity (kDaysTo100ns)
40
41 // 2^15-1 because we use signed delta times
42 #define kTime16Max ((1 << 15) - 1)
43
44 // Constant value used in conversion between FILETIME and time_t
45 // It is the time difference between January 1, 1601 and January 1, 1970
46 #define kTimeTConvValue (116444736000000000)
47
48 typedef uint16 time16;
49 typedef uint64 time64;
50
51 time64 ConvertTime16ToTime64(uint16 time16);
52 uint16 ConvertTime64ToTime16(time64 time);
53
54 #ifdef _DEBUG
55 void ComputeStartTime();
56 #endif
57
58 uint64 GetCurrent100NSTime();
59
60 uint64 GetCurrentMsTime();
61
62 // Note - these return 0 if we can't convert the time
63 time64 SystemTimeToTime64(const SYSTEMTIME *sys_time);
64
65 // Conversions to/from values compatible with
66 // EXE/DLL timestamps and the C time() function
67 // NOTE: behavior is independent of wMilliseconds value
68 int32 SystemTimeToInt32(const SYSTEMTIME *sys_time);
69 int32 Time64ToInt32(const time64 & time);
70 time64 Int32ToTime64(const int32 & time);
71 time64 TimeTToTime64(const time_t& old_value);
72
73 // Returns the system time in GMT
74 SYSTEMTIME Time64ToSystemTime(const time64 & time);
75
76 // Returns the system time in the computer's time zone
77 SYSTEMTIME Time64ToLocalTime(const time64 & time);
78
79 // Returns the UTC (system) time given the local time
80 SYSTEMTIME LocalTimeToSystemTime(const SYSTEMTIME *local_time);
81
82 // This returns a standard formatted string that represents
83 // the UTC time corresponding to 'ft'. This is suitable for use
84 // in e.g. HTTP headers.
85 //
86 // @note IMPORTANT! This does not return a localized string - it's
87 // always in English. The string returned is intended for use in
88 // machine-readable contexts, i.e. HTTP headers and thus should not
89 // be localized.
90 CString ConvertTimeToGMTString(const FILETIME *ft);
91
92 // Convert to and from FileTime
93 time64 FileTimeToTime64(const FILETIME & file_time);
94 void Time64ToFileTime(const time64 & time, FILETIME *ft);
95
96 void SetTimeOverride(const time64 & time_new);
97
98 // Convert from FILETIME to time_t
99 time_t FileTimeToTimeT(const FILETIME& file_time);
100
101 // Convert from time_t to FILETIME
102 void TimeTToFileTime(const time_t& time, FILETIME* file_time);
103
104 // Parses RFC 822 Date/Time format
105 // 5. DATE AND TIME SPECIFICATION
106 // 5.1. SYNTAX
107 //
108 // date-time = [ day "," ] date time ; dd mm yy
109 // ; hh:mm:ss zzz
110 // day = "Mon" / "Tue" / "Wed" / "Thu"
111 // / "Fri" / "Sat" / "Sun"
112 //
113 // date = 1*2DIGIT month 2DIGIT ; day month year
114 // ; e.g. 20 Jun 82
115 //
116 // month = "Jan" / "Feb" / "Mar" / "Apr"
117 // / "May" / "Jun" / "Jul" / "Aug"
118 // / "Sep" / "Oct" / "Nov" / "Dec"
119 //
120 // time = hour zone ; ANSI and Military
121 //
122 // hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT]
123 // ; 00:00:00 - 23:59:59
124 //
125 // zone = "UT" / "GMT" ; Universal Time
126 // ; North American : UT
127 // / "EST" / "EDT" ; Eastern: - 5/ - 4
128 // / "CST" / "CDT" ; Central: - 6/ - 5
129 // / "MST" / "MDT" ; Mountain: - 7/ - 6
130 // / "PST" / "PDT" ; Pacific: - 8/ - 7
131 // / 1ALPHA ; Military: Z = UT;
132 // ; A:-1; (J not used)
133 // ; M:-12; N:+1; Y:+12
134 // / ( ("+" / "-") 4DIGIT ) ; Local differential
135 // ; hours+min. (HHMM)
136 // return local time if ret_local_time == true,
137 // return time is GMT / UTC time otherwise
138 bool RFC822DateToSystemTime(const TCHAR* str_RFC822_date,
139 SYSTEMTIME* psys_time,
140 bool ret_local_time);
141
142 // TODO(omaha): overlap in functionality with FileTimeToTime64. Consider
143 // removing this one.
144 inline int64 FileTimeToInt64(const FILETIME& filetime) {
145 LARGE_INTEGER large_int = {filetime.dwLowDateTime, filetime.dwHighDateTime};
146 return large_int.QuadPart;
147 }
148
149 } // namespace omaha
150
151 #endif // OMAHA_BASE_TIME_H_
OLDNEW
« no previous file with comments | « base/thread_pool_unittest.cc ('k') | base/time.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698