mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-06 10:15:38 +08:00
refs #709, access to timestamp/count per entity
* utility functions * made protected functions public
This commit is contained in:
@@ -62,7 +62,7 @@ namespace BlackCore
|
||||
{
|
||||
const bool changedUrl = this->hasChangedUrl(currentEntity);
|
||||
const QDateTime cacheTs(this->getCacheTimestamp(currentEntity));
|
||||
const QDateTime latestEntityTs(this->getLatestEntityTimestamp(currentEntity));
|
||||
const QDateTime latestEntityTs(this->getLatestEntityTimestampFromInfoObjects(currentEntity));
|
||||
const qint64 cacheTimestamp = cacheTs.isValid() ? cacheTs.toMSecsSinceEpoch() : -1;
|
||||
const qint64 latestEntityTimestamp = latestEntityTs.isValid() ? latestEntityTs.toMSecsSinceEpoch() : -1;
|
||||
Q_ASSERT_X(latestEntityTimestamp >= 0, Q_FUNC_INFO, "Missing timestamp");
|
||||
@@ -180,7 +180,7 @@ namespace BlackCore
|
||||
return infoList().size() > 0;
|
||||
}
|
||||
|
||||
QDateTime CDatabaseReader::getLatestEntityTimestamp(CEntityFlags::Entity entity) const
|
||||
QDateTime CDatabaseReader::getLatestEntityTimestampFromInfoObjects(CEntityFlags::Entity entity) const
|
||||
{
|
||||
static const QDateTime e;
|
||||
const CDbInfoList il(infoList());
|
||||
@@ -190,6 +190,16 @@ namespace BlackCore
|
||||
return info.getUtcTimestamp();
|
||||
}
|
||||
|
||||
int CDatabaseReader::getCountFromInfoObjects(CEntityFlags::Entity entity) const
|
||||
{
|
||||
static const QDateTime e;
|
||||
const CDbInfoList il(infoList());
|
||||
if (il.isEmpty() || entity == CEntityFlags::NoEntity) { return -1; }
|
||||
CDbInfo info = il.findFirstByEntityOrDefault(entity);
|
||||
if (!info.isValid()) { return -1; }
|
||||
return info.getEntries();
|
||||
}
|
||||
|
||||
CDatabaseReaderConfig CDatabaseReader::getConfigForEntity(CEntityFlags::Entity entity) const
|
||||
{
|
||||
return this->m_config.findFirstOrDefaultForEntity(entity);
|
||||
|
||||
@@ -103,6 +103,23 @@ namespace BlackCore
|
||||
//! \threadsafe
|
||||
bool canConnect(QString &message) const;
|
||||
|
||||
//! Get cache timestamp
|
||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entities) const = 0;
|
||||
|
||||
//! Cache`s number of entities
|
||||
virtual int getCacheCount(BlackMisc::Network::CEntityFlags::Entity entity) const = 0;
|
||||
|
||||
//! Info objects available?
|
||||
bool hasInfoObjects() const;
|
||||
|
||||
//! Obtain latest object timestamp from info objects
|
||||
//! \sa BlackCore::Db::CInfoDataReader
|
||||
QDateTime getLatestEntityTimestampFromInfoObjects(BlackMisc::Network::CEntityFlags::Entity entity) const;
|
||||
|
||||
//! Count from info objects
|
||||
//! \sa BlackCore::Db::CInfoDataReader
|
||||
int getCountFromInfoObjects(BlackMisc::Network::CEntityFlags::Entity entity) const;
|
||||
|
||||
//! Status message (error message)
|
||||
const QString &getStatusMessage() const;
|
||||
|
||||
@@ -138,13 +155,6 @@ namespace BlackCore
|
||||
//! \sa BlackCore::Db::CInfoDataReader
|
||||
BlackMisc::Db::CDbInfoList infoList() const;
|
||||
|
||||
//! Info objects available?
|
||||
bool hasInfoObjects() const;
|
||||
|
||||
//! Obtain latest object timestamp
|
||||
//! \sa BlackCore::Db::CInfoDataReader
|
||||
QDateTime getLatestEntityTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const;
|
||||
|
||||
//! Config for given entity
|
||||
CDatabaseReaderConfig getConfigForEntity(BlackMisc::Network::CEntityFlags::Entity entity) const;
|
||||
|
||||
@@ -159,16 +169,9 @@ namespace BlackCore
|
||||
|
||||
//! \name Cache access
|
||||
//! @{
|
||||
|
||||
//! Syncronize caches for given entities
|
||||
virtual void syncronizeCaches(BlackMisc::Network::CEntityFlags::Entity entities) = 0;
|
||||
|
||||
//! Cache`s timestamp for given entity
|
||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entities) const = 0;
|
||||
|
||||
//! Cache`s number of entities
|
||||
virtual int getCacheCount(BlackMisc::Network::CEntityFlags::Entity entity) const = 0;
|
||||
|
||||
//! Invalidate the caches for given entities
|
||||
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) = 0;
|
||||
|
||||
|
||||
@@ -114,15 +114,15 @@ namespace BlackCore
|
||||
//! Write to static DB data file
|
||||
bool writeToJsonFiles(const QString &dir) const;
|
||||
|
||||
protected:
|
||||
//! \name cache handling for base class
|
||||
//! @{
|
||||
virtual void syncronizeCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
// cache handling for base class
|
||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual int getCacheCount(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual void syncronizeCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
|
||||
protected:
|
||||
// cache handling for base class
|
||||
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
//! @}
|
||||
|
||||
private slots:
|
||||
//! Aircraft have been read
|
||||
|
||||
@@ -48,19 +48,19 @@ namespace BlackCore
|
||||
//! URL info objects web service
|
||||
BlackMisc::Network::CUrl getInfoObjectsUrl() const;
|
||||
|
||||
// cache handling for base class
|
||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual int getCacheCount(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
|
||||
public slots:
|
||||
//! Allow to call CInfoDataReader::ps_read directly, special for info objects
|
||||
void read(BlackMisc::Network::CEntityFlags::Entity entities = BlackMisc::Network::CEntityFlags::InfoObjectEntity, const QDateTime &newerThan = QDateTime());
|
||||
|
||||
protected:
|
||||
//! \name cache handling for base class
|
||||
//! @{
|
||||
// cache handling for base class
|
||||
virtual void syncronizeCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual int getCacheCount(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
//! @}
|
||||
|
||||
private slots:
|
||||
//! Info objects have been read
|
||||
|
||||
@@ -120,15 +120,15 @@ namespace BlackCore
|
||||
//! Write to JSON file
|
||||
bool writeToJsonFiles(const QString &dir) const;
|
||||
|
||||
protected:
|
||||
//! \name cache handling for base class
|
||||
//! @{
|
||||
virtual void syncronizeCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
// cache handling for base class
|
||||
virtual QDateTime getCacheTimestamp(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual int getCacheCount(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
virtual void syncronizeCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
|
||||
protected:
|
||||
// cache handling for base class
|
||||
virtual void invalidateCaches(BlackMisc::Network::CEntityFlags::Entity entities) override;
|
||||
virtual bool hasChangedUrl(BlackMisc::Network::CEntityFlags::Entity entity) const override;
|
||||
//! @}
|
||||
|
||||
private slots:
|
||||
//! Liveries have been read
|
||||
|
||||
Reference in New Issue
Block a user