| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/time.h" | 5 #include "base/time.h" |
| 6 | 6 |
| 7 #include <CoreFoundation/CFDate.h> | 7 #include <CoreFoundation/CFDate.h> |
| 8 #include <CoreFoundation/CFTimeZone.h> | 8 #include <CoreFoundation/CFTimeZone.h> |
| 9 #include <mach/mach_time.h> | 9 #include <mach/mach_time.h> |
| 10 #include <sys/sysctl.h> | 10 #include <sys/sysctl.h> |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 const int64 Time::kWindowsEpochDeltaMicroseconds = | 92 const int64 Time::kWindowsEpochDeltaMicroseconds = |
| 93 kWindowsEpochDeltaSeconds * Time::kMicrosecondsPerSecond; | 93 kWindowsEpochDeltaSeconds * Time::kMicrosecondsPerSecond; |
| 94 | 94 |
| 95 // Some functions in time.cc use time_t directly, so we provide an offset | 95 // Some functions in time.cc use time_t directly, so we provide an offset |
| 96 // to convert from time_t (Unix epoch) and internal (Windows epoch). | 96 // to convert from time_t (Unix epoch) and internal (Windows epoch). |
| 97 // static | 97 // static |
| 98 const int64 Time::kTimeTToMicrosecondsOffset = kWindowsEpochDeltaMicroseconds; | 98 const int64 Time::kTimeTToMicrosecondsOffset = kWindowsEpochDeltaMicroseconds; |
| 99 | 99 |
| 100 // static | 100 // static |
| 101 Time Time::Now() { | 101 Time Time::Now() { |
| 102 if (TimeFactory::instance()) |
| 103 return TimeFactory::instance()->TimeNow(); |
| 102 return FromCFAbsoluteTime(CFAbsoluteTimeGetCurrent()); | 104 return FromCFAbsoluteTime(CFAbsoluteTimeGetCurrent()); |
| 103 } | 105 } |
| 104 | 106 |
| 105 // static | 107 // static |
| 106 Time Time::FromCFAbsoluteTime(CFAbsoluteTime t) { | 108 Time Time::FromCFAbsoluteTime(CFAbsoluteTime t) { |
| 107 if (t == 0) | 109 if (t == 0) |
| 108 return Time(); // Consider 0 as a null Time. | 110 return Time(); // Consider 0 as a null Time. |
| 109 if (t == std::numeric_limits<CFAbsoluteTime>::max()) | 111 if (t == std::numeric_limits<CFAbsoluteTime>::max()) |
| 110 return Max(); | 112 return Max(); |
| 111 return Time(static_cast<int64>( | 113 return Time(static_cast<int64>( |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 exploded->millisecond = | 178 exploded->millisecond = |
| 177 (microsecond >= 0) ? microsecond / kMicrosecondsPerMillisecond : | 179 (microsecond >= 0) ? microsecond / kMicrosecondsPerMillisecond : |
| 178 (microsecond - kMicrosecondsPerMillisecond + 1) / | 180 (microsecond - kMicrosecondsPerMillisecond + 1) / |
| 179 kMicrosecondsPerMillisecond; | 181 kMicrosecondsPerMillisecond; |
| 180 } | 182 } |
| 181 | 183 |
| 182 // TimeTicks ------------------------------------------------------------------ | 184 // TimeTicks ------------------------------------------------------------------ |
| 183 | 185 |
| 184 // static | 186 // static |
| 185 TimeTicks TimeTicks::Now() { | 187 TimeTicks TimeTicks::Now() { |
| 188 if (TimeFactory::instance()) |
| 189 return TimeFactory::instance()->TimeTicksNow(); |
| 186 return TimeTicks(ComputeCurrentTicks()); | 190 return TimeTicks(ComputeCurrentTicks()); |
| 187 } | 191 } |
| 188 | 192 |
| 189 // static | 193 // static |
| 190 TimeTicks TimeTicks::HighResNow() { | 194 TimeTicks TimeTicks::HighResNow() { |
| 191 return Now(); | 195 return Now(); |
| 192 } | 196 } |
| 193 | 197 |
| 194 // static | 198 // static |
| 195 TimeTicks TimeTicks::NowFromSystemTraceTime() { | 199 TimeTicks TimeTicks::NowFromSystemTraceTime() { |
| 196 return HighResNow(); | 200 return HighResNow(); |
| 197 } | 201 } |
| 198 | 202 |
| 199 } // namespace base | 203 } // namespace base |
| OLD | NEW |