PM: Add an update engine provider.
The UpdaterProvider exports variables for querying the status of an
update process and related settings. Includes a concrete implementation
(RealUpdaterProvider), which currently links directly with update engine
code and pulls information through the SystemState object. Also
included is a fake implementation (FakeUpdaterProvider) for testing
purposes.
BUG=chromium:346914
TEST=Unit tests.
Change-Id: I6ed5b40f21e43537e78aebf4217d811e149f745b
Reviewed-on: https://chromium-review.googlesource.com/192232
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
diff --git a/policy_manager/state.h b/policy_manager/state.h
index 8d93dea..09f1b3d 100644
--- a/policy_manager/state.h
+++ b/policy_manager/state.h
@@ -9,6 +9,7 @@
#include "update_engine/policy_manager/shill_provider.h"
#include "update_engine/policy_manager/system_provider.h"
#include "update_engine/policy_manager/time_provider.h"
+#include "update_engine/policy_manager/updater_provider.h"
namespace chromeos_policy_manager {
@@ -18,17 +19,22 @@
public:
virtual ~State() {}
State(RandomProvider* random_provider, ShillProvider* shill_provider,
- SystemProvider* system_provider, TimeProvider* time_provider) :
+ SystemProvider* system_provider, TimeProvider* time_provider,
+ UpdaterProvider* updater_provider) :
random_provider_(random_provider),
shill_provider_(shill_provider),
system_provider_(system_provider),
- time_provider_(time_provider) {}
+ time_provider_(time_provider),
+ updater_provider_(updater_provider) {}
// These methods return the given provider.
virtual RandomProvider* random_provider() { return random_provider_.get(); }
virtual ShillProvider* shill_provider() { return shill_provider_.get(); }
- virtual TimeProvider* time_provider() { return time_provider_.get(); }
virtual SystemProvider* system_provider() { return system_provider_.get(); }
+ virtual TimeProvider* time_provider() { return time_provider_.get(); }
+ virtual UpdaterProvider* updater_provider() {
+ return updater_provider_.get();
+ }
private:
// Instances of the providers.
@@ -36,6 +42,7 @@
scoped_ptr<ShillProvider> shill_provider_;
scoped_ptr<SystemProvider> system_provider_;
scoped_ptr<TimeProvider> time_provider_;
+ scoped_ptr<UpdaterProvider> updater_provider_;
};
} // namespace chromeos_policy_manager