Remove weave::Device::Start method

Start code moved into weave::Device::Create() method.

BUG:24267885
Change-Id: I311777dfebe4374491c9c13907d92c6574304bd9
Reviewed-on: https://weave-review.googlesource.com/1220
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/examples/ubuntu/main.cc b/libweave/examples/ubuntu/main.cc
index cdeae8b..43c13ec 100644
--- a/libweave/examples/ubuntu/main.cc
+++ b/libweave/examples/ubuntu/main.cc
@@ -104,8 +104,7 @@
   weave::examples::HttpServerImpl http_server{&task_runner};
   weave::examples::BluetoothImpl bluetooth;
 
-  auto device = weave::Device::Create();
-  device->Start(
+  auto device = weave::Device::Create(
       &config_store, &task_runner, &http_client, &network, &dns_sd,
       &http_server,
       weave::examples::NetworkImpl::HasWifiCapability() ? &network : nullptr,
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h
index 260790f..57895b2 100644
--- a/libweave/include/weave/device.h
+++ b/libweave/include/weave/device.h
@@ -35,15 +35,6 @@
  public:
   virtual ~Device() = default;
 
-  virtual void Start(provider::ConfigStore* config_store,
-                     provider::TaskRunner* task_runner,
-                     provider::HttpClient* http_client,
-                     provider::Network* network,
-                     provider::DnsServiceDiscovery* dns_sd,
-                     provider::HttpServer* http_server,
-                     provider::Wifi* wifi,
-                     provider::Bluetooth* bluetooth_provider) = 0;
-
   // Returns reference the current settings.
   virtual const Settings& GetSettings() = 0;
 
@@ -84,7 +75,15 @@
       const PairingBeginCallback& begin_callback,
       const PairingEndCallback& end_callback) = 0;
 
-  LIBWEAVE_EXPORT static std::unique_ptr<Device> Create();
+  LIBWEAVE_EXPORT static std::unique_ptr<Device> Create(
+      provider::ConfigStore* config_store,
+      provider::TaskRunner* task_runner,
+      provider::HttpClient* http_client,
+      provider::Network* network,
+      provider::DnsServiceDiscovery* dns_sd,
+      provider::HttpServer* http_server,
+      provider::Wifi* wifi,
+      provider::Bluetooth* bluetooth_provider);
 };
 
 }  // namespace weave
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index 5a8e630..46d5de9 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -25,18 +25,14 @@
 
 }  // namespace
 
-DeviceManager::DeviceManager() {}
-
-DeviceManager::~DeviceManager() {}
-
-void DeviceManager::Start(provider::ConfigStore* config_store,
-                          provider::TaskRunner* task_runner,
-                          provider::HttpClient* http_client,
-                          provider::Network* network,
-                          provider::DnsServiceDiscovery* dns_sd,
-                          provider::HttpServer* http_server,
-                          provider::Wifi* wifi,
-                          provider::Bluetooth* bluetooth) {
+DeviceManager::DeviceManager(provider::ConfigStore* config_store,
+                             provider::TaskRunner* task_runner,
+                             provider::HttpClient* http_client,
+                             provider::Network* network,
+                             provider::DnsServiceDiscovery* dns_sd,
+                             provider::HttpServer* http_server,
+                             provider::Wifi* wifi,
+                             provider::Bluetooth* bluetooth) {
   command_manager_ = std::make_shared<CommandManager>();
   command_manager_->Startup(config_store);
   state_change_queue_.reset(new StateChangeQueue(kMaxStateChangeQueueSize));
@@ -63,6 +59,8 @@
   }
 }
 
+DeviceManager::~DeviceManager() {}
+
 const Settings& DeviceManager::GetSettings() {
   return device_info_->GetSettings();
 }
@@ -117,8 +115,17 @@
     privet_->AddOnPairingChangedCallbacks(begin_callback, end_callback);
 }
 
-std::unique_ptr<Device> Device::Create() {
-  return std::unique_ptr<Device>{new DeviceManager};
+std::unique_ptr<Device> Device::Create(provider::ConfigStore* config_store,
+                                       provider::TaskRunner* task_runner,
+                                       provider::HttpClient* http_client,
+                                       provider::Network* network,
+                                       provider::DnsServiceDiscovery* dns_sd,
+                                       provider::HttpServer* http_server,
+                                       provider::Wifi* wifi,
+                                       provider::Bluetooth* bluetooth) {
+  return std::unique_ptr<Device>{
+      new DeviceManager{config_store, task_runner, http_client, network, dns_sd,
+                        http_server, wifi, bluetooth}};
 }
 
 }  // namespace weave
diff --git a/libweave/src/device_manager.h b/libweave/src/device_manager.h
index 787a7be..d96ee9b 100644
--- a/libweave/src/device_manager.h
+++ b/libweave/src/device_manager.h
@@ -23,25 +23,23 @@
 
 class DeviceManager final : public Device {
  public:
-  DeviceManager();
+  DeviceManager(provider::ConfigStore* config_store,
+                provider::TaskRunner* task_runner,
+                provider::HttpClient* http_client,
+                provider::Network* network,
+                provider::DnsServiceDiscovery* dns_sd,
+                provider::HttpServer* http_server,
+                provider::Wifi* wifi,
+                provider::Bluetooth* bluetooth);
   ~DeviceManager() override;
 
   // Device implementation.
-  void Start(provider::ConfigStore* config_store,
-             provider::TaskRunner* task_runner,
-             provider::HttpClient* http_client,
-             provider::Network* network,
-             provider::DnsServiceDiscovery* dns_sd,
-             provider::HttpServer* http_server,
-             provider::Wifi* wifi,
-             provider::Bluetooth* bluetooth) override;
   const Settings& GetSettings() override;
   void AddSettingsChangedCallback(
       const SettingsChangedCallback& callback) override;
   Commands* GetCommands() override;
   State* GetState() override;
-  std::string RegisterDevice(const std::string& ticket_id,
-                             ErrorPtr* error) override;
+  std::string Register(const std::string& ticket_id, ErrorPtr* error) override;
 
   GcdState GetGcdState() const override;
   void AddGcdStateChangedCallback(
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index e211392..8776ba6 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -134,7 +134,7 @@
 
 class WeaveTest : public ::testing::Test {
  protected:
-  void SetUp() override { device_ = weave::Device::Create(); }
+  void SetUp() override {}
 
   void ExpectRequest(const std::string& method,
                      const std::string& url,
@@ -235,8 +235,9 @@
   }
 
   void StartDevice() {
-    device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
-                   &dns_sd_, &http_server_, &wifi_, &bluetooth_);
+    device_ = weave::Device::Create(&config_store_, &task_runner_,
+                                    &http_client_, &network_, &dns_sd_,
+                                    &http_server_, &wifi_, &bluetooth_);
 
     for (const auto& cb : http_server_changed_cb_)
       cb.Run(http_server_);
@@ -270,14 +271,10 @@
   std::unique_ptr<weave::Device> device_;
 };
 
-TEST_F(WeaveTest, Create) {
-  ASSERT_TRUE(device_.get());
-}
-
 TEST_F(WeaveTest, StartMinimal) {
   InitConfigStore();
-  device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
-                 nullptr, nullptr, &wifi_, nullptr);
+  device_ = weave::Device::Create(&config_store_, &task_runner_, &http_client_,
+                                  &network_, nullptr, nullptr, &wifi_, nullptr);
 }
 
 TEST_F(WeaveTest, StartNoWifi) {
@@ -287,8 +284,9 @@
   InitDnsSd();
   InitDnsSdPublishing(false, "CB");
 
-  device_->Start(&config_store_, &task_runner_, &http_client_, &network_,
-                 &dns_sd_, &http_server_, nullptr, &bluetooth_);
+  device_ = weave::Device::Create(&config_store_, &task_runner_, &http_client_,
+                                  &network_, &dns_sd_, &http_server_, nullptr,
+                                  &bluetooth_);
 
   for (const auto& cb : http_server_changed_cb_)
     cb.Run(http_server_);
@@ -336,7 +334,7 @@
 
   InitDnsSdPublishing(true, "DB");
 
-  EXPECT_EQ("CLOUD_ID", device_->RegisterDevice("TICKET_ID", nullptr));
+  EXPECT_EQ("CLOUD_ID", device_->Register("TICKET_ID", nullptr));
 }
 
 class WeaveWiFiSetupTest : public WeaveTest {