diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-05 01:15:51 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-05 01:15:51 +0000 |
commit | 6add02aaf5d93a32bec7e32e1b0ff527f1bb3d18 (patch) | |
tree | b2a8fbec180d9a6457ed0856a5cb213e9e2c751a /sync/syncable/entry_kernel.h | |
parent | 0e11e9fa745c6174f709773346368c4f771ddb2f (diff) | |
download | chromium_src-6add02aaf5d93a32bec7e32e1b0ff527f1bb3d18.zip chromium_src-6add02aaf5d93a32bec7e32e1b0ff527f1bb3d18.tar.gz chromium_src-6add02aaf5d93a32bec7e32e1b0ff527f1bb3d18.tar.bz2 |
[Sync] Add support for loading, updating and querying delete journals in
Directory.
Delete journals keeps deleted metas until the persistence of the deletes in
native model is confirmed. When an entry is deleted in sync model, a copy is
added to delete journals in memory and saved in database later. Next time when
the client restarts, if some native data doesn't match with sync data but
matches with a delete journal, it's safe to assume that it's because native
delete was not persisted and the native data should be deleted. This helps
prevent back-from-dead problem due to native model and sync model get
out-of-sync.
BUG=121928
Review URL: https://chromiumcodereview.appspot.com/11441026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175248 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/syncable/entry_kernel.h')
-rw-r--r-- | sync/syncable/entry_kernel.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sync/syncable/entry_kernel.h b/sync/syncable/entry_kernel.h index 6dc88a7..e9cf828 100644 --- a/sync/syncable/entry_kernel.h +++ b/sync/syncable/entry_kernel.h @@ -5,6 +5,8 @@ #ifndef SYNC_SYNCABLE_ENTRY_KERNEL_H_ #define SYNC_SYNCABLE_ENTRY_KERNEL_H_ +#include <set> + #include "base/time.h" #include "base/values.h" #include "sync/base/sync_export.h" @@ -323,6 +325,17 @@ struct SYNC_EXPORT_PRIVATE EntryKernel { bool dirty_; }; +class EntryKernelLessByMetaHandle { + public: + inline bool operator()(const EntryKernel* a, + const EntryKernel* b) const { + return a->ref(META_HANDLE) < b->ref(META_HANDLE); + } +}; + +typedef std::set<const EntryKernel*, EntryKernelLessByMetaHandle> + EntryKernelSet; + struct EntryKernelMutation { EntryKernel original, mutated; }; |