refs #494 Use QFileSystemWatcher to watch for remote changes to the data store.

This commit is contained in:
Mathew Sutcliffe
2015-10-18 22:26:23 +01:00
parent 6c8586df23
commit a4dfc4ba9d
2 changed files with 5 additions and 4 deletions

View File

@@ -27,9 +27,10 @@ namespace BlackCore
}
connect(this, &CValueCache::valuesChangedByLocal, this, &CDataCache::saveToStore);
connect(&m_watcher, &QFileSystemWatcher::fileChanged, this, [this] { loadFromStore(); });
connect(&m_reloadTimer, &QTimer::timeout, this, [this]() { loadFromStore(); });
m_reloadTimer.start(1000);
if (! QFile::exists(m_revisionFileName)) { QFile(m_revisionFileName).open(QFile::WriteOnly); }
m_watcher.addPath(m_revisionFileName);
loadFromStore();
}

View File

@@ -15,7 +15,7 @@
#include "blackcore/blackcoreexport.h"
#include "blackmisc/valuecache.h"
#include <QUuid>
#include <QTimer>
#include <QFileSystemWatcher>
namespace BlackCore
{
@@ -46,7 +46,7 @@ namespace BlackCore
//! \param defer Whether to defer applying the changes. Used when called by saveToStore.
void loadFromStore(bool lock = true, bool defer = false);
QTimer m_reloadTimer;
QFileSystemWatcher m_watcher;
QUuid m_revision;
const QString m_revisionFileName { persistentStore() + "/.rev" };
BlackMisc::CVariantMap m_deferredChanges;