diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-01 00:39:05 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-01 00:39:05 +0000 |
commit | 74001d2d9297c41dd15834cb59e90064f1c158df (patch) | |
tree | ad8d5e6f60c6a07b19c003906154010d696c12b4 /sync/syncable | |
parent | 6a84742a22f1cc167599e97c61303abb64e7fd91 (diff) | |
download | chromium_src-74001d2d9297c41dd15834cb59e90064f1c158df.zip chromium_src-74001d2d9297c41dd15834cb59e90064f1c158df.tar.gz chromium_src-74001d2d9297c41dd15834cb59e90064f1c158df.tar.bz2 |
Implememt garbage collection of old entries according to
version_watermark specified in progress marker during update processing.
BUG=347253
Review URL: https://codereview.chromium.org/180673002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254298 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/syncable')
-rw-r--r-- | sync/syncable/directory.cc | 15 | ||||
-rw-r--r-- | sync/syncable/directory.h | 5 |
2 files changed, 20 insertions, 0 deletions
diff --git a/sync/syncable/directory.cc b/sync/syncable/directory.cc index d83b1f6..97e7071 100644 --- a/sync/syncable/directory.cc +++ b/sync/syncable/directory.cc @@ -903,6 +903,21 @@ void Directory::GetUnappliedUpdateMetaHandles( } } +void Directory::GetMetaHandlesOfType(BaseTransaction* trans, + ModelType type, + std::vector<int64>* result) { + result->clear(); + ScopedKernelLock lock(this); + for (MetahandlesMap::iterator it = kernel_->metahandles_map.begin(); + it != kernel_->metahandles_map.end(); ++it) { + EntryKernel* entry = it->second; + const ModelType entry_type = + GetModelTypeFromSpecifics(entry->ref(SPECIFICS)); + if (entry_type == type) + result->push_back(it->first); + } +} + void Directory::CollectMetaHandleCounts( std::vector<int>* num_entries_by_type, std::vector<int>* num_to_delete_entries_by_type) { diff --git a/sync/syncable/directory.h b/sync/syncable/directory.h index c5959b9..ca8f4f1 100644 --- a/sync/syncable/directory.h +++ b/sync/syncable/directory.h @@ -315,6 +315,11 @@ class SYNC_EXPORT Directory { FullModelTypeSet server_types, std::vector<int64>* result); + // Get all the metahandles of entries of |type|. + void GetMetaHandlesOfType(BaseTransaction* trans, + ModelType type, + Metahandles* result); + // Get metahandle counts for various criteria to show on the // about:sync page. The information is computed on the fly // each time. If this results in a significant performance hit, |