swift
databaseutils.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2016 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_CORE_DB_DATABASEUTILS_H
7 #define SWIFT_CORE_DB_DATABASEUTILS_H
8 
9 #include <QByteArray>
10 #include <QHttpPart>
11 #include <QJsonArray>
12 #include <QJsonObject>
13 #include <QUrlQuery>
14 
15 #include "core/progress.h"
16 #include "core/swiftcoreexport.h"
19 
20 namespace swift::core::db
21 {
24  {
25  public:
27  CDatabaseUtils() = delete;
28 
30  static const QStringList &getLogCategories();
31 
34  static swift::misc::simulation::CAircraftModelList consolidateModelsWithSimulatorModelsAllowsGuiRefresh(
36  const swift::misc::simulation::CAircraftModelList &simulatorModels, QStringList &removedModelStrings,
37  bool processEvents);
38 
42  updateModelsDirectoriesAllowsGuiRefresh(const swift::misc::simulation::CAircraftModelList &models,
43  const swift::misc::simulation::CAircraftModelList &simulatorModels,
44  QStringList &removedModelStrings, bool processEvents);
45 
48  consolidateOwnAircraftModelWithDbData(const swift::misc::simulation::CAircraftModel &model, bool force,
49  bool *modified = nullptr);
50 
53  consolidateModelWithDbData(const swift::misc::simulation::CAircraftModel &model, bool force,
54  bool *modified = nullptr);
55 
58  consolidateModelWithDbData(const swift::misc::simulation::CAircraftModel &model,
59  const swift::misc::simulation::CAircraftModel &dbModel, bool force, bool *modified);
60 
62  static int consolidateModelsWithDbData(swift::misc::simulation::CAircraftModelList &models, bool force);
63 
66  static int consolidateModelsWithDbData(const swift::misc::simulation::CAircraftModelList &dbModels,
68  bool force);
69 
71  static int consolidateModelsWithDbDataAllowsGuiRefresh(swift::misc::simulation::CAircraftModelList &models,
72  bool force, bool processEvents);
73 
75  static int consolidateModelsWithDbModelAndDistributor(swift::misc::simulation::CAircraftModelList &models,
76  bool force);
77 
80  consolidateModelWithDbDistributor(const swift::misc::simulation::CAircraftModel &model, bool force);
81 
83  static int consolidateModelsWithDbDistributor(swift::misc::simulation::CAircraftModelList &models, bool force);
84 
86  static int fillInMissingAircraftAndLiveryEntities(swift::misc::simulation::CAircraftModelList &models);
87 
90  updateSimulatorForFsFamily(const swift::misc::simulation::CAircraftModelList &ownModels,
91  swift::misc::CStatusMessageList *updateInfo, int maxToStash = -1,
92  swift::core::IProgressIndicator *progressIndicator = nullptr,
93  bool processEvents = true);
94 
96  static QJsonDocument databaseJsonToQJsonDocument(const QString &content);
97 
99  static QJsonDocument readQJsonDocumentFromDatabaseFile(const QString &filename);
100 
102  static QJsonObject readQJsonObjectFromDatabaseFile(const QString &filename);
103 
105  static QJsonObject readQJsonObjectFromDatabaseFile(const QString &directory, const QString &filename);
106 
108  static bool hasDbAircraftData();
109 
111  static const QUrlQuery &getCompressedQuery();
112 
114  static QHttpPart getJsonTextMultipart(const QJsonObject &json, bool compress);
115 
117  static QHttpPart getJsonTextMultipart(const QString &json, bool compress);
118 
120  static QHttpPart getJsonTextMultipart(const QJsonArray &json, bool compress);
121 
123  static QHttpPart getJsonTextMultipart(const QByteArray &bytes, bool compress);
124 
126  static QHttpPart getMultipartWithDebugFlag();
127 
131  autoPublishDataChanged(const QString &modelString, const swift::misc::physical_quantities::CLength &cg,
132  const swift::misc::simulation::CSimulatorInfo &simulator);
133 
137  autoPublishDataChanged(const swift::misc::simulation::CAircraftModel &model,
139  const swift::misc::simulation::CSimulatorInfo &simulator);
140  };
141 } // namespace swift::core::db
142 #endif // SWIFT_CORE_DB_DATABASEUTILS_H
Implementing class features a progress bar or something similar.
Definition: progress.h:16
Read information about data from Database.
Definition: databaseutils.h:24
CDatabaseUtils()=delete
No constructor.
Status messages, e.g. from Core -> GUI.
Physical unit length (length)
Definition: length.h:18
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Value object encapsulating a list of aircraft models.
Simple hardcoded info about the corresponding simulator.
Definition: simulatorinfo.h:41
Classes interacting with the swift database (aka "datastore").
#define SWIFT_CORE_EXPORT
Export a class or function from the library.