diff options
Diffstat (limited to 'src/components/transport_manager/src')
-rw-r--r-- | src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc | 15 | ||||
-rw-r--r-- | src/components/transport_manager/src/transport_manager_impl.cc | 28 |
2 files changed, 43 insertions, 0 deletions
diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc index 2d0d9b91d4..f0fddfb4f5 100644 --- a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc +++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc @@ -951,6 +951,21 @@ TransportAdapter::Error TransportAdapterImpl::ConnectDevice(DeviceSptr device) { } } +void TransportAdapterImpl::RunAppOnDevice(const DeviceUID& device_uid, + const std::string& bundle_id) { + LOG4CXX_AUTO_TRACE(logger_); + + DeviceSptr device = FindDevice(device_uid); + if (!device) { + LOG4CXX_WARN(logger_, + "Device with id: " << device_uid << " Not found" + << "withing list of connected deviced"); + return; + } + + device->LaunchApp(bundle_id); +} + void TransportAdapterImpl::RemoveDevice(const DeviceUID& device_handle) { LOG4CXX_AUTO_TRACE(logger_); LOG4CXX_DEBUG(logger_, "Device_handle: " << &device_handle); diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc index 113d280c8d..8a4b01ad85 100644 --- a/src/components/transport_manager/src/transport_manager_impl.cc +++ b/src/components/transport_manager/src/transport_manager_impl.cc @@ -341,6 +341,34 @@ int TransportManagerImpl::SendMessageToDevice( return E_SUCCESS; } +void TransportManagerImpl::RunAppOnDevice(const DeviceHandle device_handle, + const std::string& bundle_id) { + if (!this->is_initialized_) { + LOG4CXX_ERROR(logger_, "TransportManager is not initialized."); + return; + } + DeviceUID device_id = converter_.HandleToUid(device_handle); + LOG4CXX_DEBUG(logger_, "Convert handle to id:" << device_id); + + sync_primitives::AutoReadLock lock(device_to_adapter_map_lock_); + DeviceToAdapterMap::iterator it = device_to_adapter_map_.find(device_id); + if (it == device_to_adapter_map_.end()) { + LOG4CXX_ERROR(logger_, "No device adapter found by id " << device_id); + return; + } + transport_adapter::TransportAdapter* ta = it->second; + + if (!ta) { + LOG4CXX_ERROR(logger_, + "Transport adapter for device: " << device_id << " is NULL"); + return; + } + + ta->RunAppOnDevice(device_id, bundle_id); + + return; +} + int TransportManagerImpl::ReceiveEventFromDevice( const TransportAdapterEvent& event) { LOG4CXX_TRACE(logger_, "enter. TransportAdapterEvent: " << &event); |