Home | History | Annotate | Download | only in common
      1 //
      2 // Copyright (C) 2013 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 #ifndef UPDATE_ENGINE_COMMON_FAKE_CLOCK_H_
     18 #define UPDATE_ENGINE_COMMON_FAKE_CLOCK_H_
     19 
     20 #include "update_engine/common/clock_interface.h"
     21 
     22 namespace chromeos_update_engine {
     23 
     24 // Implements a clock that can be made to tell any time you want.
     25 class FakeClock : public ClockInterface {
     26  public:
     27   FakeClock() {}
     28 
     29   base::Time GetWallclockTime() override {
     30     return wallclock_time_;
     31   }
     32 
     33   base::Time GetMonotonicTime() override {
     34     return monotonic_time_;
     35   }
     36 
     37   base::Time GetBootTime() override {
     38     return boot_time_;
     39   }
     40 
     41   void SetWallclockTime(const base::Time &time) {
     42     wallclock_time_ = time;
     43   }
     44 
     45   void SetMonotonicTime(const base::Time &time) {
     46     monotonic_time_ = time;
     47   }
     48 
     49   void SetBootTime(const base::Time &time) {
     50     boot_time_ = time;
     51   }
     52 
     53  private:
     54   base::Time wallclock_time_;
     55   base::Time monotonic_time_;
     56   base::Time boot_time_;
     57 
     58   DISALLOW_COPY_AND_ASSIGN(FakeClock);
     59 };
     60 
     61 }  // namespace chromeos_update_engine
     62 
     63 #endif  // UPDATE_ENGINE_COMMON_FAKE_CLOCK_H_
     64