| James Hawkins | e78ea77 | 2017-03-24 11:43:02 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * Copyright (C) 2017 The Android Open Source Project | 
|  | 3 | * | 
|  | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | 5 | * you may not use this file except in compliance with the License. | 
|  | 6 | * You may obtain a copy of the License at | 
|  | 7 | * | 
|  | 8 | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 9 | * | 
|  | 10 | * Unless required by applicable law or agreed to in writing, software | 
|  | 11 | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | 13 | * See the License for the specific language governing permissions and | 
|  | 14 | * limitations under the License. | 
|  | 15 | */ | 
|  | 16 |  | 
|  | 17 | #include "android-base/chrono_utils.h" | 
|  | 18 |  | 
|  | 19 | #include <time.h> | 
|  | 20 |  | 
|  | 21 | namespace android { | 
|  | 22 | namespace base { | 
|  | 23 |  | 
|  | 24 | boot_clock::time_point boot_clock::now() { | 
| Josh Gao | 0b35b18 | 2017-05-01 21:56:28 +0000 | [diff] [blame] | 25 | #ifdef __ANDROID__ | 
| James Hawkins | e78ea77 | 2017-03-24 11:43:02 -0700 | [diff] [blame] | 26 | timespec ts; | 
|  | 27 | clock_gettime(CLOCK_BOOTTIME, &ts); | 
|  | 28 | return boot_clock::time_point(std::chrono::seconds(ts.tv_sec) + | 
|  | 29 | std::chrono::nanoseconds(ts.tv_nsec)); | 
| Josh Gao | 0b35b18 | 2017-05-01 21:56:28 +0000 | [diff] [blame] | 30 | #else | 
|  | 31 | // Darwin does not support clock_gettime. | 
|  | 32 | return boot_clock::time_point(); | 
|  | 33 | #endif  // __ANDROID__ | 
| James Hawkins | e78ea77 | 2017-03-24 11:43:02 -0700 | [diff] [blame] | 34 | } | 
| James Hawkins | e78ea77 | 2017-03-24 11:43:02 -0700 | [diff] [blame] | 35 |  | 
| Tom Cherry | ede0d53 | 2017-07-06 14:20:11 -0700 | [diff] [blame] | 36 | std::ostream& operator<<(std::ostream& os, const Timer& t) { | 
|  | 37 | os << t.duration().count() << "ms"; | 
|  | 38 | return os; | 
|  | 39 | } | 
|  | 40 |  | 
| James Hawkins | e78ea77 | 2017-03-24 11:43:02 -0700 | [diff] [blame] | 41 | }  // namespace base | 
|  | 42 | }  // namespace android |