Convenience functions for aircraft list

This commit is contained in:
Klaus Basan
2015-01-18 21:48:34 +01:00
parent ac87e7ef60
commit 6bcc8940fa
2 changed files with 27 additions and 1 deletions

View File

@@ -10,7 +10,9 @@
#include "avaircraftlist.h"
#include "nwuser.h"
#include "predicates.h"
#include "propertyindexallclasses.h"
using namespace BlackMisc;
using namespace BlackMisc::PhysicalQuantities;
using namespace BlackMisc::Network;
@@ -30,6 +32,23 @@ namespace BlackMisc
CSequence<CAircraft>(other)
{ }
/*
* Contains callsign
*/
bool CAircraftList::containsCallsign(const CCallsign &callsign) const
{
if (callsign.isEmpty()) { return false; }
return this->contains(&CAircraft::getCallsign, callsign);
}
/*
* Change for callsign
*/
int CAircraftList::applyIfCallsign(const CCallsign &callsign, const CPropertyIndexVariantMap &variantMap)
{
return this->applyIf(&CAircraft::getCallsign, callsign, variantMap, false);
}
/*
* Register metadata
*/

View File

@@ -17,6 +17,7 @@
#include "nwuserlist.h"
#include "collection.h"
#include "sequence.h"
#include "propertyindexvariantmap.h"
#include <QObject>
#include <QString>
#include <QList>
@@ -25,7 +26,7 @@ namespace BlackMisc
{
namespace Aviation
{
//! Value object encapsulating a list of aircrafts.
//! Value object encapsulating a list of aircraft.
class CAircraftList : public CSequence<CAircraft>
{
public:
@@ -35,6 +36,12 @@ namespace BlackMisc
//! Construct from a base class object.
CAircraftList(const CSequence<CAircraft> &other);
//! Contains callsign?
bool containsCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
//! Apply for given callsign
int applyIfCallsign(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::CPropertyIndexVariantMap &variantMap);
//! Find 0..n stations by callsign
CAircraftList findByCallsign(const CCallsign &callsign) const;