set close() public;

add assert for connect;
This commit is contained in:
qicosmos
2019-04-19 17:48:48 +08:00
parent da76963051
commit d0c11da6a4
2 changed files with 22 additions and 10 deletions
+16 -9
View File
@@ -72,6 +72,7 @@ namespace rest_rpc {
}
void async_connect() {
assert(port_ != 0);
reset_deadline_timer(connect_timeout_);
auto addr = boost::asio::ip::address::from_string(host_);
socket_.async_connect({ addr, port_ }, [this](const boost::system::error_code& ec) {
@@ -99,6 +100,7 @@ namespace rest_rpc {
}
bool connect(size_t timeout = 1) {
assert(port_ != 0);
async_connect();
return wait_conn(timeout);
}
@@ -132,6 +134,20 @@ namespace rest_rpc {
return result;
}
void update_addr(const std::string& host, unsigned short port) {
host_ = host;
port_ = port;
}
void close() {
has_connected_ = false;
if (socket_.is_open()) {
boost::system::error_code ignored_ec;
socket_.shutdown(tcp::socket::shutdown_both, ignored_ec);
socket_.close(ignored_ec);
}
}
void set_error_callback(std::function<void(boost::system::error_code)> f) {
err_cb_ = std::move(f);
}
@@ -355,15 +371,6 @@ namespace rest_rpc {
});
}
void close() {
has_connected_ = false;
if (socket_.is_open()) {
boost::system::error_code ignored_ec;
socket_.shutdown(tcp::socket::shutdown_both, ignored_ec);
socket_.close(ignored_ec);
}
}
boost::asio::io_service ios_;
tcp::socket socket_;
boost::asio::io_service::work work_;