Improved handling in CContextNetwork::getUsersForCallsigns

CContextNetwork::readAtcBookingsFromSource(), URL from settings
Helper method: BlackMisc::Settings::CSettingsNetwork getNetworkSettings()
This commit is contained in:
Klaus Basan
2014-01-25 01:58:55 +01:00
parent ee5336e308
commit 6d5ad3ca75
3 changed files with 50 additions and 24 deletions

View File

@@ -10,6 +10,7 @@
#include "blackcore/network_vatlib.h"
#include "blackcore/coreruntime.h"
#include "blackcore/context_network_interface.h"
#include "blackcore/context_settings_interface.h"
#include "blackmisc/avcallsignlist.h"
#include "blackmisc/statusmessagelist.h"
#include "blackmisc/nwuserlist.h"
@@ -34,7 +35,6 @@ namespace BlackCore
public:
/*!
* \brief With link to server
* \param server
*/
CContextNetwork(CCoreRuntime *runtime);
@@ -127,45 +127,37 @@ namespace BlackCore
virtual BlackMisc::CStatusMessageList setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft);
/*!
* \brief Update own position
* \param position own position
* \param altitude own altitude
* \copydoc IContextNetwork::updateOwnPosition()
*/
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude);
/*!
* \brief Update own situation
* \param situation own situation
* \copydoc IContextNetwork::updateOwnSituation()
*/
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation);
/*!
* \brief Update own cockpit
* \param com1 my COM1 unit
* \param com2 my COM2 unit
* \param transponder my transponder
* \copydoc IContextNetwork::updateOwnCockpit()
*/
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder);
/*!
* \brief Get own aircraft
* \copydoc IContextNetwork::getOwnAircraft()
*/
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const;
/*!
* \brief Text messages (also private chat messages)
* \copydoc IContextNetwork::sendTextMessages()
*/
virtual void sendTextMessages(const BlackMisc::Network::CTextMessageList &textMessages);
/*!
* \brief Request METAR
* \param airportIcaoCode e.g. EDDF, KLAX
* \copydoc IContextNetwork::getMetar()
*/
virtual BlackMisc::Aviation::CInformationMessage getMetar(const QString &airportIcaoCode);
/*!
* \brief Selected COM1/2 frequencies as voice rooms
* \return COM1/2 voice rooms
* \copydoc IContextNetwork::getSelectedVoiceRooms()
*/
virtual BlackMisc::Voice::CVoiceRoomList getSelectedVoiceRooms() const;
@@ -223,6 +215,16 @@ namespace BlackCore
*/
void initOwnAircraft();
/*!
* \brief Get network settings
*/
BlackMisc::Settings::CSettingsNetwork getNetworkSettings() const
{
Q_ASSERT(this->getRuntime());
Q_ASSERT(this->getRuntime()->getIContextSettings());
return this->getRuntime()->getIContextSettings()->getNetworkSettings();
}
private slots:
/*!
* \brief Connection status changed

View File

@@ -30,7 +30,7 @@ namespace BlackCore
*/
void CContextNetwork::readAtcBookingsFromSource() const
{
QUrl url("http://vatbook.euroutepro.com/xml2.php");
QUrl url(this->getNetworkSettings().getBookingServiceUrl());
QNetworkRequest request(url);
this->m_networkManager->get(request);
}
@@ -108,13 +108,16 @@ namespace BlackCore
CUserList CContextNetwork::getUsers() const
{
CUserList users;
CUser user;
foreach(CAtcStation station, this->m_atcStationsOnline)
{
users.push_back(station.getController());
user = station.getController();
users.push_back(user);
}
foreach(CAircraft aircraft, this->m_aircraftsInRange)
{
users.push_back(aircraft.getPilot());
user = aircraft.getPilot();
users.push_back(user);
}
return users;
}
@@ -126,15 +129,36 @@ namespace BlackCore
{
CUserList users;
if (callsigns.isEmpty()) return users;
CCallsignList searchList(callsigns);
CUser user;
CCallsign callsign;
foreach(CAtcStation station, this->m_atcStationsOnline)
{
if (callsigns.contains(station.getCallsign()))
users.push_back(station.getController());
callsign = station.getCallsign();
if (callsigns.contains(callsign))
{
user = station.getController();
users.push_back(user);
searchList.remove(callsign);
}
}
foreach(CAircraft aircraft, this->m_aircraftsInRange)
{
if (callsigns.contains(aircraft.getCallsign()))
users.push_back(aircraft.getPilot());
callsign = aircraft.getCallsign();
if (callsigns.contains(callsign))
{
user = aircraft.getPilot();
users.push_back(user);
searchList.remove(callsign);
}
}
// we might have unsresolved callsigns
foreach(CCallsign unresolved, searchList)
{
user = CUser();
user.setCallsign(unresolved);
users.push_back(user);
}
return users;
}

View File

@@ -198,7 +198,7 @@ namespace BlackCore
/*!
* \brief Disconnect from network
* \return messages gererated during disconnecting
* \return messages generated during disconnecting
*/
virtual BlackMisc::CStatusMessageList disconnectFromNetwork();