roughtime.googlesource.com/roughtime.git@v0.0.0-20201210012726-dd529367052d/sys_time.h (about) 1 /* Copyright 2016 The Roughtime Authors. 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 #ifndef SECURITY_ROUGHTIME_SYS_TIME_H_ 16 #define SECURITY_ROUGHTIME_SYS_TIME_H_ 17 18 #include <stdint.h> 19 20 #include "time_source.h" 21 22 namespace roughtime { 23 24 // SystemTimeSource uses gettimeofday to provide the current time and has a 25 // fixed uncertainly of one second. Roughtime defines time to include smeared 26 // leap seconds but it's unlikely that the system clock respects that. Thus 27 // the radius is meant to reflect that and this time source is only provided as 28 // an example. 29 class SystemTimeSource : public TimeSource { 30 public: 31 SystemTimeSource(); 32 ~SystemTimeSource() override; 33 34 std::pair<uint64_t, uint32_t> Now() override; 35 }; 36 37 } // namespace roughtime 38 39 #endif // SECURITY_ROUGHTIME_SYS_TIME_H_