From 51ff9b669dff18c9300b9fe5bdef91e7040edac0 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Tue, 29 Jan 2019 15:49:15 +0100 Subject: [HICN-17] Add possibility to destroy connection directly from stopEventsLoop with an additional parameter. Change-Id: I869a079a7b2f436768a62de66fd9281a7d1243cd Signed-off-by: Mauro Sardara --- utils/src/ping_client.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'utils') diff --git a/utils/src/ping_client.cc b/utils/src/ping_client.cc index e98a8b422..24f7bd7c9 100755 --- a/utils/src/ping_client.cc +++ b/utils/src/ping_client.cc @@ -76,13 +76,15 @@ class Configuration { class Client : interface::BasePortal::ConsumerCallback { public: - Client(Configuration *c) : portal_() { + Client(Configuration *c) + : portal_(), + signals_(portal_.getIoService(), SIGINT, SIGQUIT) { // Let the main thread to catch SIGINT and SIGQUIT - // asio::signal_set signals(io_service, SIGINT, SIGQUIT); - // signals.async_wait(std::bind(&Client::afterSignal, this)); - portal_.connect(); portal_.setConsumerCallback(this); + + signals_.async_wait(std::bind(&Client::afterSignal, this)); + timer_.reset(new asio::steady_timer(portal_.getIoService())); config_ = c; sequence_number_ = config_->first_suffix_; @@ -272,7 +274,7 @@ class Client : interface::BasePortal::ConsumerCallback { std::cout << "Stop ping" << std::endl; std::cout << "Sent: " << sent_ << " Received: " << received_ << " Timeouts: " << timedout_ << std::endl; - portal_.stopEventsLoop(); + portal_.stopEventsLoop(true); } void reset() { @@ -289,6 +291,7 @@ class Client : interface::BasePortal::ConsumerCallback { private: SendTimeMap send_timestamps_; interface::BasePortal portal_; + asio::signal_set signals_; uint64_t sequence_number_; uint64_t last_jump_; uint64_t processed_; -- cgit 1.2.3-korg