Add blocking connect method

pull/1/head
michal.szwaj 2018-03-21 23:49:26 +01:00
parent cc4557246d
commit 3c8b87fcf0
4 changed files with 10 additions and 0 deletions

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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));
};
}

View File

@ -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;
}
}
}
}