diff options
Diffstat (limited to 'src/components/transport_manager')
25 files changed, 292 insertions, 190 deletions
diff --git a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h index c4bd02d64b..14f954286f 100644 --- a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h +++ b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_transport_adapter.h @@ -49,7 +49,11 @@ class BluetoothTransportAdapter : public TransportAdapterImpl { /** * @brief Constructor. */ - BluetoothTransportAdapter(resumption::LastState& last_state, + BluetoothTransportAdapter(resumption::LastStateWrapperPtr last_state_wrapper, + const TransportManagerSettings& settings); + + DEPRECATED + BluetoothTransportAdapter(resumption::LastState&, const TransportManagerSettings& settings); /** diff --git a/src/components/transport_manager/include/transport_manager/cloud/cloud_websocket_transport_adapter.h b/src/components/transport_manager/include/transport_manager/cloud/cloud_websocket_transport_adapter.h index 138f9ca895..c8b2cc9508 100644 --- a/src/components/transport_manager/include/transport_manager/cloud/cloud_websocket_transport_adapter.h +++ b/src/components/transport_manager/include/transport_manager/cloud/cloud_websocket_transport_adapter.h @@ -50,7 +50,7 @@ class CloudWebsocketTransportAdapter : public TransportAdapterImpl { * @brief Constructor. */ explicit CloudWebsocketTransportAdapter( - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings); /** diff --git a/src/components/transport_manager/include/transport_manager/iap2_emulation/iap2_transport_adapter.h b/src/components/transport_manager/include/transport_manager/iap2_emulation/iap2_transport_adapter.h index a802a64afa..3dabfb39ca 100644 --- a/src/components/transport_manager/include/transport_manager/iap2_emulation/iap2_transport_adapter.h +++ b/src/components/transport_manager/include/transport_manager/iap2_emulation/iap2_transport_adapter.h @@ -33,7 +33,7 @@ #ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_IAP2_EMULATION_IAP2_TRANSPORT_ADAPTER_H_ #define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_IAP2_EMULATION_IAP2_TRANSPORT_ADAPTER_H_ -#include "resumption/last_state.h" +#include "resumption/last_state_wrapper.h" #include "transport_manager/tcp/tcp_transport_adapter.h" #include "transport_manager/transport_manager_settings.h" #include "utils/macro.h" @@ -60,9 +60,14 @@ class IAP2BluetoothEmulationTransportAdapter : public TcpTransportAdapter { */ IAP2BluetoothEmulationTransportAdapter( const uint16_t port, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings); + DEPRECATED + IAP2BluetoothEmulationTransportAdapter( + const uint16_t port, + resumption::LastState& last_state_wrapper, + const TransportManagerSettings& settings); /** * @brief DeviceSwitched is called during switching from iAP2 Bluetooth to * iAP2 USB transport. @@ -103,9 +108,16 @@ class IAP2USBEmulationTransportAdapter : public TcpTransportAdapter { * @param last_state LastState instance reference * @param settings Settings reference */ + IAP2USBEmulationTransportAdapter( + const uint16_t port, + resumption::LastStateWrapperPtr last_state_wrapper, + const TransportManagerSettings& settings); + + DEPRECATED IAP2USBEmulationTransportAdapter(const uint16_t port, - resumption::LastState& last_state, - const TransportManagerSettings& settings); + resumption::LastState&, + const TransportManagerSettings& settings) = + delete; /** * Destructor diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h index 37f5a7fe49..c5948062c9 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h +++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h @@ -49,9 +49,14 @@ class TcpTransportAdapter : public TransportAdapterImpl { /** * @brief Constructor. */ - explicit TcpTransportAdapter(uint16_t port, - resumption::LastState& last_state, - const TransportManagerSettings& settings); + TcpTransportAdapter(uint16_t port, + resumption::LastStateWrapperPtr last_state_wrapper, + const TransportManagerSettings& settings); + + DEPRECATED + TcpTransportAdapter(uint16_t port, + resumption::LastState&, + const TransportManagerSettings& settings) = delete; /** * @brief Destructor. diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h index 5f54cf8376..db9bb03998 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h @@ -43,7 +43,7 @@ #include "utils/rwlock.h" #include "utils/timer.h" -#include "resumption/last_state.h" +#include "resumption/last_state_wrapper.h" #include "transport_manager/transport_adapter/connection.h" #include "transport_manager/transport_adapter/transport_adapter.h" #include "transport_manager/transport_adapter/transport_adapter_controller.h" @@ -82,9 +82,16 @@ class TransportAdapterImpl : public TransportAdapter, TransportAdapterImpl(DeviceScanner* device_scanner, ServerConnectionFactory* server_connection_factory, ClientConnectionListener* client_connection_listener, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings); + DEPRECATED + TransportAdapterImpl(DeviceScanner* device_scanner, + ServerConnectionFactory* server_connection_factory, + ClientConnectionListener* client_connection_listener, + resumption::LastState& last_state, + const TransportManagerSettings& settings) = delete; + /** * @brief Destructor. **/ @@ -662,7 +669,7 @@ class TransportAdapterImpl : public TransportAdapter, #endif // TELEMETRY_MONITOR resumption::LastState& last_state() const { - return last_state_; + return last_state_wrapper_->get_accessor().GetMutableData(); } /** @@ -680,7 +687,7 @@ class TransportAdapterImpl : public TransportAdapter, */ ClientConnectionListener* client_connection_listener_; - resumption::LastState& last_state_; + resumption::LastStateWrapperPtr last_state_wrapper_; const TransportManagerSettings& settings_; }; diff --git a/src/components/transport_manager/include/transport_manager/transport_manager_default.h b/src/components/transport_manager/include/transport_manager/transport_manager_default.h index 63061b14b7..9d428cf817 100644 --- a/src/components/transport_manager/include/transport_manager/transport_manager_default.h +++ b/src/components/transport_manager/include/transport_manager/transport_manager_default.h @@ -38,10 +38,6 @@ #include "transport_manager/transport_manager_impl.h" -namespace resumption { -class LastState; -} - namespace transport_manager { struct TransportAdapterFactory { @@ -50,19 +46,19 @@ struct TransportAdapterFactory { using CreatorTA = std::function<transport_adapter::TransportAdapter*(Args&&... args)>; #ifdef BLUETOOTH_SUPPORT - CreatorTA<resumption::LastState&, const TransportManagerSettings&> + CreatorTA<resumption::LastStateWrapperPtr&, const TransportManagerSettings&> ta_bluetooth_creator_; #endif CreatorTA<const uint16_t, - resumption::LastState&, + resumption::LastStateWrapperPtr&, const TransportManagerSettings&> ta_tcp_creator_; #if defined(USB_SUPPORT) - CreatorTA<resumption::LastState&, const TransportManagerSettings&> + CreatorTA<resumption::LastStateWrapperPtr&, const TransportManagerSettings&> ta_usb_creator_; #endif #if defined(CLOUD_APP_WEBSOCKET_TRANSPORT_SUPPORT) - CreatorTA<resumption::LastState&, const TransportManagerSettings&> + CreatorTA<resumption::LastStateWrapperPtr&, const TransportManagerSettings&> ta_cloud_creator_; #endif }; @@ -80,6 +76,9 @@ class TransportManagerDefault : public TransportManagerImpl { * * @return Code error. */ + int Init(resumption::LastStateWrapperPtr last_state_wrapper) OVERRIDE; + + DEPRECATED int Init(resumption::LastState& last_state) OVERRIDE; /** diff --git a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h index 5e97a5567e..2fbd592b72 100644 --- a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h +++ b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h @@ -124,6 +124,9 @@ class TransportManagerImpl * * @return Code error. */ + int Init(resumption::LastStateWrapperPtr last_state_wrapper) OVERRIDE; + + DEPRECATED int Init(resumption::LastState& last_state) OVERRIDE; /** diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h b/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h index ee7039efde..45c6d4c0e4 100644 --- a/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h +++ b/src/components/transport_manager/include/transport_manager/usb/usb_aoa_adapter.h @@ -44,8 +44,13 @@ namespace transport_adapter { class UsbAoaAdapter : public TransportAdapterImpl { public: - UsbAoaAdapter(resumption::LastState& last_state, + UsbAoaAdapter(resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings); + + DEPRECATED + UsbAoaAdapter(resumption::LastState&, + const TransportManagerSettings& settings) = delete; + virtual ~UsbAoaAdapter(); protected: diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc b/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc index 911658bc56..066751c474 100644 --- a/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc +++ b/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc @@ -57,12 +57,13 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") BluetoothTransportAdapter::~BluetoothTransportAdapter() {} BluetoothTransportAdapter::BluetoothTransportAdapter( - resumption::LastState& last_state, const TransportManagerSettings& settings) + resumption::LastStateWrapperPtr last_state_wrapper, + const TransportManagerSettings& settings) : TransportAdapterImpl( new BluetoothDeviceScanner(this, true, 0, settings.bluetooth_uuid()), new BluetoothConnectionFactory(this), NULL, - last_state, + last_state_wrapper, settings) {} DeviceType BluetoothTransportAdapter::GetDeviceType() const { @@ -112,23 +113,25 @@ void BluetoothTransportAdapter::Store() const { } } bluetooth_adapter_dictionary["devices"] = devices_dictionary; - Json::Value& dictionary = last_state().get_dictionary(); + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + Json::Value dictionary = accessor.GetData().dictionary(); dictionary["TransportManager"]["BluetoothAdapter"] = bluetooth_adapter_dictionary; + accessor.GetMutableData().set_dictionary(dictionary); LOG4CXX_TRACE(logger_, "exit"); } bool BluetoothTransportAdapter::Restore() { LOG4CXX_TRACE(logger_, "enter"); bool errors_occured = false; + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + Json::Value dictionary = accessor.GetData().dictionary(); const Json::Value bluetooth_adapter_dictionary = - last_state().get_dictionary()["TransportManager"]["BluetoothAdapter"]; + dictionary["TransportManager"]["BluetoothAdapter"]; const Json::Value devices_dictionary = bluetooth_adapter_dictionary["devices"]; - for (Json::Value::const_iterator i = devices_dictionary.begin(); - i != devices_dictionary.end(); - ++i) { - const Json::Value device_dictionary = *i; + for (const auto& bt_device : devices_dictionary) { + const Json::Value device_dictionary = bt_device; std::string name = device_dictionary["name"].asString(); std::string address_record = device_dictionary["address"].asString(); bdaddr_t address; @@ -136,10 +139,8 @@ bool BluetoothTransportAdapter::Restore() { RfcommChannelVector rfcomm_channels; const Json::Value applications_dictionary = device_dictionary["applications"]; - for (Json::Value::const_iterator j = applications_dictionary.begin(); - j != applications_dictionary.end(); - ++j) { - const Json::Value application_dictionary = *j; + for (const auto& application : applications_dictionary) { + const Json::Value application_dictionary = application; std::string rfcomm_channel_record = application_dictionary["rfcomm_channel"].asString(); uint8_t rfcomm_channel = @@ -150,11 +151,9 @@ bool BluetoothTransportAdapter::Restore() { new BluetoothDevice(address, name.c_str(), rfcomm_channels); DeviceSptr device(bluetooth_device); AddDevice(device); - for (RfcommChannelVector::const_iterator j = rfcomm_channels.begin(); - j != rfcomm_channels.end(); - ++j) { + for (const auto& channel : rfcomm_channels) { ApplicationHandle app_handle = - *j; // for Bluetooth device app_handle is just RFCOMM channel + channel; // for Bluetooth device app_handle is just RFCOMM channel if (Error::OK != Connect(device->unique_device_id(), app_handle)) { errors_occured = true; } diff --git a/src/components/transport_manager/src/cloud/cloud_websocket_transport_adapter.cc b/src/components/transport_manager/src/cloud/cloud_websocket_transport_adapter.cc index 622531b120..2d1de703b1 100644 --- a/src/components/transport_manager/src/cloud/cloud_websocket_transport_adapter.cc +++ b/src/components/transport_manager/src/cloud/cloud_websocket_transport_adapter.cc @@ -44,11 +44,12 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") CloudWebsocketTransportAdapter::CloudWebsocketTransportAdapter( - resumption::LastState& last_state, const TransportManagerSettings& settings) + resumption::LastStateWrapperPtr last_state_wrapper, + const TransportManagerSettings& settings) : TransportAdapterImpl(NULL, new CloudWebsocketConnectionFactory(this), NULL, - last_state, + last_state_wrapper, settings) {} CloudWebsocketTransportAdapter::~CloudWebsocketTransportAdapter() {} diff --git a/src/components/transport_manager/src/iap2_emulation/iap2_transport_adapter.cc b/src/components/transport_manager/src/iap2_emulation/iap2_transport_adapter.cc index 2e37f76bc9..6a43f66c64 100644 --- a/src/components/transport_manager/src/iap2_emulation/iap2_transport_adapter.cc +++ b/src/components/transport_manager/src/iap2_emulation/iap2_transport_adapter.cc @@ -54,9 +54,9 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "IAP2Emulation"); IAP2BluetoothEmulationTransportAdapter::IAP2BluetoothEmulationTransportAdapter( const uint16_t port, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) - : TcpTransportAdapter(port, last_state, settings) {} + : TcpTransportAdapter(port, last_state_wrapper, settings) {} void IAP2BluetoothEmulationTransportAdapter::DeviceSwitched( const DeviceUID& device_handle) { @@ -76,9 +76,9 @@ void IAP2BluetoothEmulationTransportAdapter::TransportConfigUpdated( IAP2USBEmulationTransportAdapter::IAP2USBEmulationTransportAdapter( const uint16_t port, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) - : TcpTransportAdapter(port, last_state, settings), out_(0) { + : TcpTransportAdapter(port, last_state_wrapper, settings), out_(0) { auto delegate = new IAPSignalHandlerDelegate(*this); signal_handler_ = threads::CreateThread("iAP signal handler", delegate); signal_handler_->start(); diff --git a/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc b/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc index aeb50f3830..54eb3a7b6d 100644 --- a/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc +++ b/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc @@ -53,7 +53,7 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") TcpTransportAdapter::TcpTransportAdapter( const uint16_t port, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) : TransportAdapterImpl( NULL, @@ -63,7 +63,7 @@ TcpTransportAdapter::TcpTransportAdapter( port, true, settings.transport_manager_tcp_adapter_network_interface()), - last_state, + last_state_wrapper, settings) {} TcpTransportAdapter::~TcpTransportAdapter() {} @@ -131,20 +131,22 @@ void TcpTransportAdapter::Store() const { } } tcp_adapter_dictionary["devices"] = devices_dictionary; - Json::Value& dictionary = last_state().get_dictionary(); + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + Json::Value dictionary = accessor.GetData().dictionary(); dictionary["TransportManager"]["TcpAdapter"] = tcp_adapter_dictionary; + accessor.GetMutableData().set_dictionary(dictionary); } bool TcpTransportAdapter::Restore() { LOG4CXX_AUTO_TRACE(logger_); bool errors_occurred = false; + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + Json::Value dictionary = accessor.GetData().dictionary(); const Json::Value tcp_adapter_dictionary = - last_state().get_dictionary()["TransportManager"]["TcpAdapter"]; + dictionary["TransportManager"]["TcpAdapter"]; const Json::Value devices_dictionary = tcp_adapter_dictionary["devices"]; - for (Json::Value::const_iterator i = devices_dictionary.begin(); - i != devices_dictionary.end(); - ++i) { - const Json::Value device_dictionary = *i; + for (const auto& tcp_adapter_device : devices_dictionary) { + const Json::Value device_dictionary = tcp_adapter_device; std::string name = device_dictionary["name"].asString(); std::string address_record = device_dictionary["address"].asString(); in_addr_t address = inet_addr(address_record.c_str()); @@ -153,10 +155,8 @@ bool TcpTransportAdapter::Restore() { AddDevice(device); const Json::Value applications_dictionary = device_dictionary["applications"]; - for (Json::Value::const_iterator j = applications_dictionary.begin(); - j != applications_dictionary.end(); - ++j) { - const Json::Value application_dictionary = *j; + for (const auto& application : applications_dictionary) { + const Json::Value application_dictionary = application; std::string port_record = application_dictionary["port"].asString(); int port = atoi(port_record.c_str()); ApplicationHandle app_handle = tcp_device->AddDiscoveredApplication(port); 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..4e057aee63 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 @@ -70,7 +70,7 @@ TransportAdapterImpl::TransportAdapterImpl( DeviceScanner* device_scanner, ServerConnectionFactory* server_connection_factory, ClientConnectionListener* client_connection_listener, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) : listeners_() , initialised_(0) @@ -86,7 +86,7 @@ TransportAdapterImpl::TransportAdapterImpl( device_scanner_(device_scanner) , server_connection_factory_(server_connection_factory) , client_connection_listener_(client_connection_listener) - , last_state_(last_state) + , last_state_wrapper_(last_state_wrapper) , settings_(settings) { } diff --git a/src/components/transport_manager/src/transport_manager_default.cc b/src/components/transport_manager/src/transport_manager_default.cc index 0d58e24b5c..868fcc3f15 100644 --- a/src/components/transport_manager/src/transport_manager_default.cc +++ b/src/components/transport_manager/src/transport_manager_default.cc @@ -57,29 +57,29 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") TransportAdapterFactory::TransportAdapterFactory() { #ifdef BLUETOOTH_SUPPORT - ta_bluetooth_creator_ = [](resumption::LastState& last_state, + ta_bluetooth_creator_ = [](resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) { - return new transport_adapter::BluetoothTransportAdapter(last_state, + return new transport_adapter::BluetoothTransportAdapter(last_state_wrapper, settings); }; #endif ta_tcp_creator_ = [](const uint16_t port, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) { return new transport_adapter::TcpTransportAdapter( - port, last_state, settings); + port, last_state_wrapper, settings); }; #if defined(USB_SUPPORT) - ta_usb_creator_ = [](resumption::LastState& last_state, + ta_usb_creator_ = [](resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) { - return new transport_adapter::UsbAoaAdapter(last_state, settings); + return new transport_adapter::UsbAoaAdapter(last_state_wrapper, settings); }; #endif #if defined(CLOUD_APP_WEBSOCKET_TRANSPORT_SUPPORT) - ta_cloud_creator_ = [](resumption::LastState& last_state, + ta_cloud_creator_ = [](resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) { - return new transport_adapter::CloudWebsocketTransportAdapter(last_state, - settings); + return new transport_adapter::CloudWebsocketTransportAdapter( + last_state_wrapper, settings); }; #endif } @@ -89,9 +89,10 @@ TransportManagerDefault::TransportManagerDefault( const TransportAdapterFactory& ta_factory) : TransportManagerImpl(settings), ta_factory_(ta_factory) {} -int TransportManagerDefault::Init(resumption::LastState& last_state) { +int TransportManagerDefault::Init( + resumption::LastStateWrapperPtr last_state_wrapper) { LOG4CXX_TRACE(logger_, "enter"); - if (E_SUCCESS != TransportManagerImpl::Init(last_state)) { + if (E_SUCCESS != TransportManagerImpl::Init(last_state_wrapper)) { LOG4CXX_TRACE(logger_, "exit with E_TM_IS_NOT_INITIALIZED. Condition: E_SUCCESS != " "TransportManagerImpl::Init()"); @@ -101,7 +102,8 @@ int TransportManagerDefault::Init(resumption::LastState& last_state) { const auto& settings = get_settings(); #if defined(BLUETOOTH_SUPPORT) - auto ta_bluetooth = ta_factory_.ta_bluetooth_creator_(last_state, settings); + auto ta_bluetooth = + ta_factory_.ta_bluetooth_creator_(last_state_wrapper, settings); #ifdef TELEMETRY_MONITOR if (metric_observer_) { ta_bluetooth->SetTelemetryObserver(metric_observer_); @@ -110,8 +112,10 @@ int TransportManagerDefault::Init(resumption::LastState& last_state) { AddTransportAdapter(ta_bluetooth); #endif // BLUETOOTH_SUPPORT - auto ta_tcp = ta_factory_.ta_tcp_creator_( - settings.transport_manager_tcp_adapter_port(), last_state, settings); + auto ta_tcp = + ta_factory_.ta_tcp_creator_(settings.transport_manager_tcp_adapter_port(), + last_state_wrapper, + settings); #ifdef TELEMETRY_MONITOR if (metric_observer_) { ta_tcp->SetTelemetryObserver(metric_observer_); @@ -120,7 +124,7 @@ int TransportManagerDefault::Init(resumption::LastState& last_state) { AddTransportAdapter(ta_tcp); #if defined(USB_SUPPORT) - auto ta_usb = ta_factory_.ta_usb_creator_(last_state, settings); + auto ta_usb = ta_factory_.ta_usb_creator_(last_state_wrapper, settings); #ifdef TELEMETRY_MONITOR if (metric_observer_) { ta_usb->SetTelemetryObserver(metric_observer_); @@ -130,7 +134,7 @@ int TransportManagerDefault::Init(resumption::LastState& last_state) { #endif // USB_SUPPORT #if defined(CLOUD_APP_WEBSOCKET_TRANSPORT_SUPPORT) - auto ta_cloud = ta_factory_.ta_cloud_creator_(last_state, settings); + auto ta_cloud = ta_factory_.ta_cloud_creator_(last_state_wrapper, settings); #ifdef TELEMETRY_MONITOR if (metric_observer_) { ta_cloud->SetTelemetryObserver(metric_observer_); @@ -144,14 +148,14 @@ int TransportManagerDefault::Init(resumption::LastState& last_state) { transport_adapter::IAP2BluetoothEmulationTransportAdapter* iap2_bt_emu_adapter = new transport_adapter::IAP2BluetoothEmulationTransportAdapter( - iap2_bt_emu_port, last_state, settings); + iap2_bt_emu_port, last_state_wrapper, settings); AddTransportAdapter(iap2_bt_emu_adapter); const uint16_t iap2_usb_emu_port = 34567; transport_adapter::IAP2USBEmulationTransportAdapter* iap2_usb_emu_adapter = new transport_adapter::IAP2USBEmulationTransportAdapter( - iap2_usb_emu_port, last_state, settings); + iap2_usb_emu_port, last_state_wrapper, settings); AddTransportAdapter(iap2_usb_emu_adapter); #endif // BUILD_TEST @@ -160,6 +164,10 @@ int TransportManagerDefault::Init(resumption::LastState& last_state) { return E_SUCCESS; } +int TransportManagerDefault::Init(resumption::LastState&) { + return 1; +} + TransportManagerDefault::~TransportManagerDefault() {} } // namespace transport_manager diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc index 07dd35bc2f..c6fd60a185 100644 --- a/src/components/transport_manager/src/transport_manager_impl.cc +++ b/src/components/transport_manager/src/transport_manager_impl.cc @@ -581,8 +581,18 @@ int TransportManagerImpl::SearchDevices() { return transport_adapter_search; } +int TransportManagerImpl::Init( + resumption::LastStateWrapperPtr last_state_wrapper) { + // Last state wrapper required to initialize Transport adapters + UNUSED(last_state_wrapper); + LOG4CXX_TRACE(logger_, "enter"); + is_initialized_ = true; + LOG4CXX_TRACE(logger_, "exit with E_SUCCESS"); + return E_SUCCESS; +} + int TransportManagerImpl::Init(resumption::LastState& last_state) { - // Last state requred to initialize Transport adapters + // Last state required to initialize Transport adapters UNUSED(last_state); LOG4CXX_TRACE(logger_, "enter"); is_initialized_ = true; diff --git a/src/components/transport_manager/src/usb/usb_aoa_adapter.cc b/src/components/transport_manager/src/usb/usb_aoa_adapter.cc index d1e9c64c3b..9ce571eb6c 100644 --- a/src/components/transport_manager/src/usb/usb_aoa_adapter.cc +++ b/src/components/transport_manager/src/usb/usb_aoa_adapter.cc @@ -43,12 +43,12 @@ namespace transport_manager { namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") -UsbAoaAdapter::UsbAoaAdapter(resumption::LastState& last_state, +UsbAoaAdapter::UsbAoaAdapter(resumption::LastStateWrapperPtr last_state_wrapper, const TransportManagerSettings& settings) : TransportAdapterImpl(new UsbDeviceScanner(this, settings), new UsbConnectionFactory(this), NULL, - last_state, + last_state_wrapper, settings) , is_initialised_(false) , usb_handler_(new UsbHandler()) { diff --git a/src/components/transport_manager/test/include/transport_manager/cloud/mock_cloud_websocket_transport_adapter.h b/src/components/transport_manager/test/include/transport_manager/cloud/mock_cloud_websocket_transport_adapter.h index 2d240ab3ff..6e74ae759f 100644 --- a/src/components/transport_manager/test/include/transport_manager/cloud/mock_cloud_websocket_transport_adapter.h +++ b/src/components/transport_manager/test/include/transport_manager/cloud/mock_cloud_websocket_transport_adapter.h @@ -45,9 +45,9 @@ class MockCloudWebsocketTransportAdapter : public CloudWebsocketTransportAdapter { public: MockCloudWebsocketTransportAdapter( - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const transport_manager::TransportManagerSettings& settings) - : CloudWebsocketTransportAdapter(last_state, settings) {} + : CloudWebsocketTransportAdapter(last_state_wrapper, settings) {} MOCK_CONST_METHOD0(GetDeviceType, DeviceType()); MOCK_CONST_METHOD0(Store, void()); MOCK_METHOD0(Restore, bool()); diff --git a/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h b/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h index fb84bce085..dbac183d32 100644 --- a/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h +++ b/src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h @@ -45,9 +45,9 @@ class MockTCPTransportAdapter : public TcpTransportAdapter { public: MockTCPTransportAdapter( uint16_t port, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const transport_manager::TransportManagerSettings& settings) - : TcpTransportAdapter(port, last_state, settings) {} + : TcpTransportAdapter(port, last_state_wrapper, settings) {} MOCK_CONST_METHOD2( FindEstablishedConnection, ConnectionSPtr(const transport_manager::DeviceUID& device_handle, diff --git a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h index 592ed855cc..7b1d720ba2 100644 --- a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h +++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h @@ -58,14 +58,21 @@ class MockTransportAdapterImpl : public TransportAdapterImpl { DeviceScanner* device_scanner, ServerConnectionFactory* server_connection_factory, ClientConnectionListener* client_connection_listener, - resumption::LastState& last_state, + resumption::LastStateWrapperPtr last_state_wrapper, const transport_manager::TransportManagerSettings& settings) : TransportAdapterImpl(device_scanner, server_connection_factory, client_connection_listener, - last_state, + last_state_wrapper, settings) {} + DEPRECATED + MockTransportAdapterImpl(DeviceScanner*, + ServerConnectionFactory*, + ClientConnectionListener*, + resumption::LastState&, + const transport_manager::TransportManagerSettings&); + ConnectionSPtr FindStatedConnection(const DeviceUID& device_handle, const ApplicationHandle& app_handle) { return this->FindEstablishedConnection(device_handle, app_handle); diff --git a/src/components/transport_manager/test/include/transport_manager/usb/mock_usb_aoa_adapter.h b/src/components/transport_manager/test/include/transport_manager/usb/mock_usb_aoa_adapter.h index 230f5ed170..affd6aee47 100644 --- a/src/components/transport_manager/test/include/transport_manager/usb/mock_usb_aoa_adapter.h +++ b/src/components/transport_manager/test/include/transport_manager/usb/mock_usb_aoa_adapter.h @@ -43,9 +43,9 @@ using namespace ::transport_manager::transport_adapter; class MockUsbAoaAdapter : public UsbAoaAdapter { public: - MockUsbAoaAdapter(resumption::LastState& last_state, + MockUsbAoaAdapter(resumption::LastStateWrapperPtr last_state_wrapper, const transport_manager::TransportManagerSettings& settings) - : UsbAoaAdapter(last_state, settings) {} + : UsbAoaAdapter(last_state_wrapper, settings) {} MOCK_CONST_METHOD0(GetDeviceType, DeviceType()); MOCK_CONST_METHOD0(IsInitialised, bool()); MOCK_METHOD1(AddListener, void(TransportAdapterListener* listener)); diff --git a/src/components/transport_manager/test/tcp_transport_adapter_test.cc b/src/components/transport_manager/test/tcp_transport_adapter_test.cc index 0fbdc6d65f..cacdfb6fbd 100644 --- a/src/components/transport_manager/test/tcp_transport_adapter_test.cc +++ b/src/components/transport_manager/test/tcp_transport_adapter_test.cc @@ -34,6 +34,7 @@ #include "gtest/gtest.h" #include "protocol/raw_message.h" #include "resumption/last_state_impl.h" +#include "resumption/last_state_wrapper_impl.h" #include "transport_manager/mock_transport_manager_settings.h" #include "transport_manager/tcp/mock_tcp_transport_adapter.h" #include "transport_manager/transport_adapter/connection.h" @@ -55,9 +56,13 @@ using namespace transport_manager::transport_adapter; class TcpAdapterTest : public ::testing::Test { protected: - TcpAdapterTest() : last_state_("app_storage_folder", "app_info_storage") {} + TcpAdapterTest() { + last_state_wrapper_ = std::make_shared<resumption::LastStateWrapperImpl>( + std::make_shared<resumption::LastStateImpl>("app_storage_folder", + "app_info_storage")); + } MockTransportManagerSettings transport_manager_settings; - resumption::LastStateImpl last_state_; + std::shared_ptr<resumption::LastStateWrapperImpl> last_state_wrapper_; const uint32_t port = 12345; const std::string string_port = "12345"; std::string network_interface = ""; @@ -72,7 +77,7 @@ class TcpAdapterTest : public ::testing::Test { TEST_F(TcpAdapterTest, StoreDataWithOneDeviceAndOneApplication) { // Prepare MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); std::string uniq_id = "unique_device_name"; std::shared_ptr<MockTCPDevice> mockdev = std::make_shared<MockTCPDevice>(port, uniq_id); @@ -96,8 +101,9 @@ TEST_F(TcpAdapterTest, StoreDataWithOneDeviceAndOneApplication) { transport_adapter.CallStore(); // Check that value is saved - Json::Value& tcp_dict = - last_state_.get_dictionary()["TransportManager"]["TcpAdapter"]; + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + const Json::Value dictionary = accessor.GetData().dictionary(); + const Json::Value& tcp_dict = dictionary["TransportManager"]["TcpAdapter"]; ASSERT_TRUE(tcp_dict.isObject()); ASSERT_FALSE(tcp_dict["devices"].isNull()); @@ -112,7 +118,7 @@ TEST_F(TcpAdapterTest, StoreDataWithOneDeviceAndOneApplication) { TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndOneApplication) { // Prepare MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); const uint32_t count_dev = 10; std::shared_ptr<MockTCPDevice> mockdev[count_dev]; std::string uniq_id[count_dev]; @@ -148,8 +154,9 @@ TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndOneApplication) { transport_adapter.CallStore(); // Check that values are saved - Json::Value& tcp_dict = - last_state_.get_dictionary()["TransportManager"]["TcpAdapter"]; + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + const Json::Value dictionary = accessor.GetData().dictionary(); + const Json::Value& tcp_dict = dictionary["TransportManager"]["TcpAdapter"]; ASSERT_TRUE(tcp_dict.isObject()); ASSERT_FALSE(tcp_dict["devices"].isNull()); @@ -166,7 +173,7 @@ TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndOneApplication) { TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndSeveralApplications) { // Prepare MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); const uint32_t count_dev = 10; std::shared_ptr<MockTCPDevice> mockdev[count_dev]; @@ -206,8 +213,9 @@ TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndSeveralApplications) { transport_adapter.CallStore(); // Check that value is saved - Json::Value& tcp_dict = - last_state_.get_dictionary()["TransportManager"]["TcpAdapter"]; + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + const Json::Value dictionary = accessor.GetData().dictionary(); + const Json::Value& tcp_dict = dictionary["TransportManager"]["TcpAdapter"]; ASSERT_TRUE(tcp_dict.isObject()); ASSERT_FALSE(tcp_dict["devices"].isNull()); @@ -225,7 +233,7 @@ TEST_F(TcpAdapterTest, StoreDataWithSeveralDevicesAndSeveralApplications) { TEST_F(TcpAdapterTest, StoreData_ConnectionNotExist_DataNotStored) { // Prepare MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); std::string uniq_id = "unique_device_name"; auto mockdev = std::make_shared<MockTCPDevice>(port, uniq_id); transport_adapter.AddDevice(mockdev); @@ -243,26 +251,32 @@ TEST_F(TcpAdapterTest, StoreData_ConnectionNotExist_DataNotStored) { transport_adapter.CallStore(); // Check that value is not saved - Json::Value& tcp_dict = - last_state_.get_dictionary()["TransportManager"]["TcpAdapter"]["devices"]; + resumption::LastStateAccessor accessor = last_state_wrapper_->get_accessor(); + const Json::Value dictionary = accessor.GetData().dictionary(); + const Json::Value& tcp_dict = + dictionary["TransportManager"]["TcpAdapter"]["devices"]; ASSERT_TRUE(tcp_dict.isNull()); } TEST_F(TcpAdapterTest, RestoreData_DataNotStored) { - Json::Value& tcp_adapter_dictionary = - last_state_.get_dictionary()["TransportManager"]["TcpAdapter"]; - - tcp_adapter_dictionary = Json::Value(); + { + resumption::LastStateAccessor accessor = + last_state_wrapper_->get_accessor(); + Json::Value dictionary = accessor.GetData().dictionary(); + Json::Value& tcp_dictionary = dictionary["TransportManager"]["TcpAdapter"]; + tcp_dictionary = Json::Value(); + accessor.GetMutableData().set_dictionary(dictionary); + } MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); EXPECT_CALL(transport_adapter, Connect(_, _)).Times(0); EXPECT_TRUE(transport_adapter.CallRestore()); } TEST_F(TcpAdapterTest, StoreDataWithOneDevice_RestoreData) { MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); std::string uniq_id = "unique_device_name"; std::shared_ptr<MockTCPDevice> mockdev = std::make_shared<MockTCPDevice>(port, uniq_id); @@ -297,7 +311,7 @@ TEST_F(TcpAdapterTest, StoreDataWithOneDevice_RestoreData) { TEST_F(TcpAdapterTest, StoreDataWithSeveralDevices_RestoreData) { MockTCPTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); const uint32_t count_dev = 10; std::shared_ptr<MockTCPDevice> mockdev[count_dev]; @@ -351,7 +365,7 @@ TEST_F(TcpAdapterTest, NotifyTransportConfigUpdated) { MockTransportAdapterListener mock_adapter_listener; TcpTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + port, last_state_wrapper_, transport_manager_settings); transport_adapter.AddListener(&mock_adapter_listener); TransportConfig config; @@ -367,8 +381,8 @@ TEST_F(TcpAdapterTest, NotifyTransportConfigUpdated) { } TEST_F(TcpAdapterTest, GetTransportConfiguration) { - TcpTransportAdapter transport_adapter( - port, last_state_, transport_manager_settings); + MockTCPTransportAdapter transport_adapter( + port, last_state_wrapper_, transport_manager_settings); TransportConfig config; config[tc_enabled] = std::string("true"); diff --git a/src/components/transport_manager/test/transport_adapter_test.cc b/src/components/transport_manager/test/transport_adapter_test.cc index 025c86f3ac..1773ecfb67 100644 --- a/src/components/transport_manager/test/transport_adapter_test.cc +++ b/src/components/transport_manager/test/transport_adapter_test.cc @@ -51,6 +51,7 @@ #include "config_profile/profile.h" #include "resumption/last_state_impl.h" +#include "resumption/last_state_wrapper_impl.h" namespace test { namespace components { @@ -65,8 +66,11 @@ using namespace ::protocol_handler; class TransportAdapterTest : public ::testing::Test { protected: - TransportAdapterTest() - : last_state_("app_storage_folder", "app_info_storage") {} + TransportAdapterTest() { + last_state_wrapper_ = std::make_shared<resumption::LastStateWrapperImpl>( + std::make_shared<resumption::LastStateImpl>("app_storage_folder", + "app_info_storage")); + } void SetUp() OVERRIDE { dev_id = "device_id"; @@ -82,7 +86,7 @@ class TransportAdapterTest : public ::testing::Test { } NiceMock<MockTransportManagerSettings> transport_manager_settings; - resumption::LastStateImpl last_state_; + std::shared_ptr<resumption::LastStateWrapperImpl> last_state_wrapper_; std::string dev_id; std::string uniq_id; int app_handle; @@ -228,7 +232,7 @@ TEST_F(TransportAdapterTest, Init) { MockTransportAdapterImpl transport_adapter(dev_mock, serverMock, clientMock, - last_state_, + last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -247,8 +251,11 @@ TEST_F(TransportAdapterTest, Init) { TEST_F(TransportAdapterTest, SearchDevices_WithoutScanner) { MockClientConnectionListener* clientMock = new MockClientConnectionListener(); MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); - MockTransportAdapterImpl transport_adapter( - NULL, serverMock, clientMock, last_state_, transport_manager_settings); + MockTransportAdapterImpl transport_adapter(NULL, + serverMock, + clientMock, + last_state_wrapper_, + transport_manager_settings); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -264,7 +271,7 @@ TEST_F(TransportAdapterTest, SearchDevices_WithoutScanner) { TEST_F(TransportAdapterTest, SearchDevices_DeviceNotInitialized) { MockDeviceScanner* dev_mock = new MockDeviceScanner(); MockTransportAdapterImpl transport_adapter( - dev_mock, NULL, NULL, last_state_, transport_manager_settings); + dev_mock, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -280,7 +287,7 @@ TEST_F(TransportAdapterTest, SearchDevices_DeviceNotInitialized) { TEST_F(TransportAdapterTest, SearchDevices_DeviceInitialized) { MockDeviceScanner* dev_mock = new MockDeviceScanner(); MockTransportAdapterImpl transport_adapter( - dev_mock, NULL, NULL, last_state_, transport_manager_settings); + dev_mock, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -296,7 +303,7 @@ TEST_F(TransportAdapterTest, SearchDevices_DeviceInitialized) { TEST_F(TransportAdapterTest, SearchDeviceDone_DeviceExisting) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -313,7 +320,7 @@ TEST_F(TransportAdapterTest, SearchDeviceDone_DeviceExisting) { TEST_F(TransportAdapterTest, SearchDeviceFailed) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -328,7 +335,7 @@ TEST_F(TransportAdapterTest, SearchDeviceFailed) { TEST_F(TransportAdapterTest, AddDevice) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -346,7 +353,7 @@ TEST_F(TransportAdapterTest, AddDevice) { TEST_F(TransportAdapterTest, Connect_ServerNotSupported) { MockClientConnectionListener* clientMock = new MockClientConnectionListener(); MockTransportAdapterImpl transport_adapter( - NULL, NULL, clientMock, last_state_, transport_manager_settings); + NULL, NULL, clientMock, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*clientMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -364,7 +371,7 @@ TEST_F(TransportAdapterTest, Connect_ServerNotSupported) { TEST_F(TransportAdapterTest, Connect_ServerNotInitialized) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -382,7 +389,7 @@ TEST_F(TransportAdapterTest, Connect_ServerNotInitialized) { TEST_F(TransportAdapterTest, Connect_Success) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -401,7 +408,7 @@ TEST_F(TransportAdapterTest, Connect_Success) { TEST_F(TransportAdapterTest, Connect_DeviceAddedTwice) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -424,7 +431,7 @@ TEST_F(TransportAdapterTest, Connect_DeviceAddedTwice) { TEST_F(TransportAdapterTest, ConnectDevice_ServerNotAdded_DeviceAdded) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -450,7 +457,7 @@ TEST_F(TransportAdapterTest, ConnectDevice_ServerNotAdded_DeviceAdded) { TEST_F(TransportAdapterTest, ConnectDevice_DeviceNotAdded) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); @@ -471,7 +478,7 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceNotAdded) { TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -504,7 +511,7 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded) { TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded_ConnectFailedRetry) { MockServerConnectionFactory* server_mock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, server_mock, NULL, last_state_, transport_manager_settings); + NULL, server_mock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*server_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -541,7 +548,7 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAdded_ConnectFailedRetry) { TEST_F(TransportAdapterTest, ConnectDevice_DeviceAddedTwice) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -585,7 +592,7 @@ TEST_F(TransportAdapterTest, ConnectDevice_DeviceAddedTwice) { TEST_F(TransportAdapterTest, Disconnect_ConnectDoneSuccess) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -618,7 +625,7 @@ TEST_F(TransportAdapterTest, Disconnect_ConnectDoneSuccess) { TEST_F(TransportAdapterTest, FindPending) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -661,7 +668,7 @@ TEST_F(TransportAdapterTest, Pending_Connect_Disconnect_ConnectDoneSuccess_PendingDeviceAdded) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -754,7 +761,7 @@ TEST_F(TransportAdapterTest, TEST_F(TransportAdapterTest, WebsocketEndpointParsing_SUCCESS) { std::shared_ptr<CloudWebsocketTransportAdapter> cta = std::make_shared<CloudWebsocketTransportAdapter>( - last_state_, transport_manager_settings); + last_state_wrapper_, transport_manager_settings); for (auto protocol : kWebsocketProtocols) { for (auto endpoint : kValidTestEndpoints) { @@ -782,7 +789,7 @@ TEST_F(TransportAdapterTest, WebsocketEndpointParsing_SUCCESS) { TEST_F(TransportAdapterTest, WebsocketEndpointParsing_INVALID) { std::shared_ptr<CloudWebsocketTransportAdapter> cta = std::make_shared<CloudWebsocketTransportAdapter>( - last_state_, transport_manager_settings); + last_state_wrapper_, transport_manager_settings); for (auto protocol : kWebsocketProtocols) { for (auto endpoint : kInvalidTestEndpoints) { @@ -802,7 +809,7 @@ TEST_F(TransportAdapterTest, WebsocketEndpointParsing_INVALID) { TEST_F(TransportAdapterTest, WebsocketEndpointParsing_INCORRECT) { std::shared_ptr<CloudWebsocketTransportAdapter> cta = std::make_shared<CloudWebsocketTransportAdapter>( - last_state_, transport_manager_settings); + last_state_wrapper_, transport_manager_settings); for (auto protocol : kWebsocketProtocols) { for (auto endpoint : kIncorrectTestEndpoints) { @@ -832,7 +839,7 @@ TEST_F(TransportAdapterTest, WebsocketEndpointParsing_INCORRECT) { TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -876,7 +883,7 @@ TEST_F(TransportAdapterTest, DisconnectDevice_DeviceAddedConnectionCreated) { TEST_F(TransportAdapterTest, DeviceDisconnected) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -926,7 +933,7 @@ TEST_F(TransportAdapterTest, DeviceDisconnected) { TEST_F(TransportAdapterTest, AbortedConnectSuccess) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -952,8 +959,11 @@ TEST_F(TransportAdapterTest, AbortedConnectSuccess) { TEST_F(TransportAdapterTest, SendData) { MockDeviceScanner* dev_mock = new MockDeviceScanner(); MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); - MockTransportAdapterImpl transport_adapter( - dev_mock, serverMock, NULL, last_state_, transport_manager_settings); + MockTransportAdapterImpl transport_adapter(dev_mock, + serverMock, + NULL, + last_state_wrapper_, + transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -995,7 +1005,7 @@ TEST_F(TransportAdapterTest, SendData_ConnectionNotEstablished) { MockTransportAdapterImpl transport_adapter(dev_mock, serverMock, clientMock, - last_state_, + last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); @@ -1032,8 +1042,11 @@ TEST_F(TransportAdapterTest, SendData_ConnectionNotEstablished) { TEST_F(TransportAdapterTest, StartClientListening_ClientNotInitialized) { MockDeviceScanner* dev_mock = new MockDeviceScanner(); MockClientConnectionListener* clientMock = new MockClientConnectionListener(); - MockTransportAdapterImpl transport_adapter( - dev_mock, NULL, clientMock, last_state_, transport_manager_settings); + MockTransportAdapterImpl transport_adapter(dev_mock, + NULL, + clientMock, + last_state_wrapper_, + transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -1055,8 +1068,11 @@ TEST_F(TransportAdapterTest, StartClientListening_ClientNotInitialized) { TEST_F(TransportAdapterTest, StartClientListening) { MockDeviceScanner* dev_mock = new MockDeviceScanner(); MockClientConnectionListener* clientMock = new MockClientConnectionListener(); - MockTransportAdapterImpl transport_adapter( - dev_mock, NULL, clientMock, last_state_, transport_manager_settings); + MockTransportAdapterImpl transport_adapter(dev_mock, + NULL, + clientMock, + last_state_wrapper_, + transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*dev_mock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -1083,7 +1099,7 @@ TEST_F(TransportAdapterTest, StopClientListening_Success) { MockTransportAdapterImpl transport_adapter(dev_mock, serverMock, clientMock, - last_state_, + last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); @@ -1119,7 +1135,7 @@ TEST_F(TransportAdapterTest, FindNewApplicationsRequest) { MockTransportAdapterImpl transport_adapter(dev_mock, serverMock, clientMock, - last_state_, + last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); @@ -1142,7 +1158,7 @@ TEST_F(TransportAdapterTest, FindNewApplicationsRequest) { TEST_F(TransportAdapterTest, GetDeviceAndApplicationLists) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -1167,7 +1183,7 @@ TEST_F(TransportAdapterTest, GetDeviceAndApplicationLists) { TEST_F(TransportAdapterTest, FindEstablishedConnection) { MockServerConnectionFactory* serverMock = new MockServerConnectionFactory(); MockTransportAdapterImpl transport_adapter( - NULL, serverMock, NULL, last_state_, transport_manager_settings); + NULL, serverMock, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(*serverMock, Init()).WillOnce(Return(TransportAdapter::OK)); @@ -1198,7 +1214,7 @@ TEST_F(TransportAdapterTest, RunAppOnDevice_NoDeviseWithAskedId_UNSUCCESS) { const std::string bundle_id = "test_bundle_id"; MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); std::shared_ptr<MockDevice> mock_device = @@ -1218,7 +1234,7 @@ TEST_F(TransportAdapterTest, RunAppOnDevice_DeviseWithAskedIdWasFound_SUCCESS) { const std::string device_uid = "test_device_uid"; MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); std::shared_ptr<MockDevice> mock_device = @@ -1235,7 +1251,7 @@ TEST_F(TransportAdapterTest, RunAppOnDevice_DeviseWithAskedIdWasFound_SUCCESS) { TEST_F(TransportAdapterTest, StopDevice) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -1250,7 +1266,7 @@ TEST_F(TransportAdapterTest, StopDevice) { TEST_F(TransportAdapterTest, TransportConfigUpdated) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); @@ -1269,7 +1285,7 @@ TEST_F(TransportAdapterTest, TransportConfigUpdated) { TEST_F(TransportAdapterTest, GetTransportConfigration) { MockTransportAdapterImpl transport_adapter( - NULL, NULL, NULL, last_state_, transport_manager_settings); + NULL, NULL, NULL, last_state_wrapper_, transport_manager_settings); SetDefaultExpectations(transport_adapter); EXPECT_CALL(transport_adapter, Restore()).WillOnce(Return(true)); transport_adapter.Init(); diff --git a/src/components/transport_manager/test/transport_manager_default_test.cc b/src/components/transport_manager/test/transport_manager_default_test.cc index 8a7f95c74b..bedc1634cc 100644 --- a/src/components/transport_manager/test/transport_manager_default_test.cc +++ b/src/components/transport_manager/test/transport_manager_default_test.cc @@ -32,6 +32,7 @@ #include "transport_manager/transport_manager_default.h" #include "gtest/gtest.h" +#include "resumption/last_state_wrapper_impl.h" #include "resumption/mock_last_state.h" #include "transport_manager/bt/mock_bluetooth_transport_adapter.h" #include "transport_manager/cloud/mock_cloud_websocket_transport_adapter.h" @@ -86,10 +87,13 @@ class TestTransportManagerDefault : public ::testing::Test { public: TestTransportManagerDefault() : transport_manager_settings_() + , mock_last_state_(std::make_shared<MockLastState>()) , unique_tcp_dev_name_("unique_tcp_device_name") , dev_id_("device_id") , tcp_adapter_port_(1u) - , network_interface_("test_iface") {} + , network_interface_("test_iface") + , last_state_wrapper_(std::make_shared<resumption::LastStateWrapperImpl>( + mock_last_state_)) {} void SetUp() OVERRIDE { EXPECT_CALL(transport_manager_settings_, @@ -100,43 +104,45 @@ class TestTransportManagerDefault : public ::testing::Test { // to be able to check related function calls mock_bt_ta_ = new MockBluetoothTransportAdapter(); mock_tcp_ta_ = new MockTCPTransportAdapter( - tcp_adapter_port_, mock_last_state_, transport_manager_settings_); + tcp_adapter_port_, last_state_wrapper_, transport_manager_settings_); mock_usb_aoa_ta_ = - new MockUsbAoaAdapter(mock_last_state_, transport_manager_settings_); + new MockUsbAoaAdapter(last_state_wrapper_, transport_manager_settings_); mock_cloud_websocket_ta_ = new MockCloudWebsocketTransportAdapter( - mock_last_state_, transport_manager_settings_); + last_state_wrapper_, transport_manager_settings_); TransportAdapterFactory ta_factory; #ifdef BLUETOOTH_SUPPORT ta_factory.ta_bluetooth_creator_ = - [&](resumption::LastState& last_state, + [&](resumption::LastStateWrapperPtr& last_state_wrapper, const TransportManagerSettings& settings) { - UNUSED(last_state); + UNUSED(last_state_wrapper); UNUSED(settings); return mock_bt_ta_; }; #endif - ta_factory.ta_tcp_creator_ = [&](const uint16_t port, - resumption::LastState& last_state, - const TransportManagerSettings& settings) { - UNUSED(port); - UNUSED(last_state); - UNUSED(settings); - return mock_tcp_ta_; - }; + ta_factory.ta_tcp_creator_ = + [&](const uint16_t port, + resumption::LastStateWrapperPtr& last_state_wrapper, + const TransportManagerSettings& settings) { + UNUSED(port); + UNUSED(last_state_wrapper); + UNUSED(settings); + return mock_tcp_ta_; + }; #if defined(USB_SUPPORT) - ta_factory.ta_usb_creator_ = [&](resumption::LastState& last_state, - const TransportManagerSettings& settings) { - UNUSED(last_state); - UNUSED(settings); - return mock_usb_aoa_ta_; - }; + ta_factory.ta_usb_creator_ = + [&](resumption::LastStateWrapperPtr& last_state_wrapper, + const TransportManagerSettings& settings) { + UNUSED(last_state_wrapper); + UNUSED(settings); + return mock_usb_aoa_ta_; + }; #endif #if defined(CLOUD_APP_WEBSOCKET_TRANSPORT_SUPPORT) ta_factory.ta_cloud_creator_ = - [&](resumption::LastState& last_state, + [&](resumption::LastStateWrapperPtr& last_state_wrapper, const TransportManagerSettings& settings) { - UNUSED(last_state); + UNUSED(last_state_wrapper); UNUSED(settings); return mock_cloud_websocket_ta_; }; @@ -154,7 +160,7 @@ class TestTransportManagerDefault : public ::testing::Test { protected: MockTransportManagerSettings transport_manager_settings_; std::unique_ptr<TransportManagerDefault> transport_manager_; - NiceMock<MockLastState> mock_last_state_; + std::shared_ptr<MockLastState> mock_last_state_; Json::Value custom_dictionary_; const std::string unique_tcp_dev_name_; const std::string dev_id_; @@ -166,6 +172,7 @@ class TestTransportManagerDefault : public ::testing::Test { MockTCPTransportAdapter* mock_tcp_ta_; MockUsbAoaAdapter* mock_usb_aoa_ta_; MockCloudWebsocketTransportAdapter* mock_cloud_websocket_ta_; + std::shared_ptr<resumption::LastStateWrapperImpl> last_state_wrapper_; }; void TestTransportManagerDefault::ExpectationsSettings_TM( @@ -185,17 +192,16 @@ void TestTransportManagerDefault::ExpectationsSettings_TM( custom_dictionary_[kTransportManager][kTcpAdapter][kDevices][0] = tcp_device; custom_dictionary_[kTransportManager][kBluetoothAdapter][kDevices][0] = bluetooth_device; - ON_CALL(mock_last_state_, get_dictionary()) + ON_CALL(*mock_last_state_, dictionary()) + .WillByDefault(Return(custom_dictionary_)); + ON_CALL(*mock_last_state_, get_dictionary()) .WillByDefault(ReturnRef(custom_dictionary_)); - EXPECT_CALL(transport_manager_settings_, use_last_state()) .WillRepeatedly(Return(use_last_state)); EXPECT_CALL(transport_manager_settings_, transport_manager_tcp_adapter_port()) .WillRepeatedly(Return(tcp_adapter_port_)); - EXPECT_CALL(transport_manager_settings_, bluetooth_uuid()) .WillRepeatedly(Return(kBTUUID.data())); - EXPECT_CALL(transport_manager_settings_, aoa_filter_manufacturer()) .WillRepeatedly(ReturnRef(dummy_parameter_)); EXPECT_CALL(transport_manager_settings_, aoa_filter_model_name()) @@ -271,7 +277,7 @@ TEST_F(TestTransportManagerDefault, Init_LastStateNotUsed) { ExpectationsCloudWebsocket_TA(); // Act - transport_manager_->Init(mock_last_state_); + transport_manager_->Init(last_state_wrapper_); transport_manager_->Stop(); } @@ -285,7 +291,7 @@ TEST_F(TestTransportManagerDefault, Init_LastStateUsed) { ExpectationsCloudWebsocket_TA(); // Act - transport_manager_->Init(mock_last_state_); + transport_manager_->Init(last_state_wrapper_); transport_manager_->Stop(); } diff --git a/src/components/transport_manager/test/transport_manager_impl_test.cc b/src/components/transport_manager/test/transport_manager_impl_test.cc index ac9b801dbd..db4813be9a 100644 --- a/src/components/transport_manager/test/transport_manager_impl_test.cc +++ b/src/components/transport_manager/test/transport_manager_impl_test.cc @@ -35,6 +35,7 @@ #include "gtest/gtest.h" #include "protocol/raw_message.h" #include "resumption/last_state_impl.h" +#include "resumption/last_state_wrapper_impl.h" #include "transport_manager/common.h" #include "transport_manager/mock_telemetry_observer.h" #include "transport_manager/mock_transport_manager_impl.h" @@ -79,9 +80,11 @@ class TransportManagerImplTest : public ::testing::Test { device_handle_, mac_address_, device_name_, connection_type_) {} void SetUp() OVERRIDE { - resumption::LastStateImpl last_state_("app_storage_folder", - "app_info_storage"); - tm_.Init(last_state_); + std::shared_ptr<resumption::LastStateWrapperImpl> wrapper = + std::make_shared<resumption::LastStateWrapperImpl>( + std::make_shared<resumption::LastStateImpl>("app_storage_folder", + "app_info_storage")); + tm_.Init(wrapper); mock_adapter_ = new MockTransportAdapter(); tm_listener_ = std::make_shared<MockTransportManagerListener>(); diff --git a/src/components/transport_manager/test/websocket_connection_test.cc b/src/components/transport_manager/test/websocket_connection_test.cc index 6f6baa82fd..a7ddb820a0 100644 --- a/src/components/transport_manager/test/websocket_connection_test.cc +++ b/src/components/transport_manager/test/websocket_connection_test.cc @@ -32,6 +32,7 @@ #include "gtest/gtest.h" #include "resumption/last_state_impl.h" +#include "resumption/last_state_wrapper_impl.h" #include "transport_manager/cloud/cloud_websocket_transport_adapter.h" #include "transport_manager/cloud/sample_websocket_server.h" #include "transport_manager/cloud/websocket_client_connection.h" @@ -99,7 +100,9 @@ class WebsocketConnectionTest : public ::testing::Test { protected: WebsocketConnectionTest() - : last_state_("app_storage_folder", "app_info_storage") {} + : last_state_(std::make_shared<resumption::LastStateWrapperImpl>( + std::make_shared<resumption::LastStateImpl>("app_storage_folder", + "app_info_storage"))) {} ~WebsocketConnectionTest() {} @@ -109,7 +112,7 @@ class WebsocketConnectionTest : public ::testing::Test { } NiceMock<MockTransportManagerSettings> transport_manager_settings; - resumption::LastStateImpl last_state_; + resumption::LastStateWrapperPtr last_state_; std::string dev_id; std::string uniq_id; std::shared_ptr<websocket::WSSession> ws_session; |