summaryrefslogtreecommitdiffstats
path: root/sync/syncable
diff options
context:
space:
mode:
authorhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-01 00:39:05 +0000
committerhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-01 00:39:05 +0000
commit74001d2d9297c41dd15834cb59e90064f1c158df (patch)
treead8d5e6f60c6a07b19c003906154010d696c12b4 /sync/syncable
parent6a84742a22f1cc167599e97c61303abb64e7fd91 (diff)
downloadchromium_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.cc15
-rw-r--r--sync/syncable/directory.h5
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,