diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-05-11 17:47:54 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-05-11 17:47:54 +0200 |
commit | 254f9dad6377311b8115221c252b20726acad0c5 (patch) | |
tree | 3361c671d301586cc8d07f459194808e0dd39fc3 /common | |
parent | 1291ccf13a0b8a1eddb6aaed24b45ceb31a2e01e (diff) | |
download | sink-254f9dad6377311b8115221c252b20726acad0c5.tar.gz sink-254f9dad6377311b8115221c252b20726acad0c5.zip |
Upgrade job that we can eventually use to upgrade the storage
Diffstat (limited to 'common')
-rw-r--r-- | common/store.cpp | 13 | ||||
-rw-r--r-- | common/store.h | 12 |
2 files changed, 25 insertions, 0 deletions
diff --git a/common/store.cpp b/common/store.cpp index d266098..0eefe69 100644 --- a/common/store.cpp +++ b/common/store.cpp | |||
@@ -277,6 +277,19 @@ KAsync::Job<void> Store::removeDataFromDisk(const QByteArray &identifier) | |||
277 | }); | 277 | }); |
278 | } | 278 | } |
279 | 279 | ||
280 | KAsync::Job<void> Store::upgrade() | ||
281 | { | ||
282 | SinkLog() << "Upgrading..."; | ||
283 | return fetchAll<ApplicationDomain::SinkResource>({}) | ||
284 | .template each([](const ApplicationDomain::SinkResource::Ptr &resource) -> KAsync::Job<void> { | ||
285 | SinkLog() << "Removing caches for " << resource->identifier(); | ||
286 | return removeDataFromDisk(resource->identifier()); | ||
287 | }) | ||
288 | .then([] { | ||
289 | SinkLog() << "Upgrade complete."; | ||
290 | }); | ||
291 | } | ||
292 | |||
280 | static KAsync::Job<void> synchronize(const QByteArray &resource, const Sink::SyncScope &scope) | 293 | static KAsync::Job<void> synchronize(const QByteArray &resource, const Sink::SyncScope &scope) |
281 | { | 294 | { |
282 | SinkLog() << "Synchronizing " << resource << scope; | 295 | SinkLog() << "Synchronizing " << resource << scope; |
diff --git a/common/store.h b/common/store.h index fae76e5..34e14df 100644 --- a/common/store.h +++ b/common/store.h | |||
@@ -122,6 +122,18 @@ KAsync::Job<void> SINK_EXPORT synchronize(const Sink::SyncScope &query); | |||
122 | */ | 122 | */ |
123 | KAsync::Job<void> SINK_EXPORT removeDataFromDisk(const QByteArray &resourceIdentifier); | 123 | KAsync::Job<void> SINK_EXPORT removeDataFromDisk(const QByteArray &resourceIdentifier); |
124 | 124 | ||
125 | /** | ||
126 | * Run upgrade jobs. | ||
127 | * | ||
128 | * Run this to upgrade your local database to a new version. | ||
129 | * Note that this may: | ||
130 | * * take a while | ||
131 | * * remove some/all of your local caches | ||
132 | * | ||
133 | * Note: The initial implementation simply calls removeDataFromDisk for all resources. | ||
134 | */ | ||
135 | KAsync::Job<void> SINK_EXPORT upgrade(); | ||
136 | |||
125 | template <class DomainType> | 137 | template <class DomainType> |
126 | KAsync::Job<DomainType> SINK_EXPORT fetchOne(const Sink::Query &query); | 138 | KAsync::Job<DomainType> SINK_EXPORT fetchOne(const Sink::Query &query); |
127 | 139 | ||