PolicyManager: New System provider.
The system provider exposes information about the device from
crossystem and the kernel boot command line options.
BUG=chromium:338587
TEST=Unit tests.
Change-Id: I2837a97740b63562155717cfe6a12fad69fd8cea
Reviewed-on: https://chromium-review.googlesource.com/191121
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/policy_manager/state.h b/policy_manager/state.h
index fb847a7..dd1e6af 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/system_provider.h"
#include "update_engine/policy_manager/time_provider.h"
namespace chromeos_policy_manager {
@@ -22,6 +23,7 @@
bool Init() {
return (random_provider_ && random_provider_->Init() &&
shill_provider_ && shill_provider_->Init() &&
+ system_provider_ && system_provider_->Init() &&
time_provider_ && time_provider_->Init());
}
@@ -29,6 +31,7 @@
RandomProvider* random_provider() { return random_provider_.get(); }
ShillProvider* shill_provider() { return shill_provider_.get(); }
TimeProvider* time_provider() { return time_provider_.get(); }
+ SystemProvider* system_provider() { return system_provider_.get(); }
protected:
// Initialize the private scoped_ptr for each provider.
@@ -40,6 +43,10 @@
return shill_provider_.reset(shill_provider);
}
+ void set_system_provider(SystemProvider* system_provider) {
+ return system_provider_.reset(system_provider);
+ }
+
void set_time_provider(TimeProvider* time_provider) {
return time_provider_.reset(time_provider);
}
@@ -48,6 +55,7 @@
// Instances of the providers.
scoped_ptr<RandomProvider> random_provider_;
scoped_ptr<ShillProvider> shill_provider_;
+ scoped_ptr<SystemProvider> system_provider_;
scoped_ptr<TimeProvider> time_provider_;
};