From 60ad43d29126683384417231853f5eecb352baf3 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sat, 11 Jan 2014 17:59:45 +0000 Subject: [PATCH] INetwork: removed the five connectionStatus signals and added one signal with an enum argument to replace them. Requested by Klaus, to ease the implementation of signal consumers. --- samples/cli_client/client.cpp | 35 ++++++++------------------------ samples/cli_client/client.h | 6 +----- src/blackcore/network.h | 13 +++++++----- src/blackcore/network_vatlib.cpp | 10 ++++----- tests/blackcore/testnetwork.cpp | 6 +++--- 5 files changed, 25 insertions(+), 45 deletions(-) diff --git a/samples/cli_client/client.cpp b/samples/cli_client/client.cpp index 5cd46c637..27e5680b1 100644 --- a/samples/cli_client/client.cpp +++ b/samples/cli_client/client.cpp @@ -14,11 +14,7 @@ Client::Client(BlackMisc::IContext &ctx) using namespace BlackCore; connect(m_net, &INetwork::atcPositionUpdate, this, &Client::atcPositionUpdate); connect(m_net, &INetwork::atcDisconnected, this, &Client::atcDisconnected); - connect(m_net, &INetwork::connectionStatusIdle, this, &Client::connectionStatusIdle); - connect(m_net, &INetwork::connectionStatusConnecting, this, &Client::connectionStatusConnecting); - connect(m_net, &INetwork::connectionStatusConnected, this, &Client::connectionStatusConnected); - connect(m_net, &INetwork::connectionStatusDisconnected, this, &Client::connectionStatusDisconnected); - connect(m_net, &INetwork::connectionStatusError, this, &Client::connectionStatusError); + connect(m_net, &INetwork::connectionStatusChanged, this, &Client::connectionStatusChanged); connect(m_net, &INetwork::ipQueryReplyReceived, this, &Client::ipQueryReplyReceived); connect(m_net, &INetwork::frequencyQueryReplyReceived, this, &Client::freqQueryReplyReceived); connect(m_net, &INetwork::serverQueryReplyReceived, this, &Client::serverQueryReplyReceived); @@ -320,29 +316,14 @@ void Client::atcDisconnected(const BlackMisc::Aviation::CCallsign &callsign) std::cout << "ATC_DISCONNECTED " << callsign << std::endl; } -void Client::connectionStatusIdle() +void Client::connectionStatusChanged(BlackCore::INetwork::ConnectionStatus status) { - std::cout << "CONN_STATUS_IDLE" << std::endl; -} - -void Client::connectionStatusConnecting() -{ - std::cout << "CONN_STATUS_CONNECTING" << std::endl; -} - -void Client::connectionStatusConnected() -{ - std::cout << "CONN_STATUS_CONNECTED" << std::endl; -} - -void Client::connectionStatusDisconnected() -{ - std::cout << "CONN_STATUS_DISCONNECTED" << std::endl; -} - -void Client::connectionStatusError() -{ - std::cout << "CONN_STATUS_ERROR" << std::endl; + switch (status) + { + case BlackCore::INetwork::Disconnected: std::cout << "CONN_STATUS_DISCONNECTED" << std::endl; break; + case BlackCore::INetwork::Connecting: std::cout << "CONN_STATUS_CONNECTING" << std::endl; break; + case BlackCore::INetwork::Connected: std::cout << "CONN_STATUS_CONNECTED" << std::endl; break; + } } void Client::ipQueryReplyReceived(const QString &ip) diff --git a/samples/cli_client/client.h b/samples/cli_client/client.h index 328db0062..2f822bb26 100644 --- a/samples/cli_client/client.h +++ b/samples/cli_client/client.h @@ -81,11 +81,7 @@ public slots: //to receive from INetwork void atcPositionUpdate(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq, const BlackMisc::Geo::CCoordinateGeodetic &pos, const BlackMisc::PhysicalQuantities::CLength &range); void atcDisconnected(const BlackMisc::Aviation::CCallsign &callsign); - void connectionStatusIdle(); - void connectionStatusConnecting(); - void connectionStatusConnected(); - void connectionStatusDisconnected(); - void connectionStatusError(); + void connectionStatusChanged(BlackCore::INetwork::ConnectionStatus status); void ipQueryReplyReceived(const QString &ip); void freqQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CFrequency &freq); void serverQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString &hostname); diff --git a/src/blackcore/network.h b/src/blackcore/network.h index 51cb8108b..31d8caaa4 100644 --- a/src/blackcore/network.h +++ b/src/blackcore/network.h @@ -55,6 +55,13 @@ namespace BlackCore SupportsModelDescriptions = 1 << 2 }; + enum ConnectionStatus + { + Disconnected = 0, + Connecting, + Connected + }; + public slots: // Network virtual void setServer(const BlackMisc::Network::CServer &server) = 0; @@ -108,11 +115,7 @@ namespace BlackCore // Connection / Network in general void kicked(const QString &msg); - void connectionStatusIdle(); - void connectionStatusConnecting(); - void connectionStatusConnected(); - void connectionStatusDisconnected(); - void connectionStatusError(); + void connectionStatusChanged(ConnectionStatus status); void pong(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CTime &elapsedTime); void capabilitiesQueryReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, quint32 flags); void ipQueryReplyReceived(const QString &ip); diff --git a/src/blackcore/network_vatlib.cpp b/src/blackcore/network_vatlib.cpp index a5b2b2d41..8446d4ced 100644 --- a/src/blackcore/network_vatlib.cpp +++ b/src/blackcore/network_vatlib.cpp @@ -447,11 +447,11 @@ namespace BlackCore cbvar_cast(cbvar)->m_status = newStatus; switch (newStatus) { - case Cvatlib_Network::connStatus_Idle: emit cbvar_cast(cbvar)->connectionStatusIdle(); break; - case Cvatlib_Network::connStatus_Connecting: emit cbvar_cast(cbvar)->connectionStatusConnecting(); break; - case Cvatlib_Network::connStatus_Connected: emit cbvar_cast(cbvar)->connectionStatusConnected(); break; - case Cvatlib_Network::connStatus_Disconnected: emit cbvar_cast(cbvar)->connectionStatusDisconnected(); break; - case Cvatlib_Network::connStatus_Error: emit cbvar_cast(cbvar)->connectionStatusError(); break; + case Cvatlib_Network::connStatus_Idle: emit cbvar_cast(cbvar)->connectionStatusChanged(Disconnected); break; + case Cvatlib_Network::connStatus_Connecting: emit cbvar_cast(cbvar)->connectionStatusChanged(Connecting); break; + case Cvatlib_Network::connStatus_Connected: emit cbvar_cast(cbvar)->connectionStatusChanged(Connected); break; + case Cvatlib_Network::connStatus_Disconnected: emit cbvar_cast(cbvar)->connectionStatusChanged(Disconnected); break; + case Cvatlib_Network::connStatus_Error: emit cbvar_cast(cbvar)->connectionStatusChanged(Disconnected); break; } } diff --git a/tests/blackcore/testnetwork.cpp b/tests/blackcore/testnetwork.cpp index 7e1dceab7..808b80058 100644 --- a/tests/blackcore/testnetwork.cpp +++ b/tests/blackcore/testnetwork.cpp @@ -21,8 +21,8 @@ void BlackCoreTest::CTestNetwork::networkTest(BlackCore::INetwork *net) .send(&INetwork::setServer, CServer("", "", "vatsim-germany.org", 6809, CUser("guest", "", "", "guest"))) .send(&INetwork::setCallsign, "BLACK") .send(&INetwork::initiateConnection) - .expect(&INetwork::connectionStatusConnecting, [] { qDebug() << "CONNECTING"; }) - .expect(&INetwork::connectionStatusConnected, [] { qDebug() << "CONNECTED"; }) + .expect(&INetwork::connectionStatusChanged, [](INetwork::ConnectionStatus s) { QVERIFY(s == INetwork::Connecting); qDebug() << "CONNECTING"; }) + .expect(&INetwork::connectionStatusChanged, [](INetwork::ConnectionStatus s) { QVERIFY(s == INetwork::Connected); qDebug() << "CONNECTED"; }) .wait(10); EXPECT_UNIT(e) @@ -32,6 +32,6 @@ void BlackCoreTest::CTestNetwork::networkTest(BlackCore::INetwork *net) EXPECT_UNIT(e) .send(&INetwork::terminateConnection) - .expect(&INetwork::connectionStatusDisconnected, [] { qDebug() << "DISCONNECTED"; }) + .expect(&INetwork::connectionStatusChanged, [](INetwork::ConnectionStatus s) { QVERIFY(s == INetwork::Disconnected); qDebug() << "DISCONNECTED"; }) .wait(10); }