diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-07-27 15:45:12 -0600 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-07-27 15:54:32 -0600 |
commit | 63290ccce102495427a26e689725e565a03ae77a (patch) | |
tree | c54f3b0c7d7bffa811a0e65abebddcc35a77de83 /common/store.cpp | |
parent | 5d197dec9dc8f5c8ef4acd72555c32108404c4ae (diff) | |
download | sink-63290ccce102495427a26e689725e565a03ae77a.tar.gz sink-63290ccce102495427a26e689725e565a03ae77a.zip |
Skip modifications that do nothing.
This allows us to i.e. blindly mark mails as read in kube, with the
modification automatically being dropped if it doesn't do anything
useful.
Diffstat (limited to 'common/store.cpp')
-rw-r--r-- | common/store.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/common/store.cpp b/common/store.cpp index 392f9ce..33d7b51 100644 --- a/common/store.cpp +++ b/common/store.cpp | |||
@@ -209,6 +209,10 @@ KAsync::Job<void> Store::create(const DomainType &domainObject) | |||
209 | template <class DomainType> | 209 | template <class DomainType> |
210 | KAsync::Job<void> Store::modify(const DomainType &domainObject) | 210 | KAsync::Job<void> Store::modify(const DomainType &domainObject) |
211 | { | 211 | { |
212 | if (domainObject.changedProperties().isEmpty()) { | ||
213 | SinkLog() << "Nothing to modify: " << domainObject.identifier(); | ||
214 | return KAsync::null(); | ||
215 | } | ||
212 | SinkLog() << "Modify: " << domainObject; | 216 | SinkLog() << "Modify: " << domainObject; |
213 | // Potentially move to separate thread as well | 217 | // Potentially move to separate thread as well |
214 | auto facade = getFacade<DomainType>(domainObject.resourceInstanceIdentifier()); | 218 | auto facade = getFacade<DomainType>(domainObject.resourceInstanceIdentifier()); |
@@ -218,6 +222,10 @@ KAsync::Job<void> Store::modify(const DomainType &domainObject) | |||
218 | template <class DomainType> | 222 | template <class DomainType> |
219 | KAsync::Job<void> Store::modify(const Query &query, const DomainType &domainObject) | 223 | KAsync::Job<void> Store::modify(const Query &query, const DomainType &domainObject) |
220 | { | 224 | { |
225 | if (domainObject.changedProperties().isEmpty()) { | ||
226 | SinkLog() << "Nothing to modify: " << domainObject.identifier(); | ||
227 | return KAsync::null(); | ||
228 | } | ||
221 | SinkLog() << "Modify: " << query << domainObject; | 229 | SinkLog() << "Modify: " << query << domainObject; |
222 | return fetchAll<DomainType>(query) | 230 | return fetchAll<DomainType>(query) |
223 | .each([=] (const typename DomainType::Ptr &entity) { | 231 | .each([=] (const typename DomainType::Ptr &entity) { |