Files
pilotclient/src/blackmisc/simulation/categorymatcher.h
Klaus Basan f54d85dfbc Ref T578, allow to search gliders in parallel branch
* utility functions
* logs
* fixed returning wrong result
2019-04-11 22:12:03 +01:00

65 lines
2.3 KiB
C++

/* Copyright (C) 2019
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
* or distributed except according to the terms contained in the LICENSE file.
*/
//! \file
#ifndef BLACKMISC_SIMULATION_CATEGORYMATCHER_H
#define BLACKMISC_SIMULATION_CATEGORYMATCHER_H
#include "aircraftmodellist.h"
#include "blackmisc/aviation/aircraftcategorylist.h"
#include "blackmisc/blackmiscexport.h"
namespace BlackMisc
{
class CStatusMessageList;
namespace Simulation
{
class CSimulatedAircraft;
class CAircraftMatcherSetup;
//! Category matcher, uses the DB categories
class BLACKMISC_EXPORT CCategoryMatcher
{
public:
//! Log categories
static const BlackMisc::CLogCategoryList &getLogCategories();
//! Constructor
CCategoryMatcher() {}
//! Used categories
void setCategories(const Aviation::CAircraftCategoryList &categories);
//! Specialized categories @{
const Aviation::CAircraftCategoryList &gliderCategories() const { return m_gliders; }
const Aviation::CAircraftCategoryList &militaryWingCategories() const { return m_militaryWingAircraft; }
const Aviation::CAircraftCategoryList &militaryRotorCategories() const { return m_militaryRotorAircraft; }
//! @}
//! Reduce by categories
CAircraftModelList reduceByCategories(const CAircraftModelList &modelSet, const CAircraftMatcherSetup &setup, const CSimulatedAircraft &remoteAircraft, bool &reduced, bool shortLog, CStatusMessageList *log = nullptr) const;
private:
//! Glider?
bool isGlider(const Aviation::CAircraftIcaoCode &icao) const;
//! Get the glider top level
int gliderFirstLevel() const;
Aviation::CAircraftCategoryList m_all; //!< sorted by level
Aviation::CAircraftCategoryList m_gliders; //!< sorted by level
Aviation::CAircraftCategoryList m_militaryWingAircraft;
Aviation::CAircraftCategoryList m_militaryRotorAircraft;
};
} // ns
} // namespace
#endif // guard