buffet: Add abstract CloudCommandUpdateInterface

Added a simple interface for DeviceRegistrationInfo class that just deals
with updating the command status on the cloud without having to use the
DeviceRegistrationInfo class directly.

This will allow to mock out that class more easily in the tests for
subsequent CLs.

BUG=brillo:1202
TEST=`FEATURES=test emerge-link buffet`

Change-Id: I04b931bb2c54e18206e2e3cf588b2e2ce86d9507
Reviewed-on: https://chromium-review.googlesource.com/282260
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/commands/cloud_command_proxy.h b/buffet/commands/cloud_command_proxy.h
index 12c7f88..2c607ea 100644
--- a/buffet/commands/cloud_command_proxy.h
+++ b/buffet/commands/cloud_command_proxy.h
@@ -11,18 +11,18 @@
 #include <base/macros.h>
 #include <base/memory/weak_ptr.h>
 
+#include "buffet/commands/cloud_command_update_interface.h"
 #include "buffet/commands/command_proxy_interface.h"
 
 namespace buffet {
 
 class CommandInstance;
-class DeviceRegistrationInfo;
 
 // Command proxy which publishes command updates to the cloud.
 class CloudCommandProxy final : public CommandProxyInterface {
  public:
   CloudCommandProxy(CommandInstance* command_instance,
-                    DeviceRegistrationInfo* device_registration_info);
+                    CloudCommandUpdateInterface* cloud_command_updater);
   ~CloudCommandProxy() override = default;
 
   // CommandProxyInterface implementation/overloads.
@@ -47,7 +47,7 @@
   void OnUpdateCommandFinished(bool success);
 
   CommandInstance* command_instance_;
-  DeviceRegistrationInfo* device_registration_info_;
+  CloudCommandUpdateInterface* cloud_command_updater_;
 
   // Set to true while a pending PATCH request is in flight to the server.
   bool command_update_in_progress_{false};