summaryrefslogtreecommitdiff
path: root/src/components/transport_manager/src
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/transport_manager/src')
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc15
-rw-r--r--src/components/transport_manager/src/transport_manager_impl.cc28
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);