summaryrefslogtreecommitdiff
path: root/src/components/transport_manager
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/transport_manager')
-rw-r--r--src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h7
-rw-r--r--src/components/transport_manager/include/transport_manager/cloud/cloud_device.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/cloud/websocket_client_connection.h10
-rw-r--r--src/components/transport_manager/include/transport_manager/iap2_emulation/iap2_transport_adapter.h6
-rw-r--r--src/components/transport_manager/include/transport_manager/tcp/network_interface_listener_impl.h4
-rw-r--r--src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h6
-rw-r--r--src/components/transport_manager/include/transport_manager/tcp/tcp_device.h10
-rw-r--r--src/components/transport_manager/include/transport_manager/telemetry_observer.h4
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h12
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h6
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h16
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_impl.h23
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h6
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_manager_default.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/transport_manager_impl.h82
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/common.h4
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h2
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h4
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h10
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc2
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_device.cc4
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc30
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc10
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc19
-rw-r--r--src/components/transport_manager/src/cloud/cloud_device.cc2
-rw-r--r--src/components/transport_manager/src/cloud/cloud_websocket_connection_factory.cc2
-rw-r--r--src/components/transport_manager/src/cloud/websocket_client_connection.cc14
-rw-r--r--src/components/transport_manager/src/iap2_emulation/iap2_transport_adapter.cc12
-rw-r--r--src/components/transport_manager/src/tcp/platform_specific/linux/platform_specific_network_interface_listener.cc16
-rw-r--r--src/components/transport_manager/src/tcp/tcp_client_listener.cc86
-rw-r--r--src/components/transport_manager/src/tcp/tcp_connection_factory.cc8
-rw-r--r--src/components/transport_manager/src/tcp/tcp_device.cc8
-rw-r--r--src/components/transport_manager/src/tcp/tcp_server_originated_socket_connection.cc6
-rw-r--r--src/components/transport_manager/src/tcp/tcp_transport_adapter.cc6
-rw-r--r--src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc14
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc125
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc2
-rw-r--r--src/components/transport_manager/src/transport_manager_impl.cc119
-rw-r--r--src/components/transport_manager/src/usb/libusb/platform_usb_device.cc4
-rw-r--r--src/components/transport_manager/src/usb/libusb/usb_connection.cc4
-rw-r--r--src/components/transport_manager/src/usb/libusb/usb_handler.cc18
-rw-r--r--src/components/transport_manager/src/usb/qnx/platform_usb_device.cc4
-rw-r--r--src/components/transport_manager/src/usb/qnx/usb_connection.cc4
-rw-r--r--src/components/transport_manager/src/usb/qnx/usb_handler.cc8
-rw-r--r--src/components/transport_manager/src/usb/usb_aoa_adapter.cc6
-rw-r--r--src/components/transport_manager/src/usb/usb_connection_factory.cc2
-rw-r--r--src/components/transport_manager/src/usb/usb_device_scanner.cc45
-rw-r--r--src/components/transport_manager/test/include/transport_manager/cloud/sample_websocket_server.h2
-rw-r--r--src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h4
-rw-r--r--src/components/transport_manager/test/include/transport_manager/mock_transport_manager_listener.h4
-rw-r--r--src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h2
-rw-r--r--src/components/transport_manager/test/include/transport_manager/tcp/mock_tcp_transport_adapter.h17
-rw-r--r--src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_client_connection_listener.h6
-rw-r--r--src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_transport_adapter_impl.h18
-rw-r--r--src/components/transport_manager/test/network_interface_listener_test.cc4
-rw-r--r--src/components/transport_manager/test/platform_specific/linux/linux_network_interface_listener_test.cc59
-rw-r--r--src/components/transport_manager/test/sample_websocket_server.cc2
-rw-r--r--src/components/transport_manager/test/tcp_client_listener_test.cc36
-rw-r--r--src/components/transport_manager/test/tcp_device_test.cc2
-rw-r--r--src/components/transport_manager/test/tcp_transport_adapter_test.cc14
-rw-r--r--src/components/transport_manager/test/transport_adapter_listener_test.cc13
-rw-r--r--src/components/transport_manager/test/transport_adapter_test.cc63
-rw-r--r--src/components/transport_manager/test/transport_manager_default_test.cc45
-rw-r--r--src/components/transport_manager/test/transport_manager_impl_test.cc65
-rw-r--r--src/components/transport_manager/test/websocket_connection_test.cc2
71 files changed, 690 insertions, 476 deletions
diff --git a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h
index dc38a971f5..768d9ebb54 100644
--- a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h
+++ b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h
@@ -39,9 +39,9 @@
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>
+#include <bluetooth/rfcomm.h>
#include <bluetooth/sdp.h>
#include <bluetooth/sdp_lib.h>
-#include <bluetooth/rfcomm.h>
#include "transport_manager/transport_adapter/device_scanner.h"
#include "utils/conditional_variable.h"
@@ -70,6 +70,11 @@ class BluetoothDeviceScanner : public DeviceScanner {
BluetoothDeviceScanner(TransportAdapterController* controller,
bool auto_repeat_search,
int repeat_search_pause_sec);
+
+ BluetoothDeviceScanner(TransportAdapterController* controller,
+ bool auto_repeat_search,
+ int repeat_search_pause_sec,
+ const uint8_t* smart_device_link_service_uuid_data);
/**
* @brief Destructor.
*/
diff --git a/src/components/transport_manager/include/transport_manager/cloud/cloud_device.h b/src/components/transport_manager/include/transport_manager/cloud/cloud_device.h
index 9c25be2a3e..15d23bba7f 100644
--- a/src/components/transport_manager/include/transport_manager/cloud/cloud_device.h
+++ b/src/components/transport_manager/include/transport_manager/cloud/cloud_device.h
@@ -55,7 +55,7 @@ class CloudDevice : public Device {
public:
CloudDevice(std::string& host, std::string& port, std::string& name);
- CloudDevice(CloudAppEndpoint endpoint, std::string& name);
+ CloudDevice(CloudAppEndpoint& endpoint, std::string& name);
virtual const std::string& GetHost() const;
diff --git a/src/components/transport_manager/include/transport_manager/cloud/websocket_client_connection.h b/src/components/transport_manager/include/transport_manager/cloud/websocket_client_connection.h
index a726524af2..76c8ca73cd 100644
--- a/src/components/transport_manager/include/transport_manager/cloud/websocket_client_connection.h
+++ b/src/components/transport_manager/include/transport_manager/cloud/websocket_client_connection.h
@@ -36,11 +36,11 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_CLOUD_WEBSOCKET_CLIENT_CONNECTION_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_CLOUD_WEBSOCKET_CLIENT_CONNECTION_H_
-#include <boost/beast/core.hpp>
-#include <boost/beast/websocket.hpp>
#include <boost/asio/connect.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/thread_pool.hpp>
+#include <boost/beast/core.hpp>
+#include <boost/beast/websocket.hpp>
#ifdef ENABLE_SECURITY
#include <boost/asio/ssl/stream.hpp>
#include <boost/beast/websocket/ssl.hpp>
@@ -51,11 +51,11 @@
#include <memory>
#include <string>
#include <thread>
-#include "transport_manager/transport_adapter/connection.h"
#include "transport_manager/cloud/cloud_websocket_transport_adapter.h"
-#include "utils/threads/thread.h"
-#include "utils/threads/message_loop_thread.h"
+#include "transport_manager/transport_adapter/connection.h"
#include "utils/message_queue.h"
+#include "utils/threads/message_loop_thread.h"
+#include "utils/threads/thread.h"
namespace websocket =
boost::beast::websocket; // from <boost/beast/websocket.hpp>
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 e53a472bcb..a802a64afa 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,9 +33,9 @@
#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 "transport_manager/tcp/tcp_transport_adapter.h"
#include "transport_manager/transport_manager_settings.h"
-#include "resumption/last_state.h"
#include "utils/macro.h"
#include "utils/threads/thread_delegate.h"
@@ -108,8 +108,8 @@ class IAP2USBEmulationTransportAdapter : public TcpTransportAdapter {
const TransportManagerSettings& settings);
/**
- * Destructor
- */
+ * Destructor
+ */
~IAP2USBEmulationTransportAdapter();
/**
diff --git a/src/components/transport_manager/include/transport_manager/tcp/network_interface_listener_impl.h b/src/components/transport_manager/include/transport_manager/tcp/network_interface_listener_impl.h
index 159b5ff21d..272b28b6b2 100644
--- a/src/components/transport_manager/include/transport_manager/tcp/network_interface_listener_impl.h
+++ b/src/components/transport_manager/include/transport_manager/tcp/network_interface_listener_impl.h
@@ -1,11 +1,11 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_NETWORK_INTERFACE_LISTENER_IMPL_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_NETWORK_INTERFACE_LISTENER_IMPL_H_
-#include <string>
#include <memory>
+#include <string>
-#include "utils/macro.h"
#include "transport_manager/tcp/network_interface_listener.h"
+#include "utils/macro.h"
namespace transport_manager {
namespace transport_adapter {
diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
index 0f9529d8d8..f033d35bf7 100644
--- a/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
+++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
@@ -36,9 +36,9 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CLIENT_LISTENER_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CLIENT_LISTENER_H_
+#include "transport_manager/transport_adapter/client_connection_listener.h"
#include "utils/lock.h"
#include "utils/threads/thread_delegate.h"
-#include "transport_manager/transport_adapter/client_connection_listener.h"
class Thread;
struct in_addr;
@@ -108,6 +108,10 @@ class TcpClientListener : public ClientConnectionListener {
*/
virtual TransportAdapter::Error StopListening();
+ TransportAdapter::Error SuspendListening() OVERRIDE;
+
+ TransportAdapter::Error ResumeListening() OVERRIDE;
+
/**
* @brief Called from NetworkInterfaceListener when IP address of the network
* interface is changed.
diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h
index 7aa0b72687..6e7a306879 100644
--- a/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h
+++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_device.h
@@ -36,19 +36,19 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_DEVICE_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_DEVICE_H_
-#include <memory.h>
-#include <signal.h>
-#include <errno.h>
#include <arpa/inet.h>
+#include <errno.h>
+#include <memory.h>
#include <netinet/in.h>
-#include <sys/types.h>
+#include <signal.h>
#include <sys/socket.h>
+#include <sys/types.h>
#include <map>
#include <string>
-#include "utils/lock.h"
#include "transport_manager/transport_adapter/device.h"
+#include "utils/lock.h"
namespace transport_manager {
namespace transport_adapter {
diff --git a/src/components/transport_manager/include/transport_manager/telemetry_observer.h b/src/components/transport_manager/include/transport_manager/telemetry_observer.h
index a38255966b..b4f321d23f 100644
--- a/src/components/transport_manager/include/transport_manager/telemetry_observer.h
+++ b/src/components/transport_manager/include/transport_manager/telemetry_observer.h
@@ -33,8 +33,8 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TELEMETRY_OBSERVER_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TELEMETRY_OBSERVER_H_
-#include "transport_manager/common.h"
#include "protocol/raw_message.h"
+#include "transport_manager/common.h"
#include "utils/date_time.h"
namespace transport_manager {
@@ -51,5 +51,5 @@ class TMTelemetryObserver {
virtual ~TMTelemetryObserver() {}
};
-} // transport_manager
+} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TELEMETRY_OBSERVER_H_
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h b/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h
index f905e11c43..e49a355e53 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h
@@ -76,6 +76,18 @@ class ClientConnectionListener {
virtual TransportAdapter::Error StopListening() = 0;
/**
+ * @brief Suspends current listening thread
+ * @return Error information about possible reason of failure.
+ */
+ virtual TransportAdapter::Error SuspendListening() = 0;
+
+ /**
+ * @brief Resumes current listening thread
+ * @return Error information about possible reason of failure.
+ */
+ virtual TransportAdapter::Error ResumeListening() = 0;
+
+ /**
* @brief Destructor.
*/
virtual ~ClientConnectionListener() {}
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h b/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h
index f1c679c123..11123ceb1c 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h
@@ -38,11 +38,11 @@
#include <poll.h>
#include <queue>
-#include "transport_manager/transport_adapter/connection.h"
-#include "protocol/common.h"
#include <atomic>
-#include "utils/threads/thread_delegate.h"
+#include "protocol/common.h"
+#include "transport_manager/transport_adapter/connection.h"
#include "utils/lock.h"
+#include "utils/threads/thread_delegate.h"
using ::transport_manager::transport_adapter::Connection;
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h
index 7a0a37758c..72a67a3087 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h
@@ -33,9 +33,9 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_CONTROLLER_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_CONTROLLER_H_
-#include "transport_manager/transport_adapter/device.h"
-#include "transport_manager/transport_adapter/connection.h"
#include "protocol/common.h"
+#include "transport_manager/transport_adapter/connection.h"
+#include "transport_manager/transport_adapter/device.h"
namespace transport_manager {
namespace transport_adapter {
@@ -174,12 +174,12 @@ class TransportAdapterController {
const ApplicationHandle& app_handle) = 0;
/**
- * @brief Launch OnDataReceiveDone event in the device adapter listener.
- *
- * @param device_handle Device unique identifier.
- * @param app_handle Handle of application.
- * @param message Smart pointer to the raw message.
- */
+ * @brief Launch OnDataReceiveDone event in the device adapter listener.
+ *
+ * @param device_handle Device unique identifier.
+ * @param app_handle Handle of application.
+ * @param message Smart pointer to the raw message.
+ */
virtual void DataReceiveDone(const DeviceUID& device_handle,
const ApplicationHandle& app_handle,
::protocol_handler::RawMessagePtr message) = 0;
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 b30f1e35b2..0750b58aae 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
@@ -33,21 +33,21 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_IMPL_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_IMPL_H_
-#include <queue>
-#include <set>
#include <map>
#include <memory>
+#include <queue>
+#include <set>
#include <string>
#include "utils/lock.h"
#include "utils/rwlock.h"
#include "utils/timer.h"
+#include "resumption/last_state.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"
-#include "transport_manager/transport_adapter/connection.h"
#include "transport_manager/transport_manager_settings.h"
-#include "resumption/last_state.h"
#ifdef TELEMETRY_MONITOR
#include "transport_manager/telemetry_observer.h"
@@ -202,19 +202,8 @@ class TransportAdapterImpl : public TransportAdapter,
const ApplicationHandle& app_handle,
const ::protocol_handler::RawMessagePtr data) OVERRIDE;
- /**
- * @brief Start client listener.
- *
- * @return Error information about possible reason of failure.
- */
- TransportAdapter::Error StartClientListening() OVERRIDE;
-
- /**
- * @brief Stop client listener.
- *
- * @return Error information about possible reason of failure.
- */
- TransportAdapter::Error StopClientListening() OVERRIDE;
+ TransportAdapter::Error ChangeClientListening(
+ TransportAction required_change) OVERRIDE;
/**
* @brief Notify that device scanner is available.
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
index a0e0a51c1e..4db9a3b710 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h
@@ -33,9 +33,9 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_H_
+#include "protocol/common.h"
#include "transport_manager/common.h"
#include "transport_manager/error.h"
-#include "protocol/common.h"
namespace transport_manager {
namespace transport_adapter {
@@ -307,6 +307,6 @@ class TransportAdapterListener {
const TransportAdapter* transport_adapter) = 0;
};
-} // transport_adapter namespace
-} // transport_manager namespace
+} // namespace transport_adapter
+} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_H_
diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
index 0c9c6ef6a2..d00ae1c498 100644
--- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
+++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h
@@ -34,8 +34,8 @@
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_TRANSPORT_ADAPTER_LISTENER_IMPL_H_
#include "transport_manager/common.h"
-#include "transport_manager/transport_adapter/transport_adapter_listener.h"
#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "transport_manager/transport_adapter/transport_adapter_listener.h"
#include "transport_manager/transport_manager.h"
namespace transport_manager {
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 8039f9c985..7fb0904fdf 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
@@ -65,6 +65,6 @@ class TransportManagerDefault : public TransportManagerImpl {
DISALLOW_COPY_AND_ASSIGN(TransportManagerDefault);
};
-}
+} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_DEFAULT_H_
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 60303c1bca..5e97a5567e 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
@@ -33,29 +33,29 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_IMPL_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_IMPL_H_
-#include <queue>
-#include <map>
-#include <list>
-#include <vector>
-#include <utility>
#include <algorithm>
-#include <tuple>
#include <functional>
+#include <list>
+#include <map>
+#include <queue>
+#include <tuple>
+#include <utility>
+#include <vector>
-#include "utils/timer.h"
#include "utils/rwlock.h"
+#include "utils/timer.h"
+#include "protocol/common.h"
+#include "transport_manager/transport_adapter/transport_adapter_listener_impl.h"
#include "transport_manager/transport_manager.h"
#include "transport_manager/transport_manager_listener.h"
-#include "transport_manager/transport_adapter/transport_adapter_listener_impl.h"
-#include "protocol/common.h"
#ifdef TELEMETRY_MONITOR
-#include "transport_manager/telemetry_observer.h"
#include "telemetry_monitor/telemetry_observable.h"
+#include "transport_manager/telemetry_observer.h"
#endif // TELEMETRY_MONITOR
-#include "utils/threads/message_loop_thread.h"
#include "transport_manager/transport_adapter/transport_adapter_event.h"
#include "transport_manager/transport_manager_settings.h"
+#include "utils/threads/message_loop_thread.h"
namespace transport_manager {
@@ -74,10 +74,10 @@ class TransportManagerImpl
public RawMessageLoopThread::Handler,
public TransportAdapterEventLoopThread::Handler
#ifdef TELEMETRY_MONITOR
- ,
+ ,
public telemetry_monitor::TelemetryObservable<TMTelemetryObserver>
#endif // TELEMETRY_MONITOR
- {
+{
public:
struct Connection {
ConnectionUID id;
@@ -132,6 +132,12 @@ class TransportManagerImpl
*/
virtual int Reinit() OVERRIDE;
+ virtual void Deinit() OVERRIDE;
+
+ void StopEventsProcessing() OVERRIDE;
+
+ void StartEventsProcessing() OVERRIDE;
+
/**
* @brief Start scanning for new devices.
*
@@ -250,14 +256,8 @@ class TransportManagerImpl
**/
int RemoveDevice(const DeviceHandle device) OVERRIDE;
- /**
- * @brief Turns on or off visibility of SDL to mobile devices
- * when visibility is ON (on_off = true) mobile devices are able to connect
- * otherwise ((on_off = false)) SDL is not visible from outside
- *
- * @return Code error.
- */
- int Visibility(const bool& on_off) const OVERRIDE;
+ int PerformActionOnClients(
+ const TransportAction required_action) const OVERRIDE;
/**
* @brief OnDeviceListUpdated updates device list and sends appropriate
@@ -327,9 +327,9 @@ class TransportManagerImpl
private:
/**
- * @brief Structure that contains conversion functions (Device ID -> Device
- * Handle; Device Handle -> Device ID)
- */
+ * @brief Structure that contains conversion functions (Device ID -> Device
+ * Handle; Device Handle -> Device ID)
+ */
struct Handle2GUIDConverter {
/**
* @brief ConversionTable Records uid/connection type/handle
@@ -414,6 +414,10 @@ class TransportManagerImpl
sync_primitives::Lock device_lock_;
DeviceUID device_to_reconnect_;
+ std::atomic_bool events_processing_is_active_;
+ sync_primitives::Lock events_processing_lock_;
+ sync_primitives::ConditionalVariable events_processing_cond_var_;
+
/**
* @brief Adds new incoming connection to connections list
* @param c New connection
@@ -421,18 +425,18 @@ class TransportManagerImpl
void AddConnection(const ConnectionInternal& c);
/**
- * @brief Removes connection from connections list
- * @param id Identifier of connection to be removed
- * @param transport_adapter Pointer to transport adapter
- * that holds connection
- */
+ * @brief Removes connection from connections list
+ * @param id Identifier of connection to be removed
+ * @param transport_adapter Pointer to transport adapter
+ * that holds connection
+ */
void RemoveConnection(const uint32_t id,
transport_adapter::TransportAdapter* transport_adapter);
/**
- * @brief Deactivates all connections related to certain device
- * @param device_uid Device unique identifier
- */
+ * @brief Deactivates all connections related to certain device
+ * @param device_uid Device unique identifier
+ */
void DeactivateDeviceConnections(const DeviceUID& device_uid);
/**
* @brief Returns connection from connections list by connection identifier
@@ -452,14 +456,14 @@ class TransportManagerImpl
const ApplicationHandle& application);
/**
- * @brief Returns active connection from connections list by device unique
+ * @brief Returns active connection from connections list by device unique
* id
- * and application handle
- * (this method returns only active connections as opposed to previous one)
- * @param device Device unique identifier
- * @param application Application handle
- * @return Pointer to connection or NULL if connection could not be found
- */
+ * and application handle
+ * (this method returns only active connections as opposed to previous one)
+ * @param device Device unique identifier
+ * @param application Application handle
+ * @return Pointer to connection or NULL if connection could not be found
+ */
ConnectionInternal* GetActiveConnection(const DeviceUID& device,
const ApplicationHandle& application);
diff --git a/src/components/transport_manager/include/transport_manager/usb/common.h b/src/components/transport_manager/include/transport_manager/usb/common.h
index 1db1a83a3a..d15e1fdd96 100644
--- a/src/components/transport_manager/include/transport_manager/usb/common.h
+++ b/src/components/transport_manager/include/transport_manager/usb/common.h
@@ -110,7 +110,7 @@ inline bool IsAppleDevice(const PlatformUsbDevice* device) {
return IsAppleIAPDevice(device) || IsAppleIAP2Device(device);
}
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_COMMON_H_
diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h b/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h
index baec1938b1..201f3787e0 100644
--- a/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h
+++ b/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h
@@ -36,8 +36,8 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_PLATFORM_USB_DEVICE_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_LIBUSB_PLATFORM_USB_DEVICE_H_
-#include <string>
#include <libusb-1.0/libusb.h>
+#include <string>
namespace transport_manager {
diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h
index 5f6bd40957..2b7f6e4189 100644
--- a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h
+++ b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h
@@ -37,8 +37,8 @@
#include "utils/lock.h"
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/transport_adapter/connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/usb/common.h"
namespace transport_manager {
diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h
index bed631ea2e..6b15229522 100644
--- a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h
+++ b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h
@@ -39,8 +39,8 @@
#include <libusb-1.0/libusb.h>
#include "transport_manager/transport_adapter/transport_adapter.h"
-#include "transport_manager/usb/usb_control_transfer.h"
#include "transport_manager/usb/libusb/platform_usb_device.h"
+#include "transport_manager/usb/usb_control_transfer.h"
#include "utils/threads/thread.h"
diff --git a/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h b/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h
index 9755a5eacd..738675754d 100644
--- a/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h
+++ b/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h
@@ -36,8 +36,8 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_PLATFORM_USB_DEVICE_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_QNX_PLATFORM_USB_DEVICE_H_
-#include <string>
#include <sys/usbdi.h>
+#include <string>
namespace transport_manager {
diff --git a/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h b/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h
index e9f7344ee2..ba7e263b4c 100644
--- a/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h
+++ b/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h
@@ -38,8 +38,8 @@
#include "utils/lock.h"
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/transport_adapter/connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/usb/common.h"
namespace transport_manager {
diff --git a/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h b/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h
index c33e0f2361..53600309ec 100644
--- a/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h
+++ b/src/components/transport_manager/include/transport_manager/usb/qnx/usb_handler.h
@@ -39,8 +39,8 @@
#include <sys/usbdi.h>
#include "transport_manager/transport_adapter/transport_adapter.h"
-#include "transport_manager/usb/usb_control_transfer.h"
#include "transport_manager/usb/qnx/platform_usb_device.h"
+#include "transport_manager/usb/usb_control_transfer.h"
namespace transport_manager {
diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h b/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h
index 850902bea3..a47574353e 100644
--- a/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h
+++ b/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h
@@ -100,7 +100,7 @@ class UsbControlTransferSequence {
Transfers transfers_;
};
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_CONTROL_TRANSFER_H_
diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h b/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h
index a6065de2b2..9d99b1b548 100644
--- a/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h
+++ b/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h
@@ -38,9 +38,9 @@
#include <list>
-#include "utils/lock.h"
#include "transport_manager/transport_adapter/device_scanner.h"
#include "transport_manager/usb/common.h"
+#include "utils/lock.h"
namespace transport_manager {
@@ -48,7 +48,8 @@ namespace transport_adapter {
class UsbDeviceScanner : public DeviceScanner, public UsbDeviceListener {
public:
- UsbDeviceScanner(class TransportAdapterController* controller);
+ UsbDeviceScanner(class TransportAdapterController* controller,
+ const TransportManagerSettings& settings);
virtual ~UsbDeviceScanner();
protected:
@@ -65,13 +66,14 @@ class UsbDeviceScanner : public DeviceScanner, public UsbDeviceListener {
void SupportedDeviceFound(PlatformUsbDevice* device);
TransportAdapterController* controller_;
+ const TransportManagerSettings& settings_;
typedef std::list<PlatformUsbDevice*> Devices;
Devices devices_;
sync_primitives::Lock devices_mutex_;
};
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_USB_USB_DEVICE_SCANNER_H_
diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc b/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc
index 62615cb30f..19f4078443 100644
--- a/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc
+++ b/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc
@@ -33,9 +33,9 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/bluetooth/bluetooth_connection_factory.h"
#include "transport_manager/bluetooth/bluetooth_socket_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "utils/logger.h"
namespace transport_manager {
diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_device.cc b/src/components/transport_manager/src/bluetooth/bluetooth_device.cc
index e7cc3d4f34..734d8fe1e9 100644
--- a/src/components/transport_manager/src/bluetooth/bluetooth_device.cc
+++ b/src/components/transport_manager/src/bluetooth/bluetooth_device.cc
@@ -36,13 +36,13 @@
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>
+#include <bluetooth/rfcomm.h>
#include <bluetooth/sdp.h>
#include <bluetooth/sdp_lib.h>
-#include <bluetooth/rfcomm.h>
#include <errno.h>
-#include <sys/types.h>
#include <sys/socket.h>
+#include <sys/types.h>
#include <algorithm>
#include <iostream>
diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc b/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
index 75ea799ce8..4759b2003a 100644
--- a/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
+++ b/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc
@@ -38,18 +38,18 @@
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>
+#include <bluetooth/rfcomm.h>
#include <bluetooth/sdp.h>
#include <bluetooth/sdp_lib.h>
-#include <bluetooth/rfcomm.h>
#include <errno.h>
-#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
+#include <sys/types.h>
#include <unistd.h>
-#include <vector>
#include <sstream>
-#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
+#include <vector>
#include "transport_manager/bluetooth/bluetooth_device.h"
+#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
#include "utils/logger.h"
#include "utils/threads/thread.h"
@@ -133,7 +133,27 @@ BluetoothDeviceScanner::BluetoothDeviceScanner(
0xA8};
sdp_uuid128_create(&smart_device_link_service_uuid_,
smart_device_link_service_uuid_data);
- thread_ = threads::CreateThread("BT Device Scaner",
+ thread_ = threads::CreateThread("BT Device Scanner",
+ new BluetoothDeviceScannerDelegate(this));
+}
+
+BluetoothDeviceScanner::BluetoothDeviceScanner(
+ TransportAdapterController* controller,
+ bool auto_repeat_search,
+ int auto_repeat_pause_sec,
+ const uint8_t* smart_device_link_service_uuid_data)
+ : controller_(controller)
+ , thread_(NULL)
+ , shutdown_requested_(false)
+ , ready_(true)
+ , device_scan_requested_(false)
+ , device_scan_requested_lock_()
+ , device_scan_requested_cv_()
+ , auto_repeat_search_(auto_repeat_search)
+ , auto_repeat_pause_sec_(auto_repeat_pause_sec) {
+ sdp_uuid128_create(&smart_device_link_service_uuid_,
+ smart_device_link_service_uuid_data);
+ thread_ = threads::CreateThread("BT Device Scanner",
new BluetoothDeviceScannerDelegate(this));
}
diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc b/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc
index b4370e4b12..78597ac2ad 100644
--- a/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc
+++ b/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc
@@ -33,13 +33,13 @@
#include "transport_manager/bluetooth/bluetooth_socket_connection.h"
-#include <unistd.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>
+#include <bluetooth/rfcomm.h>
#include <bluetooth/sdp.h>
#include <bluetooth/sdp_lib.h>
-#include <bluetooth/rfcomm.h>
+#include <unistd.h>
#include "transport_manager/bluetooth/bluetooth_device.h"
#include "transport_manager/transport_adapter/transport_adapter_controller.h"
@@ -93,9 +93,9 @@ bool BluetoothSocketConnection::Establish(ConnectError** error) {
do {
rfcomm_socket = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
if (-1 == rfcomm_socket) {
- LOG4CXX_ERROR_WITH_ERRNO(logger_,
- "Failed to create RFCOMM socket for device "
- << device_handle());
+ LOG4CXX_ERROR_WITH_ERRNO(
+ logger_,
+ "Failed to create RFCOMM socket for device " << device_handle());
*error = new ConnectError();
LOG4CXX_TRACE(logger_, "exit with FALSE");
return false;
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 b373744f79..911658bc56 100644
--- a/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc
+++ b/src/components/transport_manager/src/bluetooth/bluetooth_transport_adapter.cc
@@ -34,18 +34,18 @@
*/
#include <errno.h>
-#include <sys/types.h>
#include <sys/socket.h>
+#include <sys/types.h>
#include <unistd.h>
+#include <bluetooth/bluetooth.h>
#include <iomanip>
#include <set>
-#include <bluetooth/bluetooth.h>
-#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
-#include "transport_manager/bluetooth/bluetooth_device_scanner.h"
#include "transport_manager/bluetooth/bluetooth_connection_factory.h"
#include "transport_manager/bluetooth/bluetooth_device.h"
+#include "transport_manager/bluetooth/bluetooth_device_scanner.h"
+#include "transport_manager/bluetooth/bluetooth_transport_adapter.h"
#include "utils/logger.h"
@@ -58,11 +58,12 @@ BluetoothTransportAdapter::~BluetoothTransportAdapter() {}
BluetoothTransportAdapter::BluetoothTransportAdapter(
resumption::LastState& last_state, const TransportManagerSettings& settings)
- : TransportAdapterImpl(new BluetoothDeviceScanner(this, true, 0),
- new BluetoothConnectionFactory(this),
- NULL,
- last_state,
- settings) {}
+ : TransportAdapterImpl(
+ new BluetoothDeviceScanner(this, true, 0, settings.bluetooth_uuid()),
+ new BluetoothConnectionFactory(this),
+ NULL,
+ last_state,
+ settings) {}
DeviceType BluetoothTransportAdapter::GetDeviceType() const {
return BLUETOOTH;
diff --git a/src/components/transport_manager/src/cloud/cloud_device.cc b/src/components/transport_manager/src/cloud/cloud_device.cc
index c1ad186ded..9225589d57 100644
--- a/src/components/transport_manager/src/cloud/cloud_device.cc
+++ b/src/components/transport_manager/src/cloud/cloud_device.cc
@@ -49,7 +49,7 @@ CloudDevice::CloudDevice(std::string& host,
.query = "",
.fragment = ""}) {}
-CloudDevice::CloudDevice(CloudAppEndpoint endpoint, std::string& name)
+CloudDevice::CloudDevice(CloudAppEndpoint& endpoint, std::string& name)
: Device(name, std::string(name)), endpoint_(endpoint) {}
bool CloudDevice::IsSameAs(const Device* other) const {
diff --git a/src/components/transport_manager/src/cloud/cloud_websocket_connection_factory.cc b/src/components/transport_manager/src/cloud/cloud_websocket_connection_factory.cc
index 0d9fda6fe5..d072685eef 100644
--- a/src/components/transport_manager/src/cloud/cloud_websocket_connection_factory.cc
+++ b/src/components/transport_manager/src/cloud/cloud_websocket_connection_factory.cc
@@ -33,9 +33,9 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/cloud/cloud_websocket_connection_factory.h"
#include "transport_manager/cloud/websocket_client_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "utils/logger.h"
#include "transport_manager/cloud/cloud_device.h"
diff --git a/src/components/transport_manager/src/cloud/websocket_client_connection.cc b/src/components/transport_manager/src/cloud/websocket_client_connection.cc
index 1718e5ca1b..794cf57208 100644
--- a/src/components/transport_manager/src/cloud/websocket_client_connection.cc
+++ b/src/components/transport_manager/src/cloud/websocket_client_connection.cc
@@ -169,9 +169,9 @@ TransportAdapter::Error WebsocketClientConnection::Start() {
#endif // ENABLE_SECURITY
if (ec) {
std::string str_err = "ErrorMessage: " + ec.message();
- LOG4CXX_ERROR(logger_,
- "Could not complete handshake with host/port: " << host << ":"
- << port);
+ LOG4CXX_ERROR(
+ logger_,
+ "Could not complete handshake with host/port: " << host << ":" << port);
LOG4CXX_ERROR(logger_, str_err);
return TransportAdapter::FAIL;
}
@@ -208,9 +208,9 @@ TransportAdapter::Error WebsocketClientConnection::Start() {
boost::asio::post(io_pool_, [&]() { ioc_.run(); });
- LOG4CXX_DEBUG(logger_,
- "Successfully started websocket connection @: " << host << ":"
- << port);
+ LOG4CXX_DEBUG(
+ logger_,
+ "Successfully started websocket connection @: " << host << ":" << port);
return TransportAdapter::OK;
}
@@ -261,7 +261,7 @@ void WebsocketClientConnection::OnRead(boost::system::error_code ec,
boost::beast::buffers_front(buffer_.data()));
::protocol_handler::RawMessagePtr frame(
- new protocol_handler::RawMessage(0, 0, data, size));
+ new protocol_handler::RawMessage(0, 0, data, size, false));
controller_->DataReceiveDone(device_uid_, app_handle_, frame);
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 31e997f3ba..2e37f76bc9 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
@@ -32,14 +32,14 @@
#include "transport_manager/iap2_emulation/iap2_transport_adapter.h"
-#include <sys/types.h>
-#include <sys/stat.h>
#include <fcntl.h>
-#include <unistd.h>
#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
-#include "utils/threads/thread.h"
#include "utils/file_system.h"
+#include "utils/threads/thread.h"
namespace {
static const mode_t mode = 0666;
@@ -182,5 +182,5 @@ void IAP2USBEmulationTransportAdapter::IAPSignalHandlerDelegate::
run_flag_ = false;
ThreadDelegate::exitThreadMain();
}
-}
-} // namespace transport_manager::transport_adapter
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/src/components/transport_manager/src/tcp/platform_specific/linux/platform_specific_network_interface_listener.cc b/src/components/transport_manager/src/tcp/platform_specific/linux/platform_specific_network_interface_listener.cc
index 047d43b7bf..2e79e84f2e 100644
--- a/src/components/transport_manager/src/tcp/platform_specific/linux/platform_specific_network_interface_listener.cc
+++ b/src/components/transport_manager/src/tcp/platform_specific/linux/platform_specific_network_interface_listener.cc
@@ -5,11 +5,11 @@
#include <errno.h>
#include <fcntl.h>
#include <ifaddrs.h>
-#include <unistd.h>
#include <net/if.h>
-#include <sys/types.h>
#include <sys/select.h>
#include <sys/socket.h>
+#include <sys/types.h>
+#include <unistd.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
@@ -105,7 +105,7 @@ PlatformSpecificNetworkInterfaceListener::
bool PlatformSpecificNetworkInterfaceListener::Init() {
LOG4CXX_AUTO_TRACE(logger_);
-
+ LOG4CXX_DEBUG(logger_, "Init socket: " << socket_);
if (socket_ >= 0) {
LOG4CXX_WARN(logger_, "Network interface listener is already initialized");
return false;
@@ -151,7 +151,7 @@ bool PlatformSpecificNetworkInterfaceListener::Init() {
void PlatformSpecificNetworkInterfaceListener::Deinit() {
LOG4CXX_AUTO_TRACE(logger_);
-
+ LOG4CXX_DEBUG(logger_, "Deinit socket: " << socket_);
if (socket_ >= 0) {
close(socket_);
socket_ = -1;
@@ -356,7 +356,7 @@ bool PlatformSpecificNetworkInterfaceListener::InitializeStatus() {
}
#endif // BUILD_TESTS
- struct ifaddrs* if_list, *interface;
+ struct ifaddrs *if_list, *interface;
if (getifaddrs(&if_list) != 0) {
LOG4CXX_WARN(logger_,
"getifaddr failed, interface status won't be available until "
@@ -421,9 +421,9 @@ bool PlatformSpecificNetworkInterfaceListener::UpdateStatus(
switch (type) {
case RTM_NEWLINK: {
- LOG4CXX_DEBUG(logger_,
- "netlink event: interface " << ifname
- << " created or updated");
+ LOG4CXX_DEBUG(
+ logger_,
+ "netlink event: interface " << ifname << " created or updated");
status.SetFlags(it->flags);
break;
}
diff --git a/src/components/transport_manager/src/tcp/tcp_client_listener.cc b/src/components/transport_manager/src/tcp/tcp_client_listener.cc
index 9f2597f0a7..d29ffeb144 100644
--- a/src/components/transport_manager/src/tcp/tcp_client_listener.cc
+++ b/src/components/transport_manager/src/tcp/tcp_client_listener.cc
@@ -33,35 +33,35 @@
#include "transport_manager/tcp/tcp_client_listener.h"
-#include <memory.h>
-#include <signal.h>
+#include <arpa/inet.h>
#include <errno.h>
#include <fcntl.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <sys/types.h>
+#include <ifaddrs.h>
+#include <memory.h>
+#include <signal.h>
#include <sys/select.h>
-#include <sys/sysctl.h>
#include <sys/socket.h>
-#include <ifaddrs.h>
+#include <sys/sysctl.h>
+#include <sys/types.h>
+#include <unistd.h>
#ifdef __linux__
#include <linux/tcp.h>
#else // __linux__
-#include <sys/time.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/tcp_var.h>
+#include <sys/time.h>
#endif // __linux__
#include <sstream>
#include "utils/logger.h"
-#include "utils/threads/thread.h"
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/tcp/network_interface_listener_impl.h"
#include "transport_manager/tcp/tcp_device.h"
#include "transport_manager/tcp/tcp_socket_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "utils/threads/thread.h"
namespace transport_manager {
namespace transport_adapter {
@@ -374,17 +374,16 @@ TransportAdapter::Error TcpClientListener::StartListening() {
return TransportAdapter::OK;
}
-void TcpClientListener::ListeningThreadDelegate::exitThreadMain() {
- parent_->StopLoop();
-}
+TransportAdapter::Error TcpClientListener::ResumeListening() {
+ LOG4CXX_AUTO_TRACE(logger_);
-void TcpClientListener::ListeningThreadDelegate::threadMain() {
- parent_->Loop();
-}
+ interface_listener_->Init();
+ StartListeningThread();
+ started_ = true;
-TcpClientListener::ListeningThreadDelegate::ListeningThreadDelegate(
- TcpClientListener* parent)
- : parent_(parent) {}
+ LOG4CXX_INFO(logger_, "Tcp client listener was resumed successfully");
+ return TransportAdapter::OK;
+}
TransportAdapter::Error TcpClientListener::StopListening() {
LOG4CXX_AUTO_TRACE(logger_);
@@ -398,10 +397,45 @@ TransportAdapter::Error TcpClientListener::StopListening() {
StopListeningThread();
started_ = false;
- LOG4CXX_INFO(logger_, "Tcp client listener has stopped successfully");
+ LOG4CXX_INFO(logger_, "Tcp client listener was stopped successfully");
return TransportAdapter::OK;
}
+TransportAdapter::Error TcpClientListener::SuspendListening() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ if (!started_) {
+ LOG4CXX_DEBUG(logger_, "TcpClientListener is not running now");
+ return TransportAdapter::BAD_STATE;
+ }
+
+ if (shutdown(socket_, SHUT_RDWR) != 0) {
+ LOG4CXX_WARN(logger_, "Socket was unable to be shutdowned");
+ }
+
+ if (close(socket_) != 0) {
+ LOG4CXX_ERROR_WITH_ERRNO(logger_, "Failed to close socket");
+ }
+
+ interface_listener_->Deinit();
+ StopListeningThread();
+ started_ = false;
+
+ LOG4CXX_INFO(logger_, "Tcp client listener was suspended");
+ return TransportAdapter::OK;
+}
+
+void TcpClientListener::ListeningThreadDelegate::exitThreadMain() {
+ parent_->StopLoop();
+}
+
+void TcpClientListener::ListeningThreadDelegate::threadMain() {
+ parent_->Loop();
+}
+
+TcpClientListener::ListeningThreadDelegate::ListeningThreadDelegate(
+ TcpClientListener* parent)
+ : parent_(parent) {}
+
TransportAdapter::Error TcpClientListener::StartListeningThread() {
LOG4CXX_AUTO_TRACE(logger_);
@@ -455,9 +489,9 @@ void TcpClientListener::OnIPAddressUpdated(const std::string ipv4_addr,
if (IsListeningOnSpecificInterface()) {
if (!current_ip_address_.empty()) {
// the server socket is running, terminate it
- LOG4CXX_DEBUG(logger_,
- "Stopping current TCP server socket on "
- << designated_interface_);
+ LOG4CXX_DEBUG(
+ logger_,
+ "Stopping current TCP server socket on " << designated_interface_);
StopOnNetworkInterface();
}
if (!ipv4_addr.empty()) {
@@ -525,9 +559,9 @@ bool TcpClientListener::StopOnNetworkInterface() {
socket_ = -1;
}
- LOG4CXX_INFO(logger_,
- "TCP server socket on " << designated_interface_
- << " stopped");
+ LOG4CXX_INFO(
+ logger_,
+ "TCP server socket on " << designated_interface_ << " stopped");
}
return true;
}
diff --git a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc
index e202554f8f..50d1c74fa7 100644
--- a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc
+++ b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc
@@ -30,9 +30,9 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "transport_manager/tcp/tcp_connection_factory.h"
#include "transport_manager/tcp/tcp_server_originated_socket_connection.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "utils/logger.h"
@@ -52,9 +52,9 @@ TransportAdapter::Error TcpConnectionFactory::Init() {
TransportAdapter::Error TcpConnectionFactory::CreateConnection(
const DeviceUID& device_uid, const ApplicationHandle& app_handle) {
LOG4CXX_AUTO_TRACE(logger_);
- LOG4CXX_DEBUG(logger_,
- "DeviceUID: " << &device_uid
- << ", ApplicationHandle: " << &app_handle);
+ LOG4CXX_DEBUG(
+ logger_,
+ "DeviceUID: " << &device_uid << ", ApplicationHandle: " << &app_handle);
std::shared_ptr<TcpServerOriginatedSocketConnection> connection =
std::make_shared<TcpServerOriginatedSocketConnection>(
device_uid, app_handle, controller_);
diff --git a/src/components/transport_manager/src/tcp/tcp_device.cc b/src/components/transport_manager/src/tcp/tcp_device.cc
index dbcb5d38cb..4542f76c1d 100644
--- a/src/components/transport_manager/src/tcp/tcp_device.cc
+++ b/src/components/transport_manager/src/tcp/tcp_device.cc
@@ -30,8 +30,8 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "utils/logger.h"
#include "transport_manager/tcp/tcp_device.h"
+#include "utils/logger.h"
namespace transport_manager {
namespace transport_adapter {
@@ -57,9 +57,9 @@ TcpDevice::TcpDevice(const in_addr_t& in_addr,
LOG4CXX_AUTO_TRACE(logger_);
LOG4CXX_DEBUG(logger_,
"Device created with transport switch emulation support.");
- LOG4CXX_DEBUG(logger_,
- "Device parameters: " << device_uid << " / "
- << transport_switch_id);
+ LOG4CXX_DEBUG(
+ logger_,
+ "Device parameters: " << device_uid << " / " << transport_switch_id);
}
#endif // BUILD_TESTS
diff --git a/src/components/transport_manager/src/tcp/tcp_server_originated_socket_connection.cc b/src/components/transport_manager/src/tcp/tcp_server_originated_socket_connection.cc
index 2f10bd9454..690b2d25b3 100644
--- a/src/components/transport_manager/src/tcp/tcp_server_originated_socket_connection.cc
+++ b/src/components/transport_manager/src/tcp/tcp_server_originated_socket_connection.cc
@@ -65,9 +65,9 @@ bool TcpServerOriginatedSocketConnection::Establish(ConnectError** error) {
const int port = tcp_device->GetApplicationPort(application_handle());
if (-1 == port) {
- LOG4CXX_ERROR(logger_,
- "Application port for " << application_handle()
- << " not found");
+ LOG4CXX_ERROR(
+ logger_,
+ "Application port for " << application_handle() << " not found");
*error = new ConnectError();
return false;
}
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 b3dbf49628..aeb50f3830 100644
--- a/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc
+++ b/src/components/transport_manager/src/tcp/tcp_transport_adapter.cc
@@ -32,19 +32,19 @@
#include "transport_manager/tcp/tcp_transport_adapter.h"
+#include <errno.h>
#include <memory.h>
#include <signal.h>
-#include <errno.h>
#include <stdio.h>
#include <cstdlib>
#include <sstream>
-#include "utils/logger.h"
-#include "utils/threads/thread_delegate.h"
#include "transport_manager/tcp/tcp_client_listener.h"
#include "transport_manager/tcp/tcp_connection_factory.h"
#include "transport_manager/tcp/tcp_device.h"
+#include "utils/logger.h"
+#include "utils/threads/thread_delegate.h"
namespace transport_manager {
namespace transport_adapter {
diff --git a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc
index 9d594affe4..96c4c2c370 100644
--- a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc
+++ b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc
@@ -30,13 +30,13 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <algorithm>
#include <errno.h>
#include <fcntl.h>
#include <memory.h>
-#include <unistd.h>
-#include <sys/types.h>
#include <sys/socket.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <algorithm>
#include "utils/logger.h"
#include "utils/threads/thread.h"
@@ -300,11 +300,11 @@ bool ThreadedSocketConnection::Receive() {
bytes_read = recv(socket_, buffer, sizeof(buffer), MSG_DONTWAIT);
if (bytes_read > 0) {
- LOG4CXX_DEBUG(logger_,
- "Received " << bytes_read << " bytes for connection "
- << this);
+ LOG4CXX_DEBUG(
+ logger_,
+ "Received " << bytes_read << " bytes for connection " << this);
::protocol_handler::RawMessagePtr frame(
- new protocol_handler::RawMessage(0, 0, buffer, bytes_read));
+ new protocol_handler::RawMessage(0, 0, buffer, bytes_read, false));
controller_->DataReceiveDone(
device_handle(), application_handle(), frame);
} else if (bytes_read < 0) {
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 865e8d6aa8..f0bfabf2e4 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
@@ -35,11 +35,11 @@
#include "utils/logger.h"
#include "utils/timer_task_impl.h"
-#include "transport_manager/transport_adapter/transport_adapter_impl.h"
-#include "transport_manager/transport_adapter/transport_adapter_listener.h"
+#include "transport_manager/transport_adapter/client_connection_listener.h"
#include "transport_manager/transport_adapter/device_scanner.h"
#include "transport_manager/transport_adapter/server_connection_factory.h"
-#include "transport_manager/transport_adapter/client_connection_listener.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/transport_adapter/transport_adapter_listener.h"
namespace transport_manager {
namespace transport_adapter {
@@ -100,16 +100,16 @@ TransportAdapterImpl::~TransportAdapterImpl() {
LOG4CXX_DEBUG(logger_, "device_scanner_ deleted.");
}
if (server_connection_factory_) {
- LOG4CXX_DEBUG(logger_,
- "Deleting server_connection_factory "
- << server_connection_factory_);
+ LOG4CXX_DEBUG(
+ logger_,
+ "Deleting server_connection_factory " << server_connection_factory_);
delete server_connection_factory_;
LOG4CXX_DEBUG(logger_, "server_connection_factory deleted.");
}
if (client_connection_listener_) {
- LOG4CXX_DEBUG(logger_,
- "Deleting client_connection_listener_ "
- << client_connection_listener_);
+ LOG4CXX_DEBUG(
+ logger_,
+ "Deleting client_connection_listener_ " << client_connection_listener_);
delete client_connection_listener_;
LOG4CXX_DEBUG(logger_, "client_connection_listener_ deleted.");
}
@@ -193,9 +193,9 @@ TransportAdapter::Error TransportAdapterImpl::SearchDevices() {
TransportAdapter::Error TransportAdapterImpl::Connect(
const DeviceUID& device_id, const ApplicationHandle& app_handle) {
- LOG4CXX_TRACE(logger_,
- "enter. DeviceUID " << device_id << " ApplicationHandle "
- << app_handle);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. DeviceUID " << device_id << " ApplicationHandle " << app_handle);
if (server_connection_factory_ == 0) {
LOG4CXX_TRACE(logger_, "exit with NOT_SUPPORTED");
return NOT_SUPPORTED;
@@ -339,9 +339,9 @@ void TransportAdapterImpl::ConnectionStatusUpdated(DeviceSptr device,
TransportAdapter::Error TransportAdapterImpl::Disconnect(
const DeviceUID& device_id, const ApplicationHandle& app_handle) {
- LOG4CXX_TRACE(logger_,
- "enter. device_id: " << &device_id
- << ", device_id: " << &device_id);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_id: " << &device_id << ", device_id: " << &device_id);
if (!initialised_) {
LOG4CXX_TRACE(logger_, "exit with BAD_STATE");
return BAD_STATE;
@@ -418,8 +418,9 @@ TransportAdapter::Error TransportAdapterImpl::SendData(
}
}
-TransportAdapter::Error TransportAdapterImpl::StartClientListening() {
- LOG4CXX_TRACE(logger_, "enter");
+TransportAdapter::Error TransportAdapterImpl::ChangeClientListening(
+ TransportAction required_change) {
+ LOG4CXX_AUTO_TRACE(logger_);
if (client_connection_listener_ == 0) {
LOG4CXX_TRACE(logger_, "exit with NOT_SUPPORTED");
return NOT_SUPPORTED;
@@ -428,27 +429,43 @@ TransportAdapter::Error TransportAdapterImpl::StartClientListening() {
LOG4CXX_TRACE(logger_, "exit with BAD_STATE");
return BAD_STATE;
}
- TransportAdapter::Error err = client_connection_listener_->StartListening();
- LOG4CXX_TRACE(logger_, "exit with error: " << err);
- return err;
-}
-TransportAdapter::Error TransportAdapterImpl::StopClientListening() {
- LOG4CXX_TRACE(logger_, "enter");
- if (client_connection_listener_ == 0) {
- LOG4CXX_TRACE(logger_, "exit with NOT_SUPPORTED");
- return NOT_SUPPORTED;
- }
- if (!client_connection_listener_->IsInitialised()) {
- LOG4CXX_TRACE(logger_, "exit with BAD_STATE");
- return BAD_STATE;
- }
- TransportAdapter::Error err = client_connection_listener_->StopListening();
- sync_primitives::AutoLock locker(devices_mutex_);
- for (DeviceMap::iterator it = devices_.begin(); it != devices_.end(); ++it) {
- it->second->Stop();
+ TransportAdapter::Error err = TransportAdapter::Error::UNKNOWN;
+
+ switch (required_change) {
+ case transport_manager::TransportAction::kVisibilityOn:
+ err = client_connection_listener_->StartListening();
+ break;
+
+ case transport_manager::TransportAction::kListeningOn:
+ err = client_connection_listener_->ResumeListening();
+ break;
+
+ case transport_manager::TransportAction::kListeningOff:
+ err = client_connection_listener_->SuspendListening();
+ {
+ sync_primitives::AutoLock locker(devices_mutex_);
+ for (DeviceMap::iterator it = devices_.begin(); it != devices_.end();
+ ++it) {
+ it->second->Stop();
+ }
+ }
+ break;
+
+ case transport_manager::TransportAction::kVisibilityOff:
+ err = client_connection_listener_->StopListening();
+ {
+ sync_primitives::AutoLock locker(devices_mutex_);
+ for (DeviceMap::iterator it = devices_.begin(); it != devices_.end();
+ ++it) {
+ it->second->Stop();
+ }
+ }
+ break;
+ default:
+ NOTREACHED();
}
- LOG4CXX_TRACE(logger_, "exit with error: " << err);
+ LOG4CXX_TRACE(logger_, "Exit with error: " << err);
return err;
}
@@ -638,9 +655,9 @@ void TransportAdapterImpl::ConnectionCreated(
void TransportAdapterImpl::DeviceDisconnected(
const DeviceUID& device_handle, const DisconnectDeviceError& error) {
const DeviceUID device_uid = device_handle;
- LOG4CXX_TRACE(logger_,
- "enter. device_handle: " << &device_uid
- << ", error: " << &error);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_handle: " << &device_uid << ", error: " << &error);
ApplicationList app_list = GetApplicationList(device_uid);
for (ApplicationList::const_iterator i = app_list.begin();
i != app_list.end();
@@ -698,9 +715,9 @@ void TransportAdapterImpl::DisconnectDone(const DeviceUID& device_handle,
const ApplicationHandle& app_handle) {
const DeviceUID device_uid = device_handle;
const ApplicationHandle app_uid = app_handle;
- LOG4CXX_TRACE(logger_,
- "enter. device_id: " << &device_uid
- << ", app_handle: " << &app_uid);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_id: " << &device_uid << ", app_handle: " << &app_uid);
DeviceSptr device = FindDevice(device_handle);
if (!device) {
LOG4CXX_WARN(logger_, "Device: uid " << &device_uid << " not found");
@@ -823,9 +840,9 @@ void TransportAdapterImpl::DeviceSwitched(const DeviceUID& device_handle) {
ConnectionSPtr TransportAdapterImpl::FindPendingConnection(
const DeviceUID& device_id, const ApplicationHandle& app_handle) const {
- LOG4CXX_TRACE(logger_,
- "enter. device_id: " << &device_id
- << ", app_handle: " << &app_handle);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_id: " << &device_id << ", app_handle: " << &app_handle);
ConnectionSPtr connection;
connections_lock_.AcquireForReading();
ConnectionMap::const_iterator it =
@@ -886,9 +903,9 @@ void TransportAdapterImpl::ConnectPending(const DeviceUID& device_id,
void TransportAdapterImpl::ConnectDone(const DeviceUID& device_id,
const ApplicationHandle& app_handle) {
- LOG4CXX_TRACE(logger_,
- "enter. device_id: " << &device_id
- << ", app_handle: " << &app_handle);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_id: " << &device_id << ", app_handle: " << &app_handle);
connections_lock_.AcquireForReading();
ConnectionMap::iterator it_conn =
connections_.find(std::make_pair(device_id, app_handle));
@@ -975,9 +992,9 @@ ApplicationList TransportAdapterImpl::GetApplicationList(
void TransportAdapterImpl::ConnectionFinished(
const DeviceUID& device_id, const ApplicationHandle& app_handle) {
- LOG4CXX_TRACE(logger_,
- "enter. device_id: " << &device_id
- << ", app_handle: " << &app_handle);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_id: " << &device_id << ", app_handle: " << &app_handle);
connections_lock_.AcquireForReading();
ConnectionMap::iterator it =
connections_.find(std::make_pair(device_id, app_handle));
@@ -1101,9 +1118,9 @@ bool TransportAdapterImpl::ToBeAutoDisconnected(DeviceSptr device) const {
ConnectionSPtr TransportAdapterImpl::FindEstablishedConnection(
const DeviceUID& device_id, const ApplicationHandle& app_handle) const {
- LOG4CXX_TRACE(logger_,
- "enter. device_id: " << &device_id
- << ", app_handle: " << &app_handle);
+ LOG4CXX_TRACE(
+ logger_,
+ "enter. device_id: " << &device_id << ", app_handle: " << &app_handle);
ConnectionSPtr connection;
connections_lock_.AcquireForReading();
ConnectionMap::const_iterator it =
diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
index 4ef685adbc..bf2d3dbdf4 100644
--- a/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
+++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc
@@ -34,9 +34,9 @@
#include "utils/logger.h"
+#include "transport_manager/transport_adapter/transport_adapter_event.h"
#include "transport_manager/transport_adapter/transport_adapter_listener_impl.h"
#include "transport_manager/transport_manager_impl.h"
-#include "transport_manager/transport_adapter/transport_adapter_event.h"
namespace transport_manager {
CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager")
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc
index 0c49401c80..07dd35bc2f 100644
--- a/src/components/transport_manager/src/transport_manager_impl.cc
+++ b/src/components/transport_manager/src/transport_manager_impl.cc
@@ -33,28 +33,28 @@
#include "transport_manager/transport_manager_impl.h"
#include <stdint.h>
+#include <algorithm>
#include <cstring>
+#include <functional>
+#include <iostream>
+#include <limits>
#include <queue>
#include <set>
-#include <algorithm>
-#include <limits>
-#include <functional>
#include <sstream>
-#include <iostream>
-#include "utils/macro.h"
#include "utils/logger.h"
+#include "utils/macro.h"
-#include "utils/timer_task_impl.h"
-#include "transport_manager/common.h"
-#include "transport_manager/transport_manager_listener.h"
-#include "transport_manager/transport_manager_listener_empty.h"
-#include "transport_manager/transport_adapter/transport_adapter.h"
+#include "config_profile/profile.h"
#if defined(CLOUD_APP_WEBSOCKET_TRANSPORT_SUPPORT)
#include "transport_manager/cloud/cloud_websocket_transport_adapter.h"
#endif
+#include "transport_manager/common.h"
+#include "transport_manager/transport_adapter/transport_adapter.h"
#include "transport_manager/transport_adapter/transport_adapter_event.h"
-#include "config_profile/profile.h"
+#include "transport_manager/transport_manager_listener.h"
+#include "transport_manager/transport_manager_listener_empty.h"
+#include "utils/timer_task_impl.h"
using ::transport_manager::transport_adapter::TransportAdapter;
@@ -67,6 +67,7 @@ struct ConnectionFinder {
return id_ == connection.id;
}
};
+
} // namespace
namespace transport_manager {
@@ -100,7 +101,10 @@ TransportManagerImpl::TransportManagerImpl(
, device_switch_timer_(
"Device reconection timer",
new timer::TimerTaskImpl<TransportManagerImpl>(
- this, &TransportManagerImpl::ReconnectionTimeout)) {
+ this, &TransportManagerImpl::ReconnectionTimeout))
+ , events_processing_is_active_(true)
+ , events_processing_lock_()
+ , events_processing_cond_var_() {
LOG4CXX_TRACE(logger_, "TransportManager has created");
}
@@ -379,9 +383,9 @@ int TransportManagerImpl::Stop() {
int TransportManagerImpl::SendMessageToDevice(
const ::protocol_handler::RawMessagePtr message) {
LOG4CXX_TRACE(logger_, "enter. RawMessageSptr: " << message);
- LOG4CXX_INFO(logger_,
- "Send message to device called with arguments "
- << message.get());
+ LOG4CXX_INFO(
+ logger_,
+ "Send message to device called with arguments " << message.get());
if (false == this->is_initialized_) {
LOG4CXX_ERROR(logger_, "TM is not initialized.");
LOG4CXX_TRACE(logger_,
@@ -586,21 +590,36 @@ int TransportManagerImpl::Init(resumption::LastState& last_state) {
return E_SUCCESS;
}
-int TransportManagerImpl::Reinit() {
+void TransportManagerImpl::Deinit() {
LOG4CXX_AUTO_TRACE(logger_);
DisconnectAllDevices();
TerminateAllAdapters();
device_to_adapter_map_.clear();
connection_id_counter_ = 0;
+}
+
+int TransportManagerImpl::Reinit() {
int ret = InitAllAdapters();
return ret;
}
-int TransportManagerImpl::Visibility(const bool& on_off) const {
- LOG4CXX_TRACE(logger_, "enter. On_off: " << &on_off);
- TransportAdapter::Error ret;
+void TransportManagerImpl::StopEventsProcessing() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ events_processing_is_active_ = false;
+}
- LOG4CXX_DEBUG(logger_, "Visibility change requested to " << on_off);
+void TransportManagerImpl::StartEventsProcessing() {
+ LOG4CXX_AUTO_TRACE(logger_);
+ events_processing_is_active_ = true;
+ events_processing_cond_var_.Broadcast();
+}
+
+int TransportManagerImpl::PerformActionOnClients(
+ const TransportAction required_action) const {
+ LOG4CXX_TRACE(logger_,
+ "The following action requested: "
+ << static_cast<int>(required_action)
+ << " to be performed on connected clients");
if (!is_initialized_) {
LOG4CXX_ERROR(logger_, "TM is not initialized");
LOG4CXX_TRACE(logger_,
@@ -609,21 +628,19 @@ int TransportManagerImpl::Visibility(const bool& on_off) const {
return E_TM_IS_NOT_INITIALIZED;
}
- for (std::vector<TransportAdapter*>::const_iterator it =
- transport_adapters_.begin();
- it != transport_adapters_.end();
- ++it) {
- if (on_off) {
- ret = (*it)->StartClientListening();
- } else {
- ret = (*it)->StopClientListening();
- }
+ TransportAdapter::Error ret = TransportAdapter::Error::UNKNOWN;
+
+ for (auto adapter_ptr : transport_adapters_) {
+ ret = adapter_ptr->ChangeClientListening(required_action);
+
if (TransportAdapter::Error::NOT_SUPPORTED == ret) {
LOG4CXX_DEBUG(logger_,
- "Visibility change is not supported for adapter "
- << *it << "[" << (*it)->GetDeviceType() << "]");
+ "Requested action on client is not supported for adapter "
+ << adapter_ptr << "[" << adapter_ptr->GetDeviceType()
+ << "]");
}
}
+
LOG4CXX_TRACE(logger_, "exit with E_SUCCESS");
return E_SUCCESS;
}
@@ -781,9 +798,9 @@ TransportManagerImpl::ConnectionInternal*
TransportManagerImpl::GetActiveConnection(
const DeviceUID& device, const ApplicationHandle& application) {
LOG4CXX_AUTO_TRACE(logger_);
- LOG4CXX_DEBUG(logger_,
- "DeviceUID: " << device
- << " ApplicationHandle: " << application);
+ LOG4CXX_DEBUG(
+ logger_,
+ "DeviceUID: " << device << " ApplicationHandle: " << application);
for (std::vector<ConnectionInternal>::iterator it = connections_.begin();
it != connections_.end();
++it) {
@@ -932,9 +949,9 @@ bool TransportManagerImpl::UpdateDeviceMapping(
item = device_to_adapter_map_.begin();
}
- LOG4CXX_DEBUG(logger_,
- "After cleanup. Device map size is "
- << device_to_adapter_map_.size());
+ LOG4CXX_DEBUG(
+ logger_,
+ "After cleanup. Device map size is " << device_to_adapter_map_.size());
for (DeviceList::const_iterator it = adapter_device_list.begin();
it != adapter_device_list.end();
@@ -944,10 +961,10 @@ bool TransportManagerImpl::UpdateDeviceMapping(
device_to_adapter_map_.insert(std::make_pair(device_uid, ta));
if (!result.second) {
LOG4CXX_WARN(logger_,
- "Device UID "
- << device_uid
- << " is known already. Processing skipped."
- "Connection type is: " << ta->GetConnectionType());
+ "Device UID " << device_uid
+ << " is known already. Processing skipped."
+ "Connection type is: "
+ << ta->GetConnectionType());
continue;
}
DeviceHandle device_handle =
@@ -959,9 +976,9 @@ bool TransportManagerImpl::UpdateDeviceMapping(
RaiseEvent(&TransportManagerListener::OnDeviceFound, info);
}
- LOG4CXX_DEBUG(logger_,
- "After update. Device map size is "
- << device_to_adapter_map_.size());
+ LOG4CXX_DEBUG(
+ logger_,
+ "After update. Device map size is " << device_to_adapter_map_.size());
return true;
}
@@ -987,6 +1004,13 @@ void TransportManagerImpl::OnDeviceListUpdated(TransportAdapter* ta) {
void TransportManagerImpl::Handle(TransportAdapterEvent event) {
LOG4CXX_TRACE(logger_, "enter");
+
+ if (!events_processing_is_active_) {
+ LOG4CXX_DEBUG(logger_, "Waiting for events handling unlock");
+ sync_primitives::AutoLock auto_lock(events_processing_lock_);
+ events_processing_cond_var_.Wait(auto_lock);
+ }
+
switch (event.event_type) {
case EventTypeEnum::ON_SEARCH_DONE: {
RaiseEvent(&TransportManagerListener::OnScanDevicesFinished);
@@ -1297,6 +1321,13 @@ void TransportManagerImpl::SetTelemetryObserver(TMTelemetryObserver* observer) {
void TransportManagerImpl::Handle(::protocol_handler::RawMessagePtr msg) {
LOG4CXX_TRACE(logger_, "enter");
+
+ if (!events_processing_is_active_) {
+ LOG4CXX_DEBUG(logger_, "Waiting for events handling unlock");
+ sync_primitives::AutoLock auto_lock(events_processing_lock_);
+ events_processing_cond_var_.Wait(auto_lock);
+ }
+
sync_primitives::AutoReadLock lock(connections_lock_);
ConnectionInternal* connection = GetConnection(msg->connection_key());
if (connection == NULL) {
diff --git a/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc b/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc
index 33709cf0f6..7d7fb49e6e 100644
--- a/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc
+++ b/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc
@@ -83,5 +83,5 @@ std::string PlatformUsbDevice::GetSerialNumber() const {
return GetDescString(device_descriptor_.iSerialNumber);
}
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/src/components/transport_manager/src/usb/libusb/usb_connection.cc b/src/components/transport_manager/src/usb/libusb/usb_connection.cc
index 212e6e0ec3..9f57df499e 100644
--- a/src/components/transport_manager/src/usb/libusb/usb_connection.cc
+++ b/src/components/transport_manager/src/usb/libusb/usb_connection.cc
@@ -38,8 +38,8 @@
#include <sstream>
-#include "transport_manager/usb/libusb/usb_connection.h"
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/libusb/usb_connection.h"
#include "utils/logger.h"
@@ -137,7 +137,7 @@ void UsbConnection::OnInTransfer(libusb_transfer* transfer) {
<< transfer->actual_length << ", data:"
<< hex_data(transfer->buffer, transfer->actual_length));
::protocol_handler::RawMessagePtr data(new protocol_handler::RawMessage(
- 0, 0, in_buffer_, transfer->actual_length));
+ 0, 0, in_buffer_, transfer->actual_length, false));
controller_->DataReceiveDone(device_uid_, app_handle_, data);
} else {
LOG4CXX_ERROR(logger_,
diff --git a/src/components/transport_manager/src/usb/libusb/usb_handler.cc b/src/components/transport_manager/src/usb/libusb/usb_handler.cc
index c62e80d1be..975f71e84c 100644
--- a/src/components/transport_manager/src/usb/libusb/usb_handler.cc
+++ b/src/components/transport_manager/src/usb/libusb/usb_handler.cc
@@ -33,14 +33,14 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <cstring>
#include <cstdlib>
+#include <cstring>
-#include "transport_manager/usb/common.h"
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/common.h"
-#include "utils/macro.h"
#include "utils/logger.h"
+#include "utils/macro.h"
#include "utils/threads/thread.h"
namespace transport_manager {
@@ -90,20 +90,20 @@ UsbHandler::UsbHandler()
UsbHandler::~UsbHandler() {
shutdown_requested_ = true;
- if (libusb_context_ != 0) {
+ thread_->stop();
+ LOG4CXX_INFO(logger_, "UsbHandler thread finished");
+ if (libusb_context_ != 0) { // This wakes up libusb_handle_events()
libusb_hotplug_deregister_callback(libusb_context_,
arrived_callback_handle_);
libusb_hotplug_deregister_callback(libusb_context_, left_callback_handle_);
}
- thread_->stop();
- LOG4CXX_INFO(logger_, "UsbHandler thread finished");
+ thread_->join();
+ delete thread_->delegate();
+ threads::DeleteThread(thread_);
if (libusb_context_) {
libusb_exit(libusb_context_);
libusb_context_ = 0;
}
- thread_->join();
- delete thread_->delegate();
- threads::DeleteThread(thread_);
}
void UsbHandler::DeviceArrived(libusb_device* device_libusb) {
diff --git a/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc b/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc
index e85ab12b10..bb6e341659 100644
--- a/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc
+++ b/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc
@@ -76,5 +76,5 @@ std::string PlatformUsbDevice::GetSerialNumber() const {
return GetDescString(device_descriptor_.iSerialNumber);
}
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/src/components/transport_manager/src/usb/qnx/usb_connection.cc b/src/components/transport_manager/src/usb/qnx/usb_connection.cc
index b9386c5d9f..2945639ce9 100644
--- a/src/components/transport_manager/src/usb/qnx/usb_connection.cc
+++ b/src/components/transport_manager/src/usb/qnx/usb_connection.cc
@@ -37,8 +37,8 @@
#include <sched.h>
#include <cstring>
-#include "transport_manager/usb/qnx/usb_connection.h"
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/qnx/usb_connection.h"
#include "utils/logger.h"
@@ -144,7 +144,7 @@ void UsbConnection::OnInTransfer(usbd_urb* urb) {
device_uid_, app_handle_, DataReceiveError());
} else {
::protocol_handler::RawMessagePtr msg(
- new protocol_handler::RawMessage(0, 0, in_buffer_, len));
+ new protocol_handler::RawMessage(0, 0, in_buffer_, len, false));
controller_->DataReceiveDone(device_uid_, app_handle_, msg);
}
diff --git a/src/components/transport_manager/src/usb/qnx/usb_handler.cc b/src/components/transport_manager/src/usb/qnx/usb_handler.cc
index 2336a05f16..9ac4a40d92 100644
--- a/src/components/transport_manager/src/usb/qnx/usb_handler.cc
+++ b/src/components/transport_manager/src/usb/qnx/usb_handler.cc
@@ -35,11 +35,11 @@
#include <errno.h>
-#include <cstring>
#include <cstdlib>
+#include <cstring>
-#include "transport_manager/usb/common.h"
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/common.h"
#include "utils/logger.h"
@@ -321,5 +321,5 @@ TransportAdapter::Error UsbHandler::Init() {
return TransportAdapter::OK;
}
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
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 b7faf1ef6b..d1e9c64c3b 100644
--- a/src/components/transport_manager/src/usb/usb_aoa_adapter.cc
+++ b/src/components/transport_manager/src/usb/usb_aoa_adapter.cc
@@ -34,9 +34,9 @@
*/
#include "transport_manager/usb/usb_aoa_adapter.h"
-#include "transport_manager/usb/usb_device_scanner.h"
-#include "transport_manager/usb/usb_connection_factory.h"
#include "transport_manager/usb/common.h"
+#include "transport_manager/usb/usb_connection_factory.h"
+#include "transport_manager/usb/usb_device_scanner.h"
#include "utils/logger.h"
namespace transport_manager {
@@ -45,7 +45,7 @@ namespace transport_adapter {
CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager")
UsbAoaAdapter::UsbAoaAdapter(resumption::LastState& last_state,
const TransportManagerSettings& settings)
- : TransportAdapterImpl(new UsbDeviceScanner(this),
+ : TransportAdapterImpl(new UsbDeviceScanner(this, settings),
new UsbConnectionFactory(this),
NULL,
last_state,
diff --git a/src/components/transport_manager/src/usb/usb_connection_factory.cc b/src/components/transport_manager/src/usb/usb_connection_factory.cc
index 528855cd50..401dde2534 100644
--- a/src/components/transport_manager/src/usb/usb_connection_factory.cc
+++ b/src/components/transport_manager/src/usb/usb_connection_factory.cc
@@ -31,8 +31,8 @@
*/
#include "transport_manager/usb/usb_connection_factory.h"
-#include "transport_manager/usb/usb_device.h"
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/usb/usb_device.h"
#include "utils/logger.h"
#if defined(__QNXNTO__)
diff --git a/src/components/transport_manager/src/usb/usb_device_scanner.cc b/src/components/transport_manager/src/usb/usb_device_scanner.cc
index 092fd29f1a..51d521c1bf 100644
--- a/src/components/transport_manager/src/usb/usb_device_scanner.cc
+++ b/src/components/transport_manager/src/usb/usb_device_scanner.cc
@@ -33,9 +33,9 @@
#include <sstream>
#include "transport_manager/transport_adapter/transport_adapter_impl.h"
-#include "transport_manager/usb/usb_device_scanner.h"
-#include "transport_manager/usb/usb_device.h"
#include "transport_manager/usb/common.h"
+#include "transport_manager/usb/usb_device.h"
+#include "transport_manager/usb/usb_device_scanner.h"
#include "utils/logger.h"
@@ -47,6 +47,7 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager")
class AoaInitSequence : public UsbControlTransferSequence {
public:
AoaInitSequence();
+ AoaInitSequence(const TransportManagerSettings& settings);
virtual ~AoaInitSequence() {}
private:
@@ -86,8 +87,9 @@ void UsbDeviceScanner::OnDeviceLeft(PlatformUsbDevice* device) {
}
}
-UsbDeviceScanner::UsbDeviceScanner(TransportAdapterController* controller)
- : controller_(controller) {}
+UsbDeviceScanner::UsbDeviceScanner(TransportAdapterController* controller,
+ const TransportManagerSettings& settings)
+ : controller_(controller), settings_(settings) {}
UsbDeviceScanner::~UsbDeviceScanner() {}
@@ -171,28 +173,29 @@ class AoaInitSequence::AoaTurnIntoAccessoryMode : public UsbControlOutTransfer {
}
};
-static char manufacturer[] = "SDL";
-static char model_name[] = "Core";
-static char description[] = "SmartDeviceLink Core Component USB";
-static char version[] = "1.0";
-static char uri[] = "http://www.smartdevicelink.org";
-static char serial_num[] = "N000000";
-
-AoaInitSequence::AoaInitSequence() : UsbControlTransferSequence() {
+AoaInitSequence::AoaInitSequence(const TransportManagerSettings& settings)
+ : UsbControlTransferSequence() {
+ auto manufacturer = settings.aoa_filter_manufacturer().c_str();
+ auto model_name = settings.aoa_filter_model_name().c_str();
+ auto description = settings.aoa_filter_description().c_str();
+ auto version = settings.aoa_filter_version().c_str();
+ auto uri = settings.aoa_filter_uri().c_str();
+ auto serial_num = settings.aoa_filter_serial_number().c_str();
AddTransfer(new AoaGetProtocolRequest);
- AddTransfer(new AoaSendIdString(0, manufacturer, sizeof(manufacturer)));
- AddTransfer(new AoaSendIdString(1, model_name, sizeof(model_name)));
- AddTransfer(new AoaSendIdString(2, description, sizeof(description)));
- AddTransfer(new AoaSendIdString(3, version, sizeof(version)));
- AddTransfer(new AoaSendIdString(4, uri, sizeof(uri)));
- AddTransfer(new AoaSendIdString(5, serial_num, sizeof(serial_num)));
+ AddTransfer(new AoaSendIdString(0, manufacturer, strlen(manufacturer)));
+ AddTransfer(new AoaSendIdString(1, model_name, strlen(model_name)));
+ AddTransfer(new AoaSendIdString(2, description, strlen(description)));
+ AddTransfer(new AoaSendIdString(3, version, strlen(version)));
+ AddTransfer(new AoaSendIdString(4, uri, strlen(uri)));
+ AddTransfer(new AoaSendIdString(5, serial_num, strlen(serial_num)));
AddTransfer(new AoaTurnIntoAccessoryMode);
}
void UsbDeviceScanner::TurnIntoAccessoryMode(PlatformUsbDevice* device) {
LOG4CXX_AUTO_TRACE(logger_);
LOG4CXX_DEBUG(logger_, "PlatformUsbDevice: " << device);
- GetUsbHandler()->StartControlTransferSequence(new AoaInitSequence, device);
+ GetUsbHandler()->StartControlTransferSequence(new AoaInitSequence(settings_),
+ device);
}
void UsbDeviceScanner::SupportedDeviceFound(PlatformUsbDevice* device) {
@@ -247,5 +250,5 @@ bool UsbDeviceScanner::IsInitialised() const {
return true;
}
-} // namespace
-} // namespace
+} // namespace transport_adapter
+} // namespace transport_manager
diff --git a/src/components/transport_manager/test/include/transport_manager/cloud/sample_websocket_server.h b/src/components/transport_manager/test/include/transport_manager/cloud/sample_websocket_server.h
index f785263c98..a8b801c1fe 100644
--- a/src/components/transport_manager/test/include/transport_manager/cloud/sample_websocket_server.h
+++ b/src/components/transport_manager/test/include/transport_manager/cloud/sample_websocket_server.h
@@ -159,4 +159,4 @@ class WSSSession {
} // namespace websocket
} // namespace sample
-#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_CLOUD_SAMPLE_WEBSOCKET_SERVER_H_ \ No newline at end of file
+#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_CLOUD_SAMPLE_WEBSOCKET_SERVER_H_
diff --git a/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h b/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h
index e94586a856..758d22dae2 100644
--- a/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h
+++ b/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_impl.h
@@ -33,10 +33,10 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_IMPL_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_IMPL_H_
-#include "gmock/gmock.h"
#include "config_profile/profile.h"
-#include "transport_manager/transport_manager_impl.h"
+#include "gmock/gmock.h"
#include "transport_manager/mock_transport_manager_settings.h"
+#include "transport_manager/transport_manager_impl.h"
#include "transport_manager/transport_manager_settings.h"
namespace test {
diff --git a/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_listener.h b/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_listener.h
index 4eaf34d041..0c9ca959e9 100644
--- a/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_listener.h
+++ b/src/components/transport_manager/test/include/transport_manager/mock_transport_manager_listener.h
@@ -33,10 +33,10 @@
#ifndef SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_LISTENER_H_
#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_MOCK_TRANSPORT_MANAGER_LISTENER_H_
-#include <vector>
#include <gmock/gmock.h>
-#include "transport_manager/transport_manager_listener.h"
+#include <vector>
#include "protocol/raw_message.h"
+#include "transport_manager/transport_manager_listener.h"
namespace test {
namespace components {
diff --git a/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h b/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h
index 9c7327e6fb..2ee699096f 100644
--- a/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h
+++ b/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h
@@ -38,8 +38,8 @@
#include <gmock/gmock.h>
-#include "transport_manager/common.h"
#include "protocol/common.h"
+#include "transport_manager/common.h"
using ::testing::Matcher;
using ::testing::MatcherInterface;
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 432e4f3fa0..daa9397b7d 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
@@ -34,6 +34,7 @@
#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TCP_MOCK_TCP_TRANSPORT_ADAPTER_H_
#include "gmock/gmock.h"
+#include "transport_manager/common.h"
#include "transport_manager/tcp/tcp_transport_adapter.h"
#include "transport_manager/transport_manager_settings.h"
@@ -50,14 +51,18 @@ class MockTCPTransportAdapter : public TcpTransportAdapter {
resumption::LastState& last_state,
const transport_manager::TransportManagerSettings& settings)
: TcpTransportAdapter(port, last_state, settings) {}
- MOCK_CONST_METHOD2(FindEstablishedConnection,
- ConnectionSPtr(const DeviceUID& device_handle,
- const ApplicationHandle& app_handle));
+ MOCK_CONST_METHOD2(
+ FindEstablishedConnection,
+ ConnectionSPtr(const transport_manager::DeviceUID& device_handle,
+ const transport_manager::ApplicationHandle& app_handle));
- MOCK_CONST_METHOD1(FindDevice, DeviceSptr(const DeviceUID& device_handle));
+ MOCK_CONST_METHOD1(
+ FindDevice,
+ DeviceSptr(const transport_manager::DeviceUID& device_handle));
MOCK_METHOD2(Connect,
- TransportAdapter::Error(const DeviceUID& device_handle,
- const ApplicationHandle& app_handle));
+ TransportAdapter::Error(
+ const transport_manager::DeviceUID& device_handle,
+ const transport_manager::ApplicationHandle& app_handle));
void CallStore() {
Store();
}
diff --git a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_client_connection_listener.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_client_connection_listener.h
index 0f6f1e9f14..6d451294de 100644
--- a/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_client_connection_listener.h
+++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter/mock_client_connection_listener.h
@@ -51,6 +51,12 @@ class MockClientConnectionListener
StartListening,
::transport_manager::transport_adapter::TransportAdapter::Error());
MOCK_METHOD0(
+ SuspendListening,
+ ::transport_manager::transport_adapter::TransportAdapter::Error());
+ MOCK_METHOD0(
+ ResumeListening,
+ ::transport_manager::transport_adapter::TransportAdapter::Error());
+ MOCK_METHOD0(
StopListening,
::transport_manager::transport_adapter::TransportAdapter::Error());
};
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 3a1422cee1..592ed855cc 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
@@ -34,19 +34,19 @@
#define SRC_COMPONENTS_TRANSPORT_MANAGER_TEST_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_MOCK_TRANSPORT_ADAPTER_IMPL_H_
#include "gmock/gmock.h"
-#include "transport_manager/transport_manager_settings.h"
-#include "transport_manager/transport_adapter/transport_adapter_impl.h"
-#include "transport_manager/transport_adapter/device.h"
#include "transport_manager/common.h"
+#include "transport_manager/transport_adapter/device.h"
+#include "transport_manager/transport_adapter/transport_adapter_impl.h"
+#include "transport_manager/transport_manager_settings.h"
-using ::transport_manager::transport_adapter::TransportAdapterImpl;
-using ::transport_manager::transport_adapter::DeviceScanner;
-using ::transport_manager::transport_adapter::ServerConnectionFactory;
+using ::transport_manager::ApplicationHandle;
+using ::transport_manager::DeviceUID;
using ::transport_manager::transport_adapter::ClientConnectionListener;
-using ::transport_manager::transport_adapter::DeviceType;
using ::transport_manager::transport_adapter::ConnectionSPtr;
-using ::transport_manager::DeviceUID;
-using ::transport_manager::ApplicationHandle;
+using ::transport_manager::transport_adapter::DeviceScanner;
+using ::transport_manager::transport_adapter::DeviceType;
+using ::transport_manager::transport_adapter::ServerConnectionFactory;
+using ::transport_manager::transport_adapter::TransportAdapterImpl;
namespace test {
namespace components {
diff --git a/src/components/transport_manager/test/network_interface_listener_test.cc b/src/components/transport_manager/test/network_interface_listener_test.cc
index 55a35fb4ea..c6e007b62a 100644
--- a/src/components/transport_manager/test/network_interface_listener_test.cc
+++ b/src/components/transport_manager/test/network_interface_listener_test.cc
@@ -3,8 +3,8 @@
#include <time.h>
#include "gtest/gtest.h"
-#include "transport_manager/tcp/network_interface_listener_impl.h"
#include "transport_manager/tcp/mock_tcp_client_listener.h"
+#include "transport_manager/tcp/network_interface_listener_impl.h"
#include "utils/test_async_waiter.h"
#include "utils/threads/thread.h"
@@ -15,7 +15,7 @@ namespace transport_manager_test {
namespace {
const long kThreadStartWaitMsec = 10;
const uint32_t kStartNotificationTimeoutMsec = 500;
-}
+} // namespace
using ::testing::_;
using ::testing::AtLeast;
diff --git a/src/components/transport_manager/test/platform_specific/linux/linux_network_interface_listener_test.cc b/src/components/transport_manager/test/platform_specific/linux/linux_network_interface_listener_test.cc
index da58466c29..97c8fac9c9 100644
--- a/src/components/transport_manager/test/platform_specific/linux/linux_network_interface_listener_test.cc
+++ b/src/components/transport_manager/test/platform_specific/linux/linux_network_interface_listener_test.cc
@@ -15,7 +15,7 @@ namespace transport_manager_test {
namespace {
const long kThreadStartWaitMsec = 10;
const uint32_t kStartNotificationTimeoutMsec = 500;
-}
+} // namespace
using ::testing::_;
using ::testing::AtLeast;
@@ -207,7 +207,8 @@ TEST_F(NetworkInterfaceListenerTest, DesignatedInterface_IPAddressChanged) {
SetDummyInterfaceTable(entries1);
EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries1[0].ipv4_address, "")).Times(1);
+ OnIPAddressUpdated(entries1[0].ipv4_address, ""))
+ .Times(1);
// this test case doesn't call Start() - we only check the behavior of
// NotifyIPAddresses()
@@ -216,7 +217,8 @@ TEST_F(NetworkInterfaceListenerTest, DesignatedInterface_IPAddressChanged) {
SetDummyInterfaceTable(entries2);
EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries2[0].ipv4_address, "")).Times(1);
+ OnIPAddressUpdated(entries2[0].ipv4_address, ""))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -239,7 +241,8 @@ TEST_F(NetworkInterfaceListenerTest, DesignatedInterface_IPAddressNotChanged) {
SetDummyInterfaceTable(entries1);
EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries1[0].ipv4_address, "")).Times(1);
+ OnIPAddressUpdated(entries1[0].ipv4_address, ""))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -268,9 +271,10 @@ TEST_F(NetworkInterfaceListenerTest, DesignatedInterface_GoesUnavailable) {
SetDummyInterfaceTable(entries1);
- EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries1[0].ipv4_address,
- entries1[0].ipv6_address)).Times(1);
+ EXPECT_CALL(
+ mock_tcp_client_listener_,
+ OnIPAddressUpdated(entries1[0].ipv4_address, entries1[0].ipv6_address))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -297,9 +301,10 @@ TEST_F(NetworkInterfaceListenerTest, DesignatedInterface_Removed) {
SetDummyInterfaceTable(entries1);
- EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries1[0].ipv4_address,
- entries1[0].ipv6_address)).Times(1);
+ EXPECT_CALL(
+ mock_tcp_client_listener_,
+ OnIPAddressUpdated(entries1[0].ipv4_address, entries1[0].ipv6_address))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -331,7 +336,8 @@ TEST_F(NetworkInterfaceListenerTest, DesignatedInterface_Added) {
SetDummyInterfaceTable(entries2);
EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries2[1].ipv4_address, "")).Times(1);
+ OnIPAddressUpdated(entries2[1].ipv4_address, ""))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -386,9 +392,10 @@ TEST_F(NetworkInterfaceListenerTest,
// dummy_int1 should not be selected
struct InterfaceEntry* expected = &entries[1];
- EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(expected->ipv4_address,
- expected->ipv6_address)).Times(1);
+ EXPECT_CALL(
+ mock_tcp_client_listener_,
+ OnIPAddressUpdated(expected->ipv4_address, expected->ipv6_address))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -412,7 +419,8 @@ TEST_F(NetworkInterfaceListenerTest, AutoSelectInterface_SkipEmptyInterface) {
// net_dummy2 should not be selected
struct InterfaceEntry* expected = &entries[0];
EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(expected->ipv4_address, "")).Times(1);
+ OnIPAddressUpdated(expected->ipv4_address, ""))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -434,9 +442,10 @@ TEST_F(NetworkInterfaceListenerTest,
// dummy_int1 should not be selected
struct InterfaceEntry* expected = &entries[1];
- EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(expected->ipv4_address,
- expected->ipv6_address)).Times(1);
+ EXPECT_CALL(
+ mock_tcp_client_listener_,
+ OnIPAddressUpdated(expected->ipv4_address, expected->ipv6_address))
+ .Times(1);
SetDummyInterfaceTable(entries);
@@ -499,9 +508,10 @@ TEST_F(NetworkInterfaceListenerTest, AutoSelectInterface_EnableInterface) {
entries[0].flags |= IFF_RUNNING;
SetDummyInterfaceTable(entries);
- EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(entries[0].ipv4_address,
- entries[0].ipv6_address)).Times(1);
+ EXPECT_CALL(
+ mock_tcp_client_listener_,
+ OnIPAddressUpdated(entries[0].ipv4_address, entries[0].ipv6_address))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
@@ -550,9 +560,10 @@ TEST_F(NetworkInterfaceListenerTest, AutoSelectInterface_SwitchInterface) {
switched = &entries[0];
}
- EXPECT_CALL(mock_tcp_client_listener_,
- OnIPAddressUpdated(switched->ipv4_address,
- switched->ipv6_address)).Times(1);
+ EXPECT_CALL(
+ mock_tcp_client_listener_,
+ OnIPAddressUpdated(switched->ipv4_address, switched->ipv6_address))
+ .Times(1);
interface_listener_impl_->testCallNotifyIPAddresses();
diff --git a/src/components/transport_manager/test/sample_websocket_server.cc b/src/components/transport_manager/test/sample_websocket_server.cc
index 2cb45242aa..917184a361 100644
--- a/src/components/transport_manager/test/sample_websocket_server.cc
+++ b/src/components/transport_manager/test/sample_websocket_server.cc
@@ -375,4 +375,4 @@ void WSSSession::on_accept(boost::system::error_code ec) {
}
} // namespace websocket
-} // namespace sample \ No newline at end of file
+} // namespace sample
diff --git a/src/components/transport_manager/test/tcp_client_listener_test.cc b/src/components/transport_manager/test/tcp_client_listener_test.cc
index 1f4a17cf6c..d524b3eb6a 100644
--- a/src/components/transport_manager/test/tcp_client_listener_test.cc
+++ b/src/components/transport_manager/test/tcp_client_listener_test.cc
@@ -33,16 +33,16 @@
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/types.h>
-#include <unistd.h>
#include <time.h>
+#include <unistd.h>
#include "gtest/gtest.h"
-#include "transport_manager/transport_adapter/mock_transport_adapter.h"
-#include "transport_manager/tcp/tcp_client_listener.h"
-#include "transport_manager/tcp/network_interface_listener.h"
#include "transport_manager/mock_transport_manager.h"
-#include "transport_manager/transport_adapter/transport_adapter_controller.h"
+#include "transport_manager/tcp/network_interface_listener.h"
+#include "transport_manager/tcp/tcp_client_listener.h"
#include "transport_manager/transport_adapter/mock_device.h"
+#include "transport_manager/transport_adapter/mock_transport_adapter.h"
+#include "transport_manager/transport_adapter/transport_adapter_controller.h"
#include "utils/test_async_waiter.h"
#include "utils/threads/thread.h"
@@ -60,7 +60,7 @@ using namespace ::transport_manager::transport_adapter;
namespace {
const long kThreadStartWaitMsec = 10;
const uint32_t kConnectionCreatedTimeoutMsec = 200;
-}
+} // namespace
class MockTransportAdapterController : public TransportAdapterController {
public:
@@ -395,7 +395,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_changed) {
expected_config_1.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_1)).Times(1);
+ TransportConfigUpdated(expected_config_1))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_1, test_ipv6_addr);
@@ -406,7 +407,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_changed) {
expected_config_2.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_2)).Times(1);
+ TransportConfigUpdated(expected_config_2))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_2, test_ipv6_addr);
@@ -440,7 +442,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_same) {
expected_config_1.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_1)).Times(1);
+ TransportConfigUpdated(expected_config_1))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_1, test_ipv6_addr);
@@ -485,7 +488,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_disabled) {
expected_config_1.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_1)).Times(1);
+ TransportConfigUpdated(expected_config_1))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_1, test_ipv6_addr);
@@ -496,7 +500,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_disabled) {
expected_config_2.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_2)).Times(1);
+ TransportConfigUpdated(expected_config_2))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_2, test_ipv6_addr);
@@ -530,7 +535,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_reenabled) {
expected_config_1.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_1)).Times(1);
+ TransportConfigUpdated(expected_config_1))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_1, test_ipv6_addr);
@@ -541,7 +547,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_reenabled) {
expected_config_2.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_2)).Times(1);
+ TransportConfigUpdated(expected_config_2))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_2, test_ipv6_addr);
@@ -552,7 +559,8 @@ TEST_P(TcpClientListenerTest, OnIPAddressUpdated_IPv4Address_reenabled) {
expected_config_3.insert(std::make_pair(tc_tcp_port, test_port));
EXPECT_CALL(adapter_controller_mock_,
- TransportConfigUpdated(expected_config_3)).Times(1);
+ TransportConfigUpdated(expected_config_3))
+ .Times(1);
tcp_client_listener_->OnIPAddressUpdated(test_ipv4_addr_3, test_ipv6_addr);
diff --git a/src/components/transport_manager/test/tcp_device_test.cc b/src/components/transport_manager/test/tcp_device_test.cc
index 55fa5ac5d3..f52270d1ee 100644
--- a/src/components/transport_manager/test/tcp_device_test.cc
+++ b/src/components/transport_manager/test/tcp_device_test.cc
@@ -30,8 +30,8 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "gtest/gtest.h"
#include "transport_manager/tcp/tcp_device.h"
+#include "gtest/gtest.h"
#include "transport_manager/transport_adapter/device.h"
namespace test {
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 959180948a..f5f6cc38c8 100644
--- a/src/components/transport_manager/test/tcp_transport_adapter_test.cc
+++ b/src/components/transport_manager/test/tcp_transport_adapter_test.cc
@@ -30,24 +30,24 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "gtest/gtest.h"
#include "transport_manager/tcp/tcp_transport_adapter.h"
-#include "resumption/last_state_impl.h"
+#include "gtest/gtest.h"
#include "protocol/raw_message.h"
+#include "resumption/last_state_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"
-#include "transport_manager/transport_adapter/mock_transport_adapter_listener.h"
-#include "transport_manager/transport_adapter/mock_device.h"
#include "transport_manager/transport_adapter/mock_connection.h"
-#include "transport_manager/tcp/mock_tcp_transport_adapter.h"
-#include "transport_manager/mock_transport_manager_settings.h"
+#include "transport_manager/transport_adapter/mock_device.h"
+#include "transport_manager/transport_adapter/mock_transport_adapter_listener.h"
namespace test {
namespace components {
namespace transport_manager_test {
+using ::testing::_;
using ::testing::Return;
using ::testing::ReturnRef;
-using ::testing::_;
using namespace ::protocol_handler;
using namespace ::transport_manager;
diff --git a/src/components/transport_manager/test/transport_adapter_listener_test.cc b/src/components/transport_manager/test/transport_adapter_listener_test.cc
index a5d08035ae..9f18d5bc13 100644
--- a/src/components/transport_manager/test/transport_adapter_listener_test.cc
+++ b/src/components/transport_manager/test/transport_adapter_listener_test.cc
@@ -76,7 +76,8 @@ TEST_F(TransportAdapterListenerTest, OnCommunicationError) {
ReceiveEventFromDevice(IsEvent(EventTypeEnum::ON_COMMUNICATION_ERROR,
&adapter_mock,
dev_id,
- app_handle))).WillOnce(Return(E_SUCCESS));
+ app_handle)))
+ .WillOnce(Return(E_SUCCESS));
transport_listener.OnCommunicationError(&adapter_mock, dev_id, app_handle);
}
@@ -129,7 +130,7 @@ TEST_F(TransportAdapterListenerTest, OnDataReceiveFailed) {
TEST_F(TransportAdapterListenerTest, OnDataSendDone) {
unsigned char data[3] = {0x20, 0x07, 0x01};
::protocol_handler::RawMessagePtr data_container =
- std::make_shared< ::protocol_handler::RawMessage>(1, 1, data, 3);
+ std::make_shared< ::protocol_handler::RawMessage>(1, 1, data, 3, false);
EXPECT_CALL(tr_mock,
ReceiveEventFromDevice(IsEvent(EventTypeEnum::ON_SEND_DONE,
@@ -145,7 +146,7 @@ TEST_F(TransportAdapterListenerTest, OnDataSendDone) {
TEST_F(TransportAdapterListenerTest, OnDataSendFailed) {
unsigned char data[3] = {0x20, 0x07, 0x01};
::protocol_handler::RawMessagePtr data_container =
- std::make_shared< ::protocol_handler::RawMessage>(1, 1, data, 3);
+ std::make_shared< ::protocol_handler::RawMessage>(1, 1, data, 3, false);
DataSendError err;
EXPECT_CALL(tr_mock,
@@ -195,7 +196,8 @@ TEST_F(TransportAdapterListenerTest, OnFindNewApplicationsRequest) {
IsEvent(EventTypeEnum::ON_FIND_NEW_APPLICATIONS_REQUEST,
&adapter_mock,
"",
- 0))).WillOnce(Return(E_SUCCESS));
+ 0)))
+ .WillOnce(Return(E_SUCCESS));
transport_listener.OnFindNewApplicationsRequest(&adapter_mock);
}
@@ -225,7 +227,8 @@ TEST_F(TransportAdapterListenerTest, OnUnexpectedDisconnect) {
ReceiveEventFromDevice(IsEvent(EventTypeEnum::ON_UNEXPECTED_DISCONNECT,
&adapter_mock,
dev_id,
- app_handle))).WillOnce(Return(E_SUCCESS));
+ app_handle)))
+ .WillOnce(Return(E_SUCCESS));
transport_listener.OnUnexpectedDisconnect(
&adapter_mock, dev_id, app_handle, err);
}
diff --git a/src/components/transport_manager/test/transport_adapter_test.cc b/src/components/transport_manager/test/transport_adapter_test.cc
index 35630e45dd..712cc5f750 100644
--- a/src/components/transport_manager/test/transport_adapter_test.cc
+++ b/src/components/transport_manager/test/transport_adapter_test.cc
@@ -118,12 +118,11 @@ class TransportAdapterTest : public ::testing::Test {
"101.180.1.213",
"23234",
"/folder/img_index(1)/file.html/"},
- TestEndpoint{
- "[2600:3c00::f03c:91ff:fe73:2b08]:31333/folder/img_index(1)/"
- "file.html",
- "[2600:3c00::f03c:91ff:fe73:2b08]",
- "31333",
- "/folder/img_index(1)/file.html/"},
+ TestEndpoint{"[2600:3c00::f03c:91ff:fe73:2b08]:31333/folder/img_index(1)/"
+ "file.html",
+ "[2600:3c00::f03c:91ff:fe73:2b08]",
+ "31333",
+ "/folder/img_index(1)/file.html/"},
// With query and/or fragment
TestEndpoint{
"username@localhost:22/folder/img_index(1)/"
@@ -133,15 +132,14 @@ class TransportAdapterTest : public ::testing::Test {
"/folder/img_index(1)/file.html/"
"?eventId=2345&eventName='some%20event'&eventSuccess="
"true"},
- TestEndpoint{
- "username@localhost.com:80/folder/img_index(1)/"
- "file.html?eventId=2345&eventName='some%20event'&"
- "eventSuccess=true#section1",
- "username@localhost.com",
- "80",
- "/folder/img_index(1)/file.html/"
- "?eventId=2345&eventName='some%20event'&eventSuccess=true#"
- "section1"},
+ TestEndpoint{"username@localhost.com:80/folder/img_index(1)/"
+ "file.html?eventId=2345&eventName='some%20event'&"
+ "eventSuccess=true#section1",
+ "username@localhost.com",
+ "80",
+ "/folder/img_index(1)/file.html/"
+ "?eventId=2345&eventName='some%20event'&eventSuccess=true#"
+ "section1"},
TestEndpoint{
"localhost:443/"
"?eventId=2345&eventName='some%20event'&eventSuccess=true#section1",
@@ -200,18 +198,16 @@ class TransportAdapterTest : public ::testing::Test {
"232",
"/folder/img\tindex(1)//file.html/"},
// Incorrect query
- TestEndpoint{
- "username@localhost:443/?eventId=2345&eventName='some "
- "event'&eventSuccess=true",
- "username@localhost",
- "443",
- "?eventId=2345&eventName='some event'&eventSuccess=true"},
- TestEndpoint{
- "username@localhost:443/"
- "?eventId=2345&eventName='some\tevent'&eventSuccess=true",
- "username@localhost",
- "443",
- "?eventId=2345&eventName='some\tevent'&eventSuccess=true"},
+ TestEndpoint{"username@localhost:443/?eventId=2345&eventName='some "
+ "event'&eventSuccess=true",
+ "username@localhost",
+ "443",
+ "?eventId=2345&eventName='some event'&eventSuccess=true"},
+ TestEndpoint{"username@localhost:443/"
+ "?eventId=2345&eventName='some\tevent'&eventSuccess=true",
+ "username@localhost",
+ "443",
+ "?eventId=2345&eventName='some\tevent'&eventSuccess=true"},
// Incorrect fragment
TestEndpoint{"a1(b2).com:80/folder/img_index(1)/file.html#section 1",
"a1(b2).com",
@@ -973,7 +969,7 @@ TEST_F(TransportAdapterTest, SendData) {
const unsigned int kSize = 3;
unsigned char data[kSize] = {0x20, 0x07, 0x01};
const RawMessagePtr kMessage =
- std::make_shared<RawMessage>(1, 1, data, kSize);
+ std::make_shared<RawMessage>(1, 1, data, kSize, false);
EXPECT_CALL(*mock_connection, SendData(kMessage))
.WillOnce(Return(TransportAdapter::OK));
@@ -1013,7 +1009,7 @@ TEST_F(TransportAdapterTest, SendData_ConnectionNotEstablished) {
const unsigned int kSize = 3;
unsigned char data[kSize] = {0x20, 0x07, 0x01};
const RawMessagePtr kMessage =
- std::make_shared<RawMessage>(1, 1, data, kSize);
+ std::make_shared<RawMessage>(1, 1, data, kSize, false);
EXPECT_CALL(*mock_connection, SendData(kMessage)).Times(0);
res = transport_adapter.SendData(dev_id, app_handle, kMessage);
@@ -1039,7 +1035,8 @@ TEST_F(TransportAdapterTest, StartClientListening_ClientNotInitialized) {
EXPECT_CALL(*clientMock, IsInitialised()).WillOnce(Return(false));
EXPECT_CALL(*clientMock, StartListening()).Times(0);
- TransportAdapter::Error res = transport_adapter.StartClientListening();
+ TransportAdapter::Error res = transport_adapter.ChangeClientListening(
+ transport_manager::TransportAction::kVisibilityOn);
EXPECT_EQ(TransportAdapter::BAD_STATE, res);
EXPECT_CALL(*dev_mock, Terminate());
@@ -1062,7 +1059,8 @@ TEST_F(TransportAdapterTest, StartClientListening) {
EXPECT_CALL(*clientMock, StartListening())
.WillOnce(Return(TransportAdapter::OK));
- TransportAdapter::Error res = transport_adapter.StartClientListening();
+ TransportAdapter::Error res = transport_adapter.ChangeClientListening(
+ transport_manager::TransportAction::kVisibilityOn);
EXPECT_EQ(TransportAdapter::OK, res);
EXPECT_CALL(*dev_mock, Terminate());
@@ -1096,7 +1094,8 @@ TEST_F(TransportAdapterTest, StopClientListening_Success) {
EXPECT_CALL(*clientMock, StopListening())
.WillOnce(Return(TransportAdapter::OK));
- res = transport_adapter.StopClientListening();
+ res = transport_adapter.ChangeClientListening(
+ transport_manager::TransportAction::kVisibilityOff);
EXPECT_EQ(TransportAdapter::OK, res);
EXPECT_CALL(*dev_mock, Terminate());
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 8e8a964228..40938d0370 100644
--- a/src/components/transport_manager/test/transport_manager_default_test.cc
+++ b/src/components/transport_manager/test/transport_manager_default_test.cc
@@ -30,20 +30,20 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include "gtest/gtest.h"
-#include "transport_manager/transport_manager.h"
#include "transport_manager/transport_manager_default.h"
-#include "transport_manager/mock_transport_manager_settings.h"
+#include "gtest/gtest.h"
#include "resumption/mock_last_state.h"
+#include "transport_manager/mock_transport_manager_settings.h"
+#include "transport_manager/transport_manager.h"
namespace test {
namespace components {
namespace transport_manager_test {
using resumption_test::MockLastState;
+using ::testing::NiceMock;
using ::testing::Return;
using ::testing::ReturnRef;
-using ::testing::NiceMock;
namespace {
const std::string kDeviceName = "name";
@@ -57,6 +57,22 @@ const std::string kTransportManager = "TransportManager";
const std::string kTcpAdapter = "TcpAdapter";
const std::string kBluetoothAdapter = "BluetoothAdapter";
const std::string kDevices = "devices";
+std::vector<uint8_t> kBTUUID = {0x93,
+ 0x6D,
+ 0xA0,
+ 0x1F,
+ 0x9A,
+ 0xBD,
+ 0x4D,
+ 0x9D,
+ 0x80,
+ 0xC7,
+ 0x02,
+ 0xAF,
+ 0x85,
+ 0xC8,
+ 0x22,
+ 0xA8};
} // namespace
TEST(TestTransportManagerDefault, Init_LastStateNotUsed) {
@@ -78,7 +94,22 @@ TEST(TestTransportManagerDefault, Init_LastStateNotUsed) {
EXPECT_CALL(transport_manager_settings,
transport_manager_tcp_adapter_network_interface())
.WillRepeatedly(ReturnRef(network_interface));
-
+ EXPECT_CALL(transport_manager_settings, bluetooth_uuid())
+ .WillRepeatedly(Return(kBTUUID.data()));
+
+ std::string dummy_parameter;
+ EXPECT_CALL(transport_manager_settings, aoa_filter_manufacturer())
+ .WillRepeatedly(ReturnRef(dummy_parameter));
+ EXPECT_CALL(transport_manager_settings, aoa_filter_model_name())
+ .WillRepeatedly(ReturnRef(dummy_parameter));
+ EXPECT_CALL(transport_manager_settings, aoa_filter_description())
+ .WillRepeatedly(ReturnRef(dummy_parameter));
+ EXPECT_CALL(transport_manager_settings, aoa_filter_version())
+ .WillRepeatedly(ReturnRef(dummy_parameter));
+ EXPECT_CALL(transport_manager_settings, aoa_filter_uri())
+ .WillRepeatedly(ReturnRef(dummy_parameter));
+ EXPECT_CALL(transport_manager_settings, aoa_filter_serial_number())
+ .WillRepeatedly(ReturnRef(dummy_parameter));
transport_manager.Init(mock_last_state);
transport_manager.Stop();
}
@@ -114,6 +145,8 @@ TEST(TestTransportManagerDefault, Init_LastStateUsed) {
EXPECT_CALL(transport_manager_settings,
transport_manager_tcp_adapter_network_interface())
.WillRepeatedly(ReturnRef(network_interface));
+ EXPECT_CALL(transport_manager_settings, bluetooth_uuid())
+ .WillRepeatedly(Return(kBTUUID.data()));
transport_manager.Init(mock_last_state);
transport_manager.Stop();
}
@@ -149,6 +182,8 @@ TEST(TestTransportManagerDefault, Init_LastStateUsed_InvalidPort) {
EXPECT_CALL(transport_manager_settings,
transport_manager_tcp_adapter_network_interface())
.WillRepeatedly(ReturnRef(network_interface));
+ EXPECT_CALL(transport_manager_settings, bluetooth_uuid())
+ .WillRepeatedly(Return(kBTUUID.data()));
transport_manager.Init(mock_last_state);
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 c7d7024658..ac9b801dbd 100644
--- a/src/components/transport_manager/test/transport_manager_impl_test.cc
+++ b/src/components/transport_manager/test/transport_manager_impl_test.cc
@@ -30,26 +30,25 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include "transport_manager/transport_manager_impl.h"
#include <string>
#include "gtest/gtest.h"
#include "protocol/raw_message.h"
+#include "resumption/last_state_impl.h"
#include "transport_manager/common.h"
-#include "transport_manager/transport_manager_impl.h"
-#include "transport_manager/mock_telemetry_observer.h"
-#include "transport_manager/mock_transport_manager_listener.h"
#include "transport_manager/mock_telemetry_observer.h"
-#include "transport_manager/transport_adapter/mock_transport_adapter.h"
#include "transport_manager/mock_transport_manager_impl.h"
+#include "transport_manager/mock_transport_manager_listener.h"
#include "transport_manager/mock_transport_manager_settings.h"
-#include "resumption/last_state_impl.h"
+#include "transport_manager/transport_adapter/mock_transport_adapter.h"
#include "utils/test_async_waiter.h"
using ::testing::_;
using ::testing::AtLeast;
+using ::testing::DoAll;
using ::testing::Return;
using ::testing::ReturnRef;
-using ::testing::DoAll;
using ::protocol_handler::RawMessage;
using ::protocol_handler::RawMessagePtr;
@@ -64,7 +63,7 @@ namespace {
const std::string kAppStorageFolder = "app_storage_folder";
const std::string kAppInfoFolder = "app_info_folder";
const uint32_t kAsyncExpectationsTimeout = 10000u;
-}
+} // namespace
class TransportManagerImplTest : public ::testing::Test {
protected:
@@ -102,7 +101,7 @@ class TransportManagerImplTest : public ::testing::Test {
unsigned char data[kSize] = {
0x20, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
test_message_ = std::make_shared<RawMessage>(
- connection_key_, version_protocol_, data, kSize);
+ connection_key_, version_protocol_, data, kSize, false);
}
DeviceInfo ConstructDeviceInfo(const std::string& mac_address,
@@ -665,15 +664,23 @@ TEST_F(TransportManagerImplTest, RemoveDevice_DeviceWasAdded) {
}
TEST_F(TransportManagerImplTest, SetVisibilityOn_StartClientListening) {
- EXPECT_CALL(*mock_adapter_, StartClientListening())
+ EXPECT_CALL(
+ *mock_adapter_,
+ ChangeClientListening(transport_manager::TransportAction::kVisibilityOn))
.WillOnce(Return(TransportAdapter::OK));
- EXPECT_EQ(::transport_manager::E_SUCCESS, tm_.Visibility(true));
+ EXPECT_EQ(::transport_manager::E_SUCCESS,
+ tm_.PerformActionOnClients(
+ transport_manager::TransportAction::kVisibilityOn));
}
TEST_F(TransportManagerImplTest, SetVisibilityOff_StopClientListening) {
- EXPECT_CALL(*mock_adapter_, StopClientListening())
+ EXPECT_CALL(
+ *mock_adapter_,
+ ChangeClientListening(transport_manager::TransportAction::kVisibilityOff))
.WillOnce(Return(TransportAdapter::OK));
- EXPECT_EQ(::transport_manager::E_SUCCESS, tm_.Visibility(false));
+ EXPECT_EQ(::transport_manager::E_SUCCESS,
+ tm_.PerformActionOnClients(
+ transport_manager::TransportAction::kVisibilityOff));
}
TEST_F(TransportManagerImplTest, StopTransportManager) {
@@ -692,12 +699,14 @@ TEST_F(TransportManagerImplTest, StopTransportManager) {
TEST_F(TransportManagerImplTest, Reinit) {
EXPECT_CALL(*mock_adapter_, Terminate());
EXPECT_CALL(*mock_adapter_, Init()).WillOnce(Return(TransportAdapter::OK));
+ tm_.Deinit();
EXPECT_EQ(E_SUCCESS, tm_.Reinit());
}
TEST_F(TransportManagerImplTest, Reinit_InitAdapterFailed) {
EXPECT_CALL(*mock_adapter_, Terminate());
EXPECT_CALL(*mock_adapter_, Init()).WillOnce(Return(TransportAdapter::FAIL));
+ tm_.Deinit();
EXPECT_EQ(E_ADAPTERS_FAIL, tm_.Reinit());
}
@@ -941,17 +950,22 @@ TEST_F(TransportManagerImplTest, RemoveDevice_TMIsNotInitialized) {
TEST_F(TransportManagerImplTest, Visibility_TMIsNotInitialized) {
// Arrange
- const bool visible = true;
+ const transport_manager::TransportAction action =
+ transport_manager::TransportAction::kVisibilityOn;
// Check before Act
UninitializeTM();
// Act and Assert
- EXPECT_CALL(*mock_adapter_, StartClientListening()).Times(0);
- EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.Visibility(visible));
+ EXPECT_CALL(
+ *mock_adapter_,
+ ChangeClientListening(transport_manager::TransportAction::kVisibilityOn))
+ .Times(0);
+ EXPECT_EQ(E_TM_IS_NOT_INITIALIZED, tm_.PerformActionOnClients(action));
}
TEST_F(TransportManagerImplTest, HandleMessage_ConnectionNotExist) {
EXPECT_CALL(*mock_adapter_,
- SendData(mac_address_, application_id_, test_message_)).Times(0);
+ SendData(mac_address_, application_id_, test_message_))
+ .Times(0);
TestAsyncWaiter waiter;
EXPECT_CALL(*tm_listener_, OnTMMessageSendFailed(_, test_message_))
@@ -971,16 +985,24 @@ TEST_F(TransportManagerImplTest, SearchDevices_TMIsNotInitialized) {
}
TEST_F(TransportManagerImplTest, SetVisibilityOn_TransportAdapterNotSupported) {
- EXPECT_CALL(*mock_adapter_, StartClientListening())
+ EXPECT_CALL(
+ *mock_adapter_,
+ ChangeClientListening(transport_manager::TransportAction::kVisibilityOn))
.WillOnce(Return(TransportAdapter::NOT_SUPPORTED));
- EXPECT_EQ(E_SUCCESS, tm_.Visibility(true));
+ EXPECT_EQ(E_SUCCESS,
+ tm_.PerformActionOnClients(
+ transport_manager::TransportAction::kVisibilityOn));
}
TEST_F(TransportManagerImplTest,
SetVisibilityOff_TransportAdapterNotSupported) {
- EXPECT_CALL(*mock_adapter_, StopClientListening())
+ EXPECT_CALL(
+ *mock_adapter_,
+ ChangeClientListening(transport_manager::TransportAction::kVisibilityOff))
.WillOnce(Return(TransportAdapter::NOT_SUPPORTED));
- EXPECT_EQ(E_SUCCESS, tm_.Visibility(false));
+ EXPECT_EQ(E_SUCCESS,
+ tm_.PerformActionOnClients(
+ transport_manager::TransportAction::kVisibilityOff));
}
TEST_F(TransportManagerImplTest,
@@ -1232,7 +1254,8 @@ TEST_F(TransportManagerImplTest,
EXPECT_CALL(mock_transport_manager_settings_, app_transport_change_timer())
.WillOnce(Return(timeout));
EXPECT_CALL(mock_transport_manager_settings_,
- app_transport_change_timer_addition()).WillOnce(Return(0));
+ app_transport_change_timer_addition())
+ .WillOnce(Return(0));
EXPECT_CALL(*tm_listener_, OnDeviceSwitchingStart(mac_address_, usb_serial));
diff --git a/src/components/transport_manager/test/websocket_connection_test.cc b/src/components/transport_manager/test/websocket_connection_test.cc
index db3bc598b1..d096d351f5 100644
--- a/src/components/transport_manager/test/websocket_connection_test.cc
+++ b/src/components/transport_manager/test/websocket_connection_test.cc
@@ -425,6 +425,7 @@ TEST_F(WebsocketConnectionTest, WSSConnection_SUCCESS_ValidTarget) {
t1.join();
}
+#ifdef ENABLE_SECURITY
TEST_F(WebsocketConnectionTest, WSSConnection_FAILURE_InvalidTarget) {
transport_manager::transport_adapter::CloudAppProperties properties{
.endpoint = "wss://" + kHost + ":" + std::to_string(kPort),
@@ -486,6 +487,7 @@ TEST_F(WebsocketConnectionTest, WSSConnection_FAILURE_IncorrectCert) {
wss_session->Stop();
t1.join();
}
+#endif // ENABLE_SECURITY
} // namespace transport_manager_test
} // namespace components
} // namespace test