diff options
Diffstat (limited to 'src/components/transport_manager/include/transport_manager/tcp')
6 files changed, 26 insertions, 29 deletions
diff --git a/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h b/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h index d31beea26c..cd319ca543 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h +++ b/src/components/transport_manager/include/transport_manager/tcp/dnssd_service_browser.h @@ -1,4 +1,4 @@ -/* +/** * \file dnssd_service_browser.h * \brief DnssdServiceBrowser class header file. * @@ -38,12 +38,12 @@ #include <string> #include <vector> +#include <pthread.h> #include <avahi-client/client.h> #include <avahi-client/lookup.h> #include <avahi-common/error.h> #include <avahi-common/thread-watch.h> -#include "utils/lock.h" #include "transport_manager/transport_adapter/device_scanner.h" #include "transport_manager/transport_adapter/transport_adapter.h" @@ -121,7 +121,7 @@ class DnssdServiceBrowser : public DeviceScanner { typedef std::vector<DnssdServiceRecord> ServiceRecords; ServiceRecords service_records_; - sync_primitives::Lock mutex_; + pthread_mutex_t mutex_; bool initialised_; } 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 f54e5a8fc2..12eab5a1b5 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 @@ -1,4 +1,4 @@ -/* +/** * \file tcp_client_listener.h * \brief TcpClientListener class header file. * @@ -36,10 +36,10 @@ #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 "utils/threads/thread_delegate.h" #include "transport_manager/transport_adapter/client_connection_listener.h" -class Thread; +#include "utils/threads/thread_delegate.h" +#include "utils/threads/thread.h" namespace transport_manager { namespace transport_adapter { @@ -49,7 +49,8 @@ class TransportAdapterController; /** * @brief Listener of device adapter that use TCP transport. */ -class TcpClientListener : public ClientConnectionListener { +class TcpClientListener : public ClientConnectionListener, + public threads::ThreadDelegate { public: /** * @breaf Constructor. @@ -63,6 +64,14 @@ class TcpClientListener : public ClientConnectionListener { bool enable_keepalive); /** + * @brief Start TCP client listener thread. + */ + void threadMain(); + + bool exitThreadMain(); + protected: + + /** * @brief Destructor. */ virtual ~TcpClientListener(); @@ -98,26 +107,15 @@ class TcpClientListener : public ClientConnectionListener { * @brief Terminate TCP client listener thread. */ virtual TransportAdapter::Error StopListening(); - private: const uint16_t port_; const bool enable_keepalive_; TransportAdapterController* controller_; + // TODO(Eamakhov): change to threads::Thread usage threads::Thread* thread_; int socket_; + bool thread_started_; bool thread_stop_requested_; - - void Loop(); - void StopLoop(); - - class ListeningThreadDelegate : public threads::ThreadDelegate { - public: - explicit ListeningThreadDelegate(TcpClientListener* parent); - virtual void threadMain(); - void exitThreadMain(); - private: - TcpClientListener* parent_; - }; }; } // namespace transport_adapter diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h index 690c3127bd..fba85aa601 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h +++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_connection_factory.h @@ -1,4 +1,4 @@ -/* +/** * \file tcp_connection_factory.h * \brief TcpConnectionFactory class header file. * @@ -54,6 +54,7 @@ class TcpConnectionFactory : public ServerConnectionFactory { * @param controller Pointer to the device adapter controller. */ TcpConnectionFactory(TransportAdapterController* controller); + protected: /** * @brief Start TCP connection factory. @@ -68,8 +69,8 @@ class TcpConnectionFactory : public ServerConnectionFactory { * * @return Error information about possible reason of failure. */ - virtual TransportAdapter::Error CreateConnection( - const DeviceUID& device_uid, const ApplicationHandle& app_handle); + virtual TransportAdapter::Error CreateConnection(const DeviceUID& device_uid, + const ApplicationHandle& app_handle); /** * @brief 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 2b89e09020..08821ab3c4 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 @@ -1,4 +1,4 @@ -/* +/** * \file tcp_device.h * \brief TcpDevice class header file. * @@ -47,8 +47,6 @@ #include <sys/types.h> #include <sys/socket.h> -#include "utils/lock.h" - namespace transport_manager { namespace transport_adapter { @@ -138,7 +136,7 @@ class TcpDevice : public Device { uint16_t port; }; std::map<ApplicationHandle, Application> applications_; - mutable sync_primitives::Lock applications_mutex_; + mutable pthread_mutex_t applications_mutex_; const in_addr_t in_addr_; const std::string name_; ApplicationHandle last_handle_; diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h index 9af825ea93..8fe7b8e837 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h +++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h @@ -1,4 +1,4 @@ -/* +/** * \file tcp_socket_connection.h * \brief TcpSocketConnection class header file. * diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h index 277194b512..1319c40eeb 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h +++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_transport_adapter.h @@ -1,4 +1,4 @@ -/* +/** * \file tcp_transport_adapter.h * \brief TcpTransportAdapter class header file. * |