mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 12:55:33 +08:00
refs #568, allow to read incremental data based on timestamp
* signatures with QDateTime * flags
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include "blackmisc/dbus.h"
|
||||
#include <QtDBus/QDBusMetaType>
|
||||
#include <QStringList>
|
||||
#include "blackmisc/verify.h"
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
@@ -33,7 +34,7 @@ namespace BlackMisc
|
||||
case AllIcaoAndCountries: return "All ICAO + country";
|
||||
case AllEntities: return "All";
|
||||
default:
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "wrong flags");
|
||||
BLACK_VERIFY_X(false, Q_FUNC_INFO, "wrong flags");
|
||||
return "wrong flags";
|
||||
}
|
||||
}
|
||||
@@ -58,10 +59,11 @@ namespace BlackMisc
|
||||
switch (flag)
|
||||
{
|
||||
case ReadFinished: return "finished";
|
||||
case ReadFinishedRestricted: return "finished (restricted)";
|
||||
case ReadFailed: return "failed";
|
||||
case StartRead: return "read started";
|
||||
default:
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "wrong flags");
|
||||
BLACK_VERIFY_X(false, Q_FUNC_INFO, "wrong flags");
|
||||
return "wrong flags";
|
||||
}
|
||||
}
|
||||
@@ -71,18 +73,22 @@ namespace BlackMisc
|
||||
switch (state)
|
||||
{
|
||||
case ReadFinished:
|
||||
case ReadFinishedRestricted:
|
||||
case StartRead:
|
||||
default:
|
||||
return CStatusMessage::SeverityInfo;
|
||||
case ReadFailed:
|
||||
return CStatusMessage::SeverityWarning;
|
||||
default:
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "Missing state");
|
||||
return CStatusMessage::SeverityInfo;
|
||||
}
|
||||
}
|
||||
|
||||
bool CEntityFlags::isWarningOrAbove(CEntityFlags::ReadState state)
|
||||
{
|
||||
CStatusMessage::StatusSeverity s = flagToSeverity(state);
|
||||
switch (s) {
|
||||
switch (s)
|
||||
{
|
||||
case CStatusMessage::SeverityError:
|
||||
case CStatusMessage::SeverityWarning:
|
||||
return true;
|
||||
|
||||
@@ -49,9 +49,10 @@ namespace BlackMisc
|
||||
//! State of operation
|
||||
enum ReadState
|
||||
{
|
||||
StartRead, ///< reading has been started
|
||||
ReadFinished, ///< reading done
|
||||
ReadFailed ///< reading failed
|
||||
StartRead, ///< reading has been started
|
||||
ReadFinished, ///< reading done
|
||||
ReadFinishedRestricted, ///< finished a timestamp restricted read
|
||||
ReadFailed ///< reading failed
|
||||
};
|
||||
|
||||
//! Convert to string
|
||||
|
||||
@@ -129,6 +129,20 @@ namespace BlackMisc
|
||||
return this->m_webDataReaderProvider->getModelsCount();
|
||||
}
|
||||
|
||||
QList<int> CWebDataServicesAware::getModelDbKeys() const
|
||||
{
|
||||
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
|
||||
if (!hasProvider()) { return QList<int>(); }
|
||||
return this->m_webDataReaderProvider->getModelDbKeys();
|
||||
}
|
||||
|
||||
QStringList CWebDataServicesAware::getModelStrings() const
|
||||
{
|
||||
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
|
||||
if (!hasProvider()) { return QStringList(); }
|
||||
return this->m_webDataReaderProvider->getModelStrings();
|
||||
}
|
||||
|
||||
CAircraftModel CWebDataServicesAware::getModelForModelString(const QString &modelString) const
|
||||
{
|
||||
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
|
||||
@@ -306,11 +320,11 @@ namespace BlackMisc
|
||||
}
|
||||
}
|
||||
|
||||
CEntityFlags::Entity CWebDataServicesAware::triggerRead(CEntityFlags::Entity whatToRead)
|
||||
CEntityFlags::Entity CWebDataServicesAware::triggerRead(CEntityFlags::Entity whatToRead, const QDateTime &newerThan)
|
||||
{
|
||||
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
|
||||
if (!hasProvider()) { return CEntityFlags::NoEntity; }
|
||||
return this->m_webDataReaderProvider->triggerRead(whatToRead);
|
||||
return this->m_webDataReaderProvider->triggerRead(whatToRead, newerThan);
|
||||
}
|
||||
|
||||
bool CWebDataServicesAware::canConnectSwiftDb() const
|
||||
|
||||
@@ -112,6 +112,14 @@ namespace BlackMisc
|
||||
//! \threadsafe
|
||||
virtual int getModelsCount() const = 0;
|
||||
|
||||
//! Model keys
|
||||
//! \threadsafe
|
||||
virtual QList<int> getModelDbKeys() const = 0;
|
||||
|
||||
//! Model strings
|
||||
//! \threadsafe
|
||||
virtual QStringList getModelStrings() const = 0;
|
||||
|
||||
//! Models for combined code and aircraft designator
|
||||
//! \threadsafe
|
||||
virtual BlackMisc::Simulation::CAircraftModelList getModelsForAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const = 0;
|
||||
@@ -204,7 +212,7 @@ namespace BlackMisc
|
||||
std::function<void(const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::CStatusMessageList &)> dataPublished) = 0;
|
||||
|
||||
//! Trigger read of new data
|
||||
virtual BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead) = 0;
|
||||
virtual BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead, const QDateTime &dateTime = QDateTime()) = 0;
|
||||
|
||||
//! Can connect to swift DB?
|
||||
virtual bool canConnectSwiftDb() const = 0;
|
||||
@@ -276,6 +284,12 @@ namespace BlackMisc
|
||||
//! \copydoc IWebDataServicesProvider::getModelsCount
|
||||
int getModelsCount() const;
|
||||
|
||||
//! \copydoc IWebDataServicesProvider::getModelDbKeys
|
||||
QList<int> getModelDbKeys() const;
|
||||
|
||||
//! \copydoc IWebDataServicesProvider::getModelStrings
|
||||
QStringList getModelStrings() const;
|
||||
|
||||
//! \copydoc IWebDataServicesProvider::getModelsForAircraftDesignatorAndLiveryCombinedCode
|
||||
BlackMisc::Simulation::CAircraftModelList getModelsForAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const;
|
||||
|
||||
@@ -353,7 +367,7 @@ namespace BlackMisc
|
||||
std::function<void(const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::Simulation::CAircraftModelList &, const BlackMisc::CStatusMessageList &)> dataPublished);
|
||||
|
||||
//! \copydoc IWebDataServicesProvider::triggerRead
|
||||
BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead);
|
||||
BlackMisc::Network::CEntityFlags::Entity triggerRead(BlackMisc::Network::CEntityFlags::Entity whatToRead, const QDateTime &newerThan);
|
||||
|
||||
//! \copydoc IWebDataServicesProvider::canConnectSwiftDb
|
||||
bool canConnectSwiftDb() const;
|
||||
|
||||
Reference in New Issue
Block a user