PM: Make State an abstract interface.
Similar to CL:196656, move getters/variables to concrete
subclasses. In this case, also introduce a RealState type to achieve
this.
BUG=chromium:364763
TEST=Unit tests pass.
Change-Id: Ic12cd872e576c9690d32359474f3528cf706633d
Reviewed-on: https://chromium-review.googlesource.com/196885
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
Tested-by: David Zeuthen <zeuthen@chromium.org>
diff --git a/policy_manager/fake_state.cc b/policy_manager/fake_state.cc
index 8bbf452..6fa663b 100644
--- a/policy_manager/fake_state.cc
+++ b/policy_manager/fake_state.cc
@@ -8,24 +8,15 @@
namespace chromeos_policy_manager {
-FakeState::FakeState() : State(new FakeConfigProvider(),
- new FakeDevicePolicyProvider(),
- new FakeRandomProvider(),
- new FakeShillProvider(),
- new FakeSystemProvider(),
- new FakeTimeProvider(),
- new FakeUpdaterProvider()) {
-}
-
FakeState* FakeState::Construct() {
scoped_ptr<FakeState> fake_state(new FakeState());
- if (!(fake_state->config_provider()->Init() &&
- fake_state->device_policy_provider()->Init() &&
- fake_state->random_provider()->Init() &&
- fake_state->shill_provider()->Init() &&
- fake_state->system_provider()->Init() &&
- fake_state->time_provider()->Init() &&
- fake_state->updater_provider()->Init())) {
+ if (!(fake_state->config_provider_.Init() &&
+ fake_state->device_policy_provider_.Init() &&
+ fake_state->random_provider_.Init() &&
+ fake_state->shill_provider_.Init() &&
+ fake_state->system_provider_.Init() &&
+ fake_state->time_provider_.Init() &&
+ fake_state->updater_provider_.Init())) {
return NULL;
}
return fake_state.release();