From 3de7d66e656b9e19911d38df8dcb66c3589ee95b Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 2 Oct 2017 23:36:03 +0200 Subject: [PATCH] Ref T129, use map of CFlightPlanRemark instead of 2 individual maps --- src/blackcore/vatsim/vatsimdatafilereader.cpp | 33 +++++-------------- src/blackcore/vatsim/vatsimdatafilereader.h | 9 ++--- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/src/blackcore/vatsim/vatsimdatafilereader.cpp b/src/blackcore/vatsim/vatsimdatafilereader.cpp index 66638d7ba..66cad5b9a 100644 --- a/src/blackcore/vatsim/vatsimdatafilereader.cpp +++ b/src/blackcore/vatsim/vatsimdatafilereader.cpp @@ -122,26 +122,16 @@ namespace BlackCore { if (callsign.isEmpty()) { return CVoiceCapabilities(); } QReadLocker rl(&m_lock); - return m_voiceCapabilities.contains(callsign) ? - m_voiceCapabilities[callsign] : - CVoiceCapabilities::fromVoiceCapabilities(CVoiceCapabilities::Unknown); + return m_flightPlanRemarks.value(callsign).getVoiceCapabilities(); } - QString CVatsimDataFileReader::getFlightPlanRemarksForCallsign(const CCallsign &callsign) const + CFlightPlanRemarks CVatsimDataFileReader::getFlightPlanRemarksForCallsign(const CCallsign &callsign) const { if (callsign.isEmpty()) { return QString(); } QReadLocker rl(&m_lock); return m_flightPlanRemarks.value(callsign); } - CFlightPlanRemarks CVatsimDataFileReader::getParsedFlightPlanRemarksForCallsign(const CCallsign &callsign) const - { - if (callsign.isEmpty()) { return CFlightPlanRemarks(); } - const QString remarks = this->getFlightPlanRemarksForCallsign(callsign); - const CVoiceCapabilities vc = this->getVoiceCapabilityForCallsign(callsign); - return CFlightPlanRemarks(remarks, vc); - } - void CVatsimDataFileReader::updateWithVatsimDataFileData(CSimulatedAircraft &aircraftToBeUdpated) const { this->getAircraft().updateWithVatsimDataFileData(aircraftToBeUdpated); @@ -239,8 +229,7 @@ namespace BlackCore CServerList fsdServers; CAtcStationList atcStations; CSimulatedAircraftList aircraft; - QMap voiceCapabilitiesMap; - QMap flightPlanRemarksMap; + QMap flightPlanRemarksMap; QDateTime updateTimestampFromFile; QStringList clientSectionAttributes; @@ -263,7 +252,7 @@ namespace BlackCore if (clientSectionAttributes.isEmpty() && currentLine.contains("!CLIENTS SECTION", Qt::CaseInsensitive)) { // ; !CLIENTS section - int i = currentLine.lastIndexOf(' '); + const int i = currentLine.lastIndexOf(' '); const QVector attributes = currentLine.midRef(i).trimmed().split(':', QString::SkipEmptyParts); for (const QStringRef &attr : attributes) { clientSectionAttributes.push_back(attr.toString().trimmed().toLower()); } section = SectionNone; // reset @@ -297,21 +286,17 @@ namespace BlackCore // Voice capabilities if (!flightPlanRemarks.isEmpty()) { - flightPlanRemarksMap[callsign] = flightPlanRemarks; - const CVoiceCapabilities vc(flightPlanRemarks); - if (!vc.isUnknown()) - { - voiceCapabilitiesMap.insert(callsign, vc); - } + // CFlightPlanRemarks contains voice capabilities and other parsed values + flightPlanRemarksMap[callsign] = CFlightPlanRemarks(flightPlanRemarks); } // set as per ATC/pilot if (clientType.startsWith('p')) { // Pilot section - const double groundspeedKts = clientPartsMap["groundspeed"].toDouble(); + const double groundSpeedKts = clientPartsMap["groundspeed"].toDouble(); CAircraftSituation situation(position); - situation.setGroundSpeed(CSpeed(groundspeedKts, CSpeedUnit::kts())); + situation.setGroundSpeed(CSpeed(groundSpeedKts, CSpeedUnit::kts())); CSimulatedAircraft currentAircraft(user.getCallsign().getStringAsSet(), user, situation); const QString equipmentCodeAndAircraft = clientPartsMap["planned_aircraft"].trimmed(); @@ -327,7 +312,6 @@ namespace BlackCore illegalEquipmentCodes.append(equipmentCodeAndAircraft); } } - aircraft.push_back(currentAircraft); } else if (clientType.startsWith('a')) @@ -403,7 +387,6 @@ namespace BlackCore this->setUpdateTimestamp(updateTimestampFromFile); m_aircraft = aircraft; m_atcStations = atcStations; - m_voiceCapabilities = voiceCapabilitiesMap; m_flightPlanRemarks = flightPlanRemarksMap; } diff --git a/src/blackcore/vatsim/vatsimdatafilereader.h b/src/blackcore/vatsim/vatsimdatafilereader.h index 41e1ae714..6f48c5f6c 100644 --- a/src/blackcore/vatsim/vatsimdatafilereader.h +++ b/src/blackcore/vatsim/vatsimdatafilereader.h @@ -111,11 +111,7 @@ namespace BlackCore //! Flight plan remarks for callsign //! \threadsafe - QString getFlightPlanRemarksForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const; - - //! Parsed flight plan remarks for callsign - //! \threadsafe - BlackMisc::Aviation::CFlightPlanRemarks getParsedFlightPlanRemarksForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const; + BlackMisc::Aviation::CFlightPlanRemarks getFlightPlanRemarksForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const; //! Update aircraft with VATSIM aircraft data from data file //! \threadsafe @@ -159,8 +155,7 @@ namespace BlackCore BlackMisc::Simulation::CSimulatedAircraftList m_aircraft; BlackMisc::CData m_lastGoodSetup { this }; BlackMisc::CSettingReadOnly m_settings { this, &CVatsimDataFileReader::reloadSettings }; - QMap m_voiceCapabilities; //!< voice capabilities - QMap m_flightPlanRemarks; //!< cache for flight plan remarks + QMap m_flightPlanRemarks; //!< cache for flight plan remarks //! Reload the reader settings void reloadSettings();