mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 02:06:08 +08:00
* removed now outdated enums * sorted enums (better debugging) * utility functions
This commit is contained in:
@@ -7,9 +7,7 @@
|
|||||||
* contained in the LICENSE file.
|
* contained in the LICENSE file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//! \cond PRIVATE
|
#include "webreaderflags.h"
|
||||||
|
|
||||||
#include "blackcore/webreaderflags.h"
|
|
||||||
|
|
||||||
using namespace BlackMisc::Network;
|
using namespace BlackMisc::Network;
|
||||||
|
|
||||||
@@ -32,6 +30,11 @@ namespace BlackCore
|
|||||||
f |= ModelReader;
|
f |= ModelReader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (entity.testFlag(CEntityFlags::InfoObjectEntity))
|
||||||
|
{
|
||||||
|
f |= InfoDataReader;
|
||||||
|
}
|
||||||
|
|
||||||
if (entity.testFlag(CEntityFlags::BookingEntity))
|
if (entity.testFlag(CEntityFlags::BookingEntity))
|
||||||
{
|
{
|
||||||
f |= VatsimBookingReader;
|
f |= VatsimBookingReader;
|
||||||
@@ -56,9 +59,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
bool CWebReaderFlags::isFromSwiftDb(WebReader reader)
|
bool CWebReaderFlags::isFromSwiftDb(WebReader reader)
|
||||||
{
|
{
|
||||||
return reader.testFlag(ModelReader) || reader.testFlag(IcaoDataReader);
|
return reader.testFlag(ModelReader) || reader.testFlag(IcaoDataReader) || reader.testFlag(InfoDataReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
//! \endcond
|
|
||||||
|
|||||||
@@ -35,38 +35,26 @@ namespace BlackCore
|
|||||||
VatsimMetarReader = 1 << 2, //!< reader for VATSIM metar data
|
VatsimMetarReader = 1 << 2, //!< reader for VATSIM metar data
|
||||||
IcaoDataReader = 1 << 3, //!< reader for ICAO data
|
IcaoDataReader = 1 << 3, //!< reader for ICAO data
|
||||||
ModelReader = 1 << 4, //!< reader for model data such as liveries, models, etc
|
ModelReader = 1 << 4, //!< reader for model data such as liveries, models, etc
|
||||||
|
InfoDataReader = 1 << 5, //!< DB info data (metdata, how many data, when updated)
|
||||||
AllVatsimReaders = VatsimBookingReader | VatsimDataReader | VatsimMetarReader, //!< all readers
|
AllVatsimReaders = VatsimBookingReader | VatsimDataReader | VatsimMetarReader, //!< all readers
|
||||||
AllSwiftDbReaders = IcaoDataReader | ModelReader, //!< all swift data
|
AllSwiftDbReaders = IcaoDataReader | ModelReader | InfoDataReader, //!< all swift data
|
||||||
AllReaders = AllSwiftDbReaders | AllVatsimReaders //!< everything
|
AllReaders = AllSwiftDbReaders | AllVatsimReaders //!< everything
|
||||||
};
|
};
|
||||||
Q_DECLARE_FLAGS(WebReader, WebReaderFlag)
|
Q_DECLARE_FLAGS(WebReader, WebReaderFlag)
|
||||||
|
|
||||||
//! How to read DB data
|
|
||||||
enum DbReaderHintFlag
|
|
||||||
{
|
|
||||||
NoHint = 0,
|
|
||||||
FromDb = 1 << 1, //!< directly from DB
|
|
||||||
FromJsonFile = 1 << 2, //!< from the JSON files
|
|
||||||
FromCache = 1 << 3, //!< try cache first
|
|
||||||
};
|
|
||||||
Q_DECLARE_FLAGS(DbReaderHint, DbReaderHintFlag)
|
|
||||||
|
|
||||||
//! Relationship between reader and entity
|
//! Relationship between reader and entity
|
||||||
static WebReader entityToReader(BlackMisc::Network::CEntityFlags::Entity entity);
|
static WebReader entityToReader(BlackMisc::Network::CEntityFlags::Entity entity);
|
||||||
|
|
||||||
//! Read from swift DB
|
//! Reads from swift DB?
|
||||||
static bool isFromSwiftDb(BlackMisc::Network::CEntityFlags::Entity entity);
|
static bool isFromSwiftDb(BlackMisc::Network::CEntityFlags::Entity entity);
|
||||||
|
|
||||||
//! Read from swift DB
|
//! Reader for swift DB?
|
||||||
static bool isFromSwiftDb(WebReader reader);
|
static bool isFromSwiftDb(WebReader reader);
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(BlackCore::CWebReaderFlags::WebReaderFlag)
|
Q_DECLARE_METATYPE(BlackCore::CWebReaderFlags::WebReaderFlag)
|
||||||
Q_DECLARE_METATYPE(BlackCore::CWebReaderFlags::WebReader)
|
Q_DECLARE_METATYPE(BlackCore::CWebReaderFlags::WebReader)
|
||||||
Q_DECLARE_METATYPE(BlackCore::CWebReaderFlags::DbReaderHintFlag)
|
|
||||||
Q_DECLARE_METATYPE(BlackCore::CWebReaderFlags::DbReaderHint)
|
|
||||||
Q_DECLARE_OPERATORS_FOR_FLAGS(BlackCore::CWebReaderFlags::WebReader)
|
Q_DECLARE_OPERATORS_FOR_FLAGS(BlackCore::CWebReaderFlags::WebReader)
|
||||||
Q_DECLARE_OPERATORS_FOR_FLAGS(BlackCore::CWebReaderFlags::DbReaderHint)
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
#include <bitset>
|
||||||
|
|
||||||
namespace BlackMisc
|
namespace BlackMisc
|
||||||
{
|
{
|
||||||
@@ -21,18 +22,20 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
switch (flag)
|
switch (flag)
|
||||||
{
|
{
|
||||||
case NoEntity: return "no data";
|
|
||||||
case BookingEntity: return "VATSIM bookings";
|
|
||||||
case VatsimDataFile: return "VATSIM data file";
|
|
||||||
case AircraftIcaoEntity: return "Aircraft ICAO";
|
case AircraftIcaoEntity: return "Aircraft ICAO";
|
||||||
case AirlineIcaoEntity: return "Airline ICAO";
|
case AirlineIcaoEntity: return "Airline ICAO";
|
||||||
|
case AllEntities: return "All";
|
||||||
|
case AllIcaoAndCountries: return "All ICAO + country";
|
||||||
|
case AllIcaoEntities: return "All ICAO";
|
||||||
|
case BookingEntity: return "VATSIM bookings";
|
||||||
case CountryEntity: return "Country";
|
case CountryEntity: return "Country";
|
||||||
case DistributorEntity: return "Distributor";
|
case DistributorEntity: return "Distributor";
|
||||||
|
case InfoObjectEntity: return "Info objects";
|
||||||
case LiveryEntity: return "Livery";
|
case LiveryEntity: return "Livery";
|
||||||
case ModelEntity: return "Model";
|
case ModelEntity: return "Model";
|
||||||
case AllIcaoEntities: return "All ICAO";
|
case NoEntity: return "no data";
|
||||||
case AllIcaoAndCountries: return "All ICAO + country";
|
case VatsimDataFile: return "VATSIM data file";
|
||||||
case AllEntities: return "All";
|
case VatsimStatusFile: return "VATSIM status file";
|
||||||
default:
|
default:
|
||||||
BLACK_VERIFY_X(false, Q_FUNC_INFO, "wrong flags");
|
BLACK_VERIFY_X(false, Q_FUNC_INFO, "wrong flags");
|
||||||
return "wrong flags";
|
return "wrong flags";
|
||||||
@@ -42,18 +45,31 @@ namespace BlackMisc
|
|||||||
QString CEntityFlags::flagToString(BlackMisc::Network::CEntityFlags::Entity flag)
|
QString CEntityFlags::flagToString(BlackMisc::Network::CEntityFlags::Entity flag)
|
||||||
{
|
{
|
||||||
QStringList list;
|
QStringList list;
|
||||||
if (flag.testFlag(NoEntity)) list << "no data";
|
|
||||||
if (flag.testFlag(BookingEntity)) list << "VATSIM bookings";
|
|
||||||
if (flag.testFlag(VatsimDataFile)) list << "VATSIM data file";
|
|
||||||
if (flag.testFlag(AircraftIcaoEntity)) list << "Aircraft ICAO";
|
if (flag.testFlag(AircraftIcaoEntity)) list << "Aircraft ICAO";
|
||||||
if (flag.testFlag(AirlineIcaoEntity)) list << "Airline ICAO";
|
if (flag.testFlag(AirlineIcaoEntity)) list << "Airline ICAO";
|
||||||
|
if (flag.testFlag(BookingEntity)) list << "VATSIM bookings";
|
||||||
if (flag.testFlag(CountryEntity)) list << "Country";
|
if (flag.testFlag(CountryEntity)) list << "Country";
|
||||||
if (flag.testFlag(DistributorEntity)) list << "Distributor";
|
if (flag.testFlag(DistributorEntity)) list << "Distributor";
|
||||||
|
if (flag.testFlag(InfoObjectEntity)) list << "Info objects";
|
||||||
if (flag.testFlag(LiveryEntity)) list << "Livery";
|
if (flag.testFlag(LiveryEntity)) list << "Livery";
|
||||||
if (flag.testFlag(ModelEntity)) list << "Model";
|
if (flag.testFlag(ModelEntity)) list << "Model";
|
||||||
|
if (flag.testFlag(NoEntity)) list << "no data";
|
||||||
|
if (flag.testFlag(VatsimDataFile)) list << "VATSIM data file";
|
||||||
|
if (flag.testFlag(VatsimStatusFile)) list << "VATSIM status file";
|
||||||
return list.join(',');
|
return list.join(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CEntityFlags::isSingleEntity(BlackMisc::Network::CEntityFlags::Entity flag)
|
||||||
|
{
|
||||||
|
return numberOfEntities(flag) == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CEntityFlags::numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag)
|
||||||
|
{
|
||||||
|
const int c = std::bitset<sizeof(flag)>(flag).count();
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
QString CEntityFlags::flagToString(CEntityFlags::ReadState flag)
|
QString CEntityFlags::flagToString(CEntityFlags::ReadState flag)
|
||||||
{
|
{
|
||||||
switch (flag)
|
switch (flag)
|
||||||
@@ -84,6 +100,22 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CEntityFlags::EntityFlag CEntityFlags::entityToEntityFlag(Entity entity)
|
||||||
|
{
|
||||||
|
return static_cast<EntityFlag>(static_cast<int>(entity));
|
||||||
|
}
|
||||||
|
|
||||||
|
CEntityFlags::Entity CEntityFlags::iterateDbEntities(Entity &entities)
|
||||||
|
{
|
||||||
|
if (entities == NoEntity || entities == InfoObjectEntity) { return NoEntity; }
|
||||||
|
if (entities.testFlag(AircraftIcaoEntity)) { entities &= ~AircraftIcaoEntity; return AircraftIcaoEntity; }
|
||||||
|
if (entities.testFlag(AirlineIcaoEntity)) { entities &= ~AirlineIcaoEntity; return AirlineIcaoEntity; }
|
||||||
|
if (entities.testFlag(LiveryEntity)) { entities &= ~LiveryEntity; return LiveryEntity; }
|
||||||
|
if (entities.testFlag(CountryEntity)) { entities &= ~CountryEntity; return CountryEntity; }
|
||||||
|
if (entities.testFlag(ModelEntity)) { entities &= ~ModelEntity; return ModelEntity; }
|
||||||
|
return NoEntity;
|
||||||
|
}
|
||||||
|
|
||||||
bool CEntityFlags::isWarningOrAbove(CEntityFlags::ReadState state)
|
bool CEntityFlags::isWarningOrAbove(CEntityFlags::ReadState state)
|
||||||
{
|
{
|
||||||
CStatusMessage::StatusSeverity s = flagToSeverity(state);
|
CStatusMessage::StatusSeverity s = flagToSeverity(state);
|
||||||
@@ -97,6 +129,14 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CEntityFlags::anySwiftDbEntity(Entity entities)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
entities.testFlag(AircraftIcaoEntity) || entities.testFlag(AirlineIcaoEntity) ||
|
||||||
|
entities.testFlag(CountryEntity) ||
|
||||||
|
entities.testFlag(ModelEntity) || entities.testFlag(LiveryEntity);
|
||||||
|
}
|
||||||
|
|
||||||
void CEntityFlags::registerMetadata()
|
void CEntityFlags::registerMetadata()
|
||||||
{
|
{
|
||||||
// this is no value class and I register enums here,
|
// this is no value class and I register enums here,
|
||||||
|
|||||||
@@ -32,22 +32,23 @@ namespace BlackMisc
|
|||||||
//! Which data to read, requires corresponding readers
|
//! Which data to read, requires corresponding readers
|
||||||
enum EntityFlag
|
enum EntityFlag
|
||||||
{
|
{
|
||||||
NoEntity = 0, //!< no data at all
|
NoEntity = 0, //!< no data at all
|
||||||
BookingEntity = 1 << 0, //!< bookings
|
InfoObjectEntity = 1 << 0, //!< info about DB data (kinf of metadata)
|
||||||
MetarEntity = 1 << 1, //!< METAR
|
AircraftIcaoEntity = 1 << 1, //!< ICAO codes for aircraft
|
||||||
AircraftIcaoEntity = 1 << 2, //!< ICAO codes for aircraft
|
AirlineIcaoEntity = 1 << 2, //!< ICAO codes for airlines
|
||||||
AirlineIcaoEntity = 1 << 3, //!< ICAO codes for airlines
|
CountryEntity = 1 << 3, //!< country codes
|
||||||
CountryEntity = 1 << 4, //!< country codes
|
DistributorEntity = 1 << 4, //!< distributors
|
||||||
DistributorEntity = 1 << 5, //!< distributors
|
LiveryEntity = 1 << 5, //!< liveries
|
||||||
LiveryEntity = 1 << 6, //!< liveries
|
ModelEntity = 1 << 6, //!< models
|
||||||
ModelEntity = 1 << 7, //!< models
|
BookingEntity = 1 << 7, //!< bookings
|
||||||
VatsimDataFile = 1 << 8, //!< the VATSIM data file (multiple data entities)
|
MetarEntity = 1 << 8, //!< METAR
|
||||||
VatsimStatusFile = 1 << 9, //!< the VATSIM status file (URLs for data files etc.)
|
VatsimDataFile = 1 << 9, //!< the VATSIM data file (multiple data entities)
|
||||||
AllEntities = ((1<<10)-1), //!< everything
|
VatsimStatusFile = 1 << 10, //!< the VATSIM status file (URLs for data files etc.)
|
||||||
AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes
|
AllEntities = ((1 << 11) - 1), //!< everything
|
||||||
AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries
|
AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes
|
||||||
DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combinded
|
AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries
|
||||||
AllDbEntities = AllIcaoEntities | DistributorLiveryModel, //!< All DB stuff
|
DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combinded
|
||||||
|
AllDbEntities = AllIcaoEntities | DistributorLiveryModel | InfoObjectEntity //!< All DB stuff
|
||||||
};
|
};
|
||||||
Q_DECLARE_FLAGS(Entity, EntityFlag)
|
Q_DECLARE_FLAGS(Entity, EntityFlag)
|
||||||
|
|
||||||
@@ -66,15 +67,30 @@ namespace BlackMisc
|
|||||||
//! Convert to string
|
//! Convert to string
|
||||||
static QString flagToString(BlackMisc::Network::CEntityFlags::Entity flag);
|
static QString flagToString(BlackMisc::Network::CEntityFlags::Entity flag);
|
||||||
|
|
||||||
|
//! Representing single entity?
|
||||||
|
static bool isSingleEntity(BlackMisc::Network::CEntityFlags::Entity flag);
|
||||||
|
|
||||||
|
//! Represented number of entities
|
||||||
|
static int numberOfEntities(BlackMisc::Network::CEntityFlags::Entity flag);
|
||||||
|
|
||||||
//! Convert to string
|
//! Convert to string
|
||||||
static QString flagToString(ReadState flag);
|
static QString flagToString(ReadState flag);
|
||||||
|
|
||||||
//! Flag to severity
|
//! Flag to severity
|
||||||
static BlackMisc::CStatusMessage::StatusSeverity flagToSeverity(ReadState state);
|
static BlackMisc::CStatusMessage::StatusSeverity flagToSeverity(ReadState state);
|
||||||
|
|
||||||
|
//! To flag
|
||||||
|
static EntityFlag entityToEntityFlag(Entity entity);
|
||||||
|
|
||||||
|
//! Return single entity and remove it from entities
|
||||||
|
static Entity iterateDbEntities(Entity &entities);
|
||||||
|
|
||||||
//! Read state representing warning or above?
|
//! Read state representing warning or above?
|
||||||
static bool isWarningOrAbove(ReadState state);
|
static bool isWarningOrAbove(ReadState state);
|
||||||
|
|
||||||
|
//! Representing at least one DB entity
|
||||||
|
static bool anySwiftDbEntity(Entity entities);
|
||||||
|
|
||||||
//! Register metadata
|
//! Register metadata
|
||||||
static void registerMetadata();
|
static void registerMetadata();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user