From b27216a50bd6566b6fd9203d3acf191005ae5763 Mon Sep 17 00:00:00 2001 From: Determinant Date: Fri, 16 Nov 2018 17:05:28 -0500 Subject: clean up code --- include/salticidae/network.h | 47 ++++++++++++++------------------------------ 1 file changed, 15 insertions(+), 32 deletions(-) (limited to 'include/salticidae/network.h') diff --git a/include/salticidae/network.h b/include/salticidae/network.h index 2d16938..5e966fe 100644 --- a/include/salticidae/network.h +++ b/include/salticidae/network.h @@ -482,7 +482,7 @@ void MsgNetwork::send_msg(const MsgType &_msg, Conn &conn) { template void PeerNetwork::tcall_reset_timeout(ConnPool::Worker *worker, const conn_t &conn, double timeout) { - worker->get_tcall()->call([conn, t=timeout](ThreadCall::Handle &) { + worker->get_tcall()->async_call([conn, t=timeout](ThreadCall::Handle &) { if (!conn->ev_timeout) return; conn->ev_timeout.del(); conn->ev_timeout.add_with_timeout(t, 0); @@ -621,7 +621,7 @@ void PeerNetwork::msg_ping(MsgPing &&msg, Conn &_conn) { auto conn = static_pointer_cast(_conn.self()); if (!conn) return; uint16_t port = msg.port; - this->disp_tcall->call([this, conn, port](ThreadCall::Handle &msg) { + this->disp_tcall->async_call([this, conn, port](ThreadCall::Handle &msg) { SALTICIDAE_LOG_INFO("ping from %s, port %u", std::string(*conn).c_str(), ntohs(port)); if (check_new_conn(conn, port)) return; @@ -635,7 +635,7 @@ void PeerNetwork::msg_pong(MsgPong &&msg, Conn &_conn) { auto conn = static_pointer_cast(_conn.self()); if (!conn) return; uint16_t port = msg.port; - this->disp_tcall->call([this, conn, port](ThreadCall::Handle &msg) { + this->disp_tcall->async_call([this, conn, port](ThreadCall::Handle &msg) { auto it = id2peer.find(conn->peer_id); if (it == id2peer.end()) { @@ -658,7 +658,7 @@ void PeerNetwork::listen(NetAddr listen_addr) { this->disp_tcall->call([this, listen_addr](ThreadCall::Handle &msg) { MsgNet::_listen(listen_addr); listen_port = listen_addr.port; - }, true); + }); } template @@ -669,40 +669,28 @@ void PeerNetwork::add_peer(const NetAddr &addr) { throw PeerNetworkError("peer already exists"); id2peer.insert(std::make_pair(addr, new Peer(addr, nullptr, this->disp_ec))); start_active_conn(addr); - }, true); + }); } template const typename PeerNetwork::conn_t PeerNetwork::get_peer_conn(const NetAddr &paddr) const { - auto ret = static_cast(this->disp_tcall->call( + auto ret = *(static_cast(this->disp_tcall->call( [this, paddr](ThreadCall::Handle &h) { auto it = id2peer.find(paddr); if (it == id2peer.end()) throw PeerNetworkError("peer does not exist"); - auto ptr = new conn_t(it->second->conn); - h.set_result(ptr); - h.set_deleter([](void *data) { - delete static_cast(data); - }); - })); - auto conn = *ret; - delete ret; - return std::move(conn); + h.set_result(it->second->conn); + }).get())); + return std::move(*ret); } template bool PeerNetwork::has_peer(const NetAddr &paddr) const { - auto ret = static_cast(this->disp_tcall->call( + return *(static_cast(this->disp_tcall->call( [this, paddr](ThreadCall::Handle &h) { h.set_result(id2peer.count(paddr)); - h.set_deleter([](void *data) { - delete static_cast(data); - }); - })); - auto has = *ret; - delete ret; - return has; + }).get())); } template @@ -734,19 +722,14 @@ void ClientNetwork::Conn::on_teardown() { template template void ClientNetwork::send_msg(const MsgType &msg, const NetAddr &addr) { - auto ret = static_cast(this->disp_tcall->call( + auto ret = *(static_cast(this->disp_tcall->call( [this, addr](ThreadCall::Handle &h) { auto it = addr2conn.find(addr); if (it == addr2conn.end()) throw PeerNetworkError("client does not exist"); - auto ptr = new conn_t(it->second->conn); - h.set_result(ptr); - h.set_deleter([](void *data) { - delete static_cast(data); - }); - })); - send_msg(msg, **ret); - delete ret; + h.set_result(it->second->conn); + }).get())); + send_msg(msg, *ret); } template -- cgit v1.2.3