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_factory.h b/policy_manager/state_factory.h
index d0b93a1..58e6813 100644
--- a/policy_manager/state_factory.h
+++ b/policy_manager/state_factory.h
@@ -5,21 +5,18 @@
 #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_STATE_FACTORY_H_
 #define CHROMEOS_PLATFORM_UPDATE_ENGINE_POLICY_MANAGER_STATE_FACTORY_H_
 
-#include "update_engine/clock_interface.h"
-#include "update_engine/dbus_wrapper_interface.h"
 #include "update_engine/policy_manager/state.h"
+#include "update_engine/system_state.h"
 
 namespace chromeos_policy_manager {
 
-// Creates and initializes a new State instance using the real providers
-// instantiated using the passed interfaces when needed. The State doesn't
-// take ownership of the passed interfaces, which need to remain available
-// during the life of this instance.
-// If one of the underlying providers fails to initialize, this function returns
-// NULL.
-State* DefaultStateFactory(
-    chromeos_update_engine::DBusWrapperInterface* dbus,
-    chromeos_update_engine::ClockInterface* clock);
+// Creates and initializes a new PolicyManager State instance containing real
+// providers instantiated using the passed interfaces. The State doesn't take
+// ownership of the passed interfaces, which need to remain available during the
+// life of this instance.  Returns null if one of the underlying providers fails
+// to initialize.
+State* DefaultStateFactory(chromeos_update_engine::DBusWrapperInterface* dbus,
+                           chromeos_update_engine::SystemState* system_state);
 
 }  // namespace chromeos_policy_manager