From 79f5b6fcd3d50020fb567d4c0600d32f4f2a951e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 4 Feb 2014 14:14:32 +0100 Subject: [PATCH] Added / prepared for state disconnecting: Taking up the idea of MS (disconnecting), and based on a real world issue where the transition state of disconnecting was still handled as connected. --- samples/cli_client/client.cpp | 2 ++ src/blackcore/network.h | 1 + src/blackcore/network_vatlib.cpp | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/samples/cli_client/client.cpp b/samples/cli_client/client.cpp index 5f2cd67d1..f40ef06c7 100644 --- a/samples/cli_client/client.cpp +++ b/samples/cli_client/client.cpp @@ -363,6 +363,7 @@ void Client::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldSt switch (newStatus) { case BlackCore::INetwork::Disconnected: std::cout << "CONN_STATUS_DISCONNECTED"; break; + case BlackCore::INetwork::Disconnecting: std::cout << "CONN_STATUS_DISCONNECTING"; break; case BlackCore::INetwork::DisconnectedError: std::cout << "CONN_STATUS_DISCONNECTED_ERROR"; break; case BlackCore::INetwork::Connecting: std::cout << "CONN_STATUS_CONNECTING"; break; case BlackCore::INetwork::Connected: std::cout << "CONN_STATUS_CONNECTED"; break; @@ -370,6 +371,7 @@ void Client::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus oldSt switch (oldStatus) { case BlackCore::INetwork::Disconnected: std::cout << " (was CONN_STATUS_DISCONNECTED)\n"; break; + case BlackCore::INetwork::Disconnecting: std::cout << " (was CONN_STATUS_DISCONNECTING)\n"; break; case BlackCore::INetwork::DisconnectedError: std::cout << " (was CONN_STATUS_DISCONNECTED_ERROR)\n"; break; case BlackCore::INetwork::Connecting: std::cout << " (was CONN_STATUS_CONNECTING)\n"; break; case BlackCore::INetwork::Connected: std::cout << " (was CONN_STATUS_CONNECTED)\n"; break; diff --git a/src/blackcore/network.h b/src/blackcore/network.h index 42d08dffb..cf36158fd 100644 --- a/src/blackcore/network.h +++ b/src/blackcore/network.h @@ -88,6 +88,7 @@ namespace BlackCore enum ConnectionStatus { Disconnected = 0, //!< Not connected + Disconnecting, //!< In transition to disconnected DisconnectedError, //!< Disconnected due to socket error Connecting, //!< Connection initiated but not established Connected //!< Connection established diff --git a/src/blackcore/network_vatlib.cpp b/src/blackcore/network_vatlib.cpp index d4e02fb5e..60d6f471e 100644 --- a/src/blackcore/network_vatlib.cpp +++ b/src/blackcore/network_vatlib.cpp @@ -343,6 +343,8 @@ namespace BlackCore if (m_net && m_net->IsValid() && m_net->IsNetworkConnected()) { + // I let others know we are going down + emit this->connectionStatusChanged(convertConnectionStatus(m_status), Disconnecting); m_net->LogoffAndDisconnect(c_logoffTimeoutSec); } } @@ -788,7 +790,7 @@ namespace BlackCore case Cvatlib_Network::error_NoFP: msg = "Server: no flight plan"; break; case Cvatlib_Network::error_NoWeather: msg = "Server: requested weather profile does not exist"; break; - // we have no idea what these mean + // we have no idea what these mean case Cvatlib_Network::error_Registered: case Cvatlib_Network::error_InvalidControl: msg = "Server: "; msg.append(cbvar_cast(cbvar)->fromFSD(msgData)); break;