From 3c8b87fcf0fa5f75cffa511e275c9df7afb8e611 Mon Sep 17 00:00:00 2001 From: "michal.szwaj" Date: Wed, 21 Mar 2018 23:49:26 +0100 Subject: [PATCH] Add blocking connect method --- include/f1x/aasdk/TCP/ITCPWrapper.hpp | 1 + include/f1x/aasdk/TCP/TCPWrapper.hpp | 1 + include_ut/f1x/aasdk/TCP/UT/TCPWrapper.mock.hpp | 1 + src/TCP/TCPWrapper.cpp | 7 +++++++ 4 files changed, 10 insertions(+) diff --git a/include/f1x/aasdk/TCP/ITCPWrapper.hpp b/include/f1x/aasdk/TCP/ITCPWrapper.hpp index 8bb6532..1accba4 100644 --- a/include/f1x/aasdk/TCP/ITCPWrapper.hpp +++ b/include/f1x/aasdk/TCP/ITCPWrapper.hpp @@ -41,6 +41,7 @@ public: virtual void asyncRead(boost::asio::ip::tcp::socket& socket, common::DataBuffer buffer, Handler handler) = 0; virtual void close(boost::asio::ip::tcp::socket& socket) = 0; virtual void asyncConnect(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port, ConnectHandler handler) = 0; + virtual boost::system::error_code connect(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port) = 0; }; } diff --git a/include/f1x/aasdk/TCP/TCPWrapper.hpp b/include/f1x/aasdk/TCP/TCPWrapper.hpp index 79ab483..1940d51 100644 --- a/include/f1x/aasdk/TCP/TCPWrapper.hpp +++ b/include/f1x/aasdk/TCP/TCPWrapper.hpp @@ -34,6 +34,7 @@ public: void asyncRead(boost::asio::ip::tcp::socket& socket, common::DataBuffer buffer, Handler handler) override; void close(boost::asio::ip::tcp::socket& socket) override; void asyncConnect(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port, ConnectHandler handler) override; + boost::system::error_code connect(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port) override; }; } diff --git a/include_ut/f1x/aasdk/TCP/UT/TCPWrapper.mock.hpp b/include_ut/f1x/aasdk/TCP/UT/TCPWrapper.mock.hpp index 39ac004..b0f1881 100644 --- a/include_ut/f1x/aasdk/TCP/UT/TCPWrapper.mock.hpp +++ b/include_ut/f1x/aasdk/TCP/UT/TCPWrapper.mock.hpp @@ -37,6 +37,7 @@ public: MOCK_METHOD3(asyncRead, void(boost::asio::ip::tcp::socket& socket, common::DataBuffer buffer, Handler handler)); MOCK_METHOD1(close, void(boost::asio::ip::tcp::socket& socket)); MOCK_METHOD4(asyncConnect, void(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port, ConnectHandler handler)); + MOCK_METHOD3(connect, boost::system::error_code(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port)); }; } diff --git a/src/TCP/TCPWrapper.cpp b/src/TCP/TCPWrapper.cpp index 9f016d0..70048cf 100644 --- a/src/TCP/TCPWrapper.cpp +++ b/src/TCP/TCPWrapper.cpp @@ -48,6 +48,13 @@ void TCPWrapper::asyncConnect(boost::asio::ip::tcp::socket& socket, const std::s socket.async_connect(boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(hostname), port), std::move(handler)); } +boost::system::error_code TCPWrapper::connect(boost::asio::ip::tcp::socket& socket, const std::string& hostname, uint16_t port) +{ + boost::system::error_code ec; + socket.connect(boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(hostname), port), ec); + return ec; +} + } } }