refs #475, allow to load DB data from disk.

* Will allow to load data if DB is not accessible / available
* Also allows to save, so a special set can be saved for testing/forensic.
* fixed status bar, as received data no longer means DB is alive
This commit is contained in:
Klaus Basan
2015-09-30 05:05:03 +02:00
committed by Mathew Sutcliffe
parent 326a465b54
commit aa653e0d85
11 changed files with 379 additions and 25 deletions

View File

@@ -303,6 +303,20 @@ namespace BlackMisc
return this->m_webDataReaderProvider->canConnectSwiftDb();
}
bool CWebDataServicesAware::writeDbDataToDisk(const QString &dir) const
{
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
if (!hasProvider()) { return false; }
return this->m_webDataReaderProvider->writeDbDataToDisk(dir);
}
bool CWebDataServicesAware::readDbDataFromDisk(const QString &dir, bool inBackround)
{
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
if (!hasProvider()) { return false; }
return this->m_webDataReaderProvider->readDbDataFromDisk(dir, inBackround);
}
void CWebDataServicesAware::disconnectSignals()
{
for (QMetaObject::Connection &c : m_swiftConnections)

View File

@@ -195,6 +195,12 @@ namespace BlackMisc
//! Can connect to swift DB?
virtual bool canConnectSwiftDb() const = 0;
//! Write data to disk
virtual bool writeDbDataToDisk(const QString &dir) const = 0;
//! Load DB data from disk
virtual bool readDbDataFromDisk(const QString &dir, bool inBackground) = 0;
};
//! Class which can be directly used to access an \sa IWebDataReaderProvider object
@@ -326,6 +332,12 @@ namespace BlackMisc
//! \copydoc IWebDataReaderProvider::canConnectSwiftDb
bool canConnectSwiftDb() const;
//! \copydoc IWebDataReaderProvider::writeDbDataToDisk
bool writeDbDataToDisk(const QString &dir) const;
//! \copydoc IWebDataReaderProvider::readDbDataFromDisk
bool readDbDataFromDisk(const QString &dir, bool inBackround);
protected:
//! Constructor
CWebDataServicesAware(IWebDataServicesProvider *webDataReaderProvider = nullptr) : m_webDataReaderProvider(webDataReaderProvider) { }