PM: Add a time provider.
This implements a time provider interface, as well as a real and a fake
implementation.
BUG=chromium:341205
TEST=Unit tests.
Change-Id: Ibc6a865ab868e0f8c760c003dc970b7987896a36
Reviewed-on: https://chromium-review.googlesource.com/190247
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/state.h b/policy_manager/state.h
index 4950b56..fb847a7 100644
--- a/policy_manager/state.h
+++ b/policy_manager/state.h
@@ -7,6 +7,7 @@
#include "update_engine/policy_manager/random_provider.h"
#include "update_engine/policy_manager/shill_provider.h"
+#include "update_engine/policy_manager/time_provider.h"
namespace chromeos_policy_manager {
@@ -20,12 +21,14 @@
// succeeded.
bool Init() {
return (random_provider_ && random_provider_->Init() &&
- shill_provider_ && shill_provider_->Init());
+ shill_provider_ && shill_provider_->Init() &&
+ time_provider_ && time_provider_->Init());
}
// These functions return the given provider.
RandomProvider* random_provider() { return random_provider_.get(); }
ShillProvider* shill_provider() { return shill_provider_.get(); }
+ TimeProvider* time_provider() { return time_provider_.get(); }
protected:
// Initialize the private scoped_ptr for each provider.
@@ -37,10 +40,15 @@
return shill_provider_.reset(shill_provider);
}
+ void set_time_provider(TimeProvider* time_provider) {
+ return time_provider_.reset(time_provider);
+ }
+
private:
// Instances of the providers.
scoped_ptr<RandomProvider> random_provider_;
scoped_ptr<ShillProvider> shill_provider_;
+ scoped_ptr<TimeProvider> time_provider_;
};
} // namespace chromeos_policy_manager