swift
entityflags.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_NETWORK_ENTITRFLAGS_H
7 #define SWIFT_MISC_NETWORK_ENTITRFLAGS_H
8 
9 #include <QFlags>
10 #include <QMetaType>
11 #include <QStringList>
12 
13 #include "misc/statusmessage.h"
14 #include "misc/swiftmiscexport.h"
15 
16 namespace swift::misc::network
17 {
22  {
23  public:
26  {
27  NoEntity = 0,
28  DbInfoObjectEntity = 1 << 0,
29  SharedInfoObjectEntity = 1 << 1,
30  AircraftIcaoEntity = 1 << 2,
31  AirlineIcaoEntity = 1 << 3,
32  CountryEntity = 1 << 4,
33  DistributorEntity = 1 << 5,
34  LiveryEntity = 1 << 6,
35  ModelEntity = 1 << 7,
36  MetarEntity = 1 << 8,
37  VatsimDataFile = 1 << 9,
38  VatsimStatusFile = 1 << 10,
39  AirportEntity = 1 << 11,
40  AircraftCategoryEntity = 1 << 12,
41  AllEntities = ((1 << 13) - 1),
42  AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity,
43  AllIcaoAndCountries =
44  AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity,
45  AllIcaoCountriesCategory = AllIcaoAndCountries | AircraftCategoryEntity,
46  DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity,
47  ModelMatchingEntities = AllIcaoEntities | LiveryEntity | ModelEntity,
48  AllDbEntitiesNoInfoObjects =
49  AllIcaoCountriesCategory | DistributorLiveryModel | AirportEntity,
50  AllDbEntities = AllDbEntitiesNoInfoObjects | DbInfoObjectEntity,
51  AllDbEntitiesNoInfoObjectsNoAirportsAndCategories =
52  AllIcaoAndCountries | DistributorLiveryModel
53  };
54  Q_DECLARE_FLAGS(Entity, EntityFlag)
55 
56 
57  using EntitySet = QSet<CEntityFlags::Entity>;
58 
60  enum ReadState
61  {
67  ReadSkipped
68  };
69 
71  static QString flagToString(CEntityFlags::EntityFlag flag);
72 
74  static QStringList entitiesToStringList(CEntityFlags::Entity entities);
75 
77  static QString entitiesToString(CEntityFlags::Entity entities, const QString &separator = ", ");
78 
80  static bool isSingleEntity(CEntityFlags::Entity flag);
81 
83  static bool isFinishedReadState(ReadState state);
84 
86  static bool isFinishedReadStateOrFailure(ReadState state);
87 
89  static int numberOfEntities(CEntityFlags::Entity entities);
90 
92  static const QString &stateToString(ReadState flag);
93 
95  static CStatusMessage::StatusSeverity flagToSeverity(ReadState state);
96 
98  static Entity entityFlagToEntity(EntityFlag entityFlag);
99 
101  static EntityFlag entityToEntityFlag(Entity entity);
102 
104  static Entity iterateDbEntities(Entity &entities);
105 
107  static bool isWarningOrAbove(ReadState state);
108 
110  static bool anySwiftDbEntity(Entity entities);
111 
113  static Entity singleEntityByName(const QString &name);
114 
116  static Entity multipleEntitiesByNames(const QStringList &names);
117 
119  static EntitySet asSingleEntities(Entity entities);
120 
122  static void registerMetadata();
123  };
124 } // namespace swift::misc::network
125 
127 Q_DECLARE_METATYPE(swift::misc::network::CEntityFlags::Entity)
129 Q_DECLARE_OPERATORS_FOR_FLAGS(swift::misc::network::CEntityFlags::Entity)
130 
131 #endif // SWIFT_MISC_NETWORK_ENTITRFLAGS_H
What and state of reading from web services.
Definition: entityflags.h:22
QSet< CEntityFlags::Entity > EntitySet
Set of CEntityFlags::Entity.
Definition: entityflags.h:57
EntityFlag
Which data to read, requires corresponding readers.
Definition: entityflags.h:26
@ ReadFinishedRestricted
finished a timestamp restricted read
Definition: entityflags.h:65
@ ReadStarted
reading has been started
Definition: entityflags.h:62
void registerMetadata()
Register all relevant metadata in Misc.
StatusSeverity
Status severities.
Definition: statusmessage.h:35
#define SWIFT_MISC_EXPORT
Export a class or function from the library.