[Convergance] fix for swapDevice2 80/109780/1
authorLukasz Bardeli <l.bardeli@samsung.com>
Wed, 11 Jan 2017 13:43:19 +0000 (14:43 +0100)
committerLukasz Bardeli <l.bardeli@samsung.com>
Wed, 11 Jan 2017 13:43:19 +0000 (14:43 +0100)
Change-Id: I68f61357bfcdc9bcc174d885f5e82fc457757f3c
Signed-off-by: Lukasz Bardeli <l.bardeli@samsung.com>
src/convergence/convergence_device.cc
src/convergence/convergence_device.h
src/convergence/convergence_manager.cc

index f617db7..34d3663 100644 (file)
@@ -154,7 +154,7 @@ void ConvergenceDevice::ForEachServiceCb(conv_service_h service_handle,
   s->Refresh();
 }
 
-void ConvergenceDevice::Refresh(conv_device_h device_handle) {
+void ConvergenceDevice::Refresh() {
   ScopeLogger();
   // Getting device properties from handle
   id_ = ExtractDevicePropery(CONV_DEVICE_ID);
@@ -165,14 +165,7 @@ void ConvergenceDevice::Refresh(conv_device_h device_handle) {
     id_.c_str(), name_.c_str(), type_.c_str());
 
   // Extracting services
-  conv_device_h handle = nullptr;
-  if (device_handle) {
-    handle = device_handle;
-  } else {
-    handle = device_handle_;
-  }
-
-  const int error = conv_device_foreach_service(handle, ForEachServiceCb, this);
+  const int error = conv_device_foreach_service(device_handle_, ForEachServiceCb, this);
   if (CONV_ERROR_NONE != error) {
     trace_conv_error(error, __LINE__, "conv_device_foreach_service");
   }
index 6496244..505ae38 100644 (file)
@@ -44,7 +44,7 @@ class ConvergenceDevice {
 
 
  public:
-  void Refresh(conv_device_h device_handle = nullptr);
+  void Refresh();
   ConvergenceService *GetService(const int service_type) const;
   //picojson::object ToJson() const;
   picojson::value ToJson() const;
index 11482af..3b14d6c 100644 (file)
@@ -117,7 +117,10 @@ ConvergenceDevice *ConvergenceManager::SwapDevice(const char *device_id,
     LoggerI("...registering the device [%s, %x]", device_id, device_handle);
     // Assume that there are only two services
   } else if(registered_devices_[device_id]->ServiceCount() < 2) {
-    registered_devices_[device_id]->Refresh(device_handle);
+    registered_devices_.erase(device_id);
+    ConvergenceDevice *d = new ConvergenceDevice(device_handle, convergence_plugin_);
+    d->SetId(device_id);
+    registered_devices_[device_id] = d;
   }
   return registered_devices_[device_id];
 }