diff options
Diffstat (limited to 'src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc')
-rw-r--r-- | src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc | 38 |
1 files changed, 36 insertions, 2 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 78a9840401..f8e9c8a15f 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 @@ -40,6 +40,9 @@ #include "transport_manager/transport_adapter/server_connection_factory.h" #include "transport_manager/transport_adapter/transport_adapter_impl.h" #include "transport_manager/transport_adapter/transport_adapter_listener.h" +#ifdef WEBSOCKET_SERVER_TRANSPORT_SUPPORT +#include "transport_manager/websocket/websocket_device.h" +#endif namespace transport_manager { namespace transport_adapter { @@ -62,8 +65,9 @@ DeviceTypes devicesType = { std::string("USB_IOS_DEVICE_MODE")), std::make_pair(DeviceType::IOS_CARPLAY_WIRELESS, std::string("CARPLAY_WIRELESS_IOS")), - std::make_pair(DeviceType::CLOUD_WEBSOCKET, - std::string("CLOUD_WEBSOCKET"))}; + std::make_pair(DeviceType::CLOUD_WEBSOCKET, std::string("CLOUD_WEBSOCKET")), + std::make_pair(DeviceType::WEBENGINE_WEBSOCKET, + std::string("WEBENGINE_WEBSOCKET"))}; } TransportAdapterImpl::TransportAdapterImpl( @@ -373,6 +377,10 @@ TransportAdapter::Error TransportAdapterImpl::DisconnectDevice( Error error = OK; DeviceSptr device = FindDevice(device_id); + if (!device) { + LOG4CXX_WARN(logger_, "Device with id: " << device_id << " Not found"); + return BAD_PARAM; + } ConnectionStatusUpdated(device, ConnectionStatus::CLOSING); std::vector<ConnectionInfo> to_disconnect; @@ -488,6 +496,32 @@ DeviceList TransportAdapterImpl::GetDeviceList() const { return devices; } +DeviceSptr TransportAdapterImpl::GetWebEngineDevice() const { +#ifndef WEBSOCKET_SERVER_TRANSPORT_SUPPORT + LOG4CXX_TRACE(logger_, + "Web engine support is disabled. Device does not exist"); + return DeviceSptr(); +#else + LOG4CXX_AUTO_TRACE(logger_); + sync_primitives::AutoLock locker(devices_mutex_); + + auto web_engine_device = + std::find_if(devices_.begin(), + devices_.end(), + [](const std::pair<DeviceUID, DeviceSptr> device) { + return webengine_constants::kWebEngineDeviceName == + device.second->name(); + }); + + if (devices_.end() != web_engine_device) { + return web_engine_device->second; + } + + LOG4CXX_ERROR(logger_, "WebEngine device not found!"); + return std::make_shared<transport_adapter::WebSocketDevice>("", ""); +#endif +} + DeviceSptr TransportAdapterImpl::AddDevice(DeviceSptr device) { LOG4CXX_TRACE(logger_, "enter. device: " << device); DeviceSptr existing_device; |