buffet: Pass CommandManager instance to DeviceRegistrationInfo

In order to generate device draft for device registration with
GCD cloud server, DeviceRegistrationInfo class needs access
to CommandManager class to get the CDD for supported commands.

BUG=chromium:396716
TEST=USE=buffet P2_TEST_FILTER="buffet::*" FEATURES=test emerge-link platform2

Change-Id: I076249a890dc865f3af119315ab1c1c50c6edcf4
Reviewed-on: https://chromium-review.googlesource.com/209564
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/manager.cc b/buffet/manager.cc
index e493329..aa29552 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -131,7 +131,9 @@
   sequencer->OnAllTasksCompletedCall({claim_interface_task, cb});
   command_manager_ = std::make_shared<CommandManager>();
   command_manager_->Startup();
-  device_info_.Load();
+  device_info_ = std::unique_ptr<DeviceRegistrationInfo>(
+      new DeviceRegistrationInfo(command_manager_));
+  device_info_->Load();
 }
 
 scoped_ptr<dbus::Response> Manager::HandleCheckDeviceRegistered(
@@ -146,7 +148,7 @@
   LOG(INFO) << "Received call to Manager.CheckDeviceRegistered()";
 
   buffet::ErrorPtr error;
-  bool registered = device_info_.CheckRegistration(&error);
+  bool registered = device_info_->CheckRegistration(&error);
   // If it fails due to any reason other than 'device not registered',
   // treat it as a real error and report it to the caller.
   if (!registered &&
@@ -156,7 +158,7 @@
 
   std::string device_id;
   if (registered) {
-    device_id = device_info_.GetDeviceId(&error);
+    device_id = device_info_->GetDeviceId(&error);
     if (device_id.empty())
       return GetDBusError(method_call, error.get());
   }
@@ -181,7 +183,7 @@
 
   std::string device_info_str;
   buffet::ErrorPtr error;
-  auto device_info = device_info_.GetDeviceInfo(&error);
+  auto device_info = device_info_->GetDeviceInfo(&error);
   if (!device_info)
     return GetDBusError(method_call, error.get());
 
@@ -226,7 +228,7 @@
   LOG(INFO) << "Received call to Manager.StartRegisterDevice()";
 
   buffet::ErrorPtr error;
-  std::string id = device_info_.StartRegistration(params, &error);
+  std::string id = device_info_->StartRegistration(params, &error);
   if (id.empty())
     return GetDBusError(method_call, error.get());
 
@@ -257,10 +259,10 @@
 
   LOG(INFO) << "Received call to Manager.FinishRegisterDevice()";
   buffet::ErrorPtr error;
-  if (!device_info_.FinishRegistration(user_auth_code, &error))
+  if (!device_info_->FinishRegistration(user_auth_code, &error))
     return GetDBusError(method_call, error.get());
 
-  std::string device_id = device_info_.GetDeviceId(&error);
+  std::string device_id = device_info_->GetDeviceId(&error);
   if (device_id.empty())
     return GetDBusError(method_call, error.get());