Index: sync/syncable/syncable_delete_journal.cc |
diff --git a/sync/syncable/syncable_delete_journal.cc b/sync/syncable/syncable_delete_journal.cc |
deleted file mode 100644 |
index 923b065d333e07f3be082a9ad2d4a8fe52dd1f21..0000000000000000000000000000000000000000 |
--- a/sync/syncable/syncable_delete_journal.cc |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "sync/syncable/syncable_delete_journal.h" |
- |
-#include <stddef.h> |
-#include <stdint.h> |
- |
-#include "base/stl_util.h" |
-#include "sync/internal_api/public/base/model_type.h" |
- |
-namespace syncer { |
-namespace syncable { |
- |
-DeleteJournal::DeleteJournal(JournalIndex* initial_journal) { |
- CHECK(initial_journal); |
- delete_journals_.swap(*initial_journal); |
-} |
- |
-DeleteJournal::~DeleteJournal() { |
- STLDeleteElements(&delete_journals_); |
-} |
- |
-size_t DeleteJournal::GetDeleteJournalSize(BaseTransaction* trans) const { |
- DCHECK(trans); |
- return delete_journals_.size(); |
-} |
- |
-void DeleteJournal::UpdateDeleteJournalForServerDelete( |
- BaseTransaction* trans, bool was_deleted, const EntryKernel& entry) { |
- DCHECK(trans); |
- |
- // Should be sufficient to check server type only but check for local |
- // type too because of incomplete test setup. |
- if (!(IsDeleteJournalEnabled(entry.GetServerModelType()) || |
- IsDeleteJournalEnabled( |
- GetModelTypeFromSpecifics(entry.ref(SPECIFICS))))) { |
- return; |
- } |
- |
- JournalIndex::iterator it = delete_journals_.find(&entry); |
- |
- if (entry.ref(SERVER_IS_DEL)) { |
- if (it == delete_journals_.end()) { |
- // New delete. |
- EntryKernel* t = new EntryKernel(entry); |
- delete_journals_.insert(t); |
- delete_journals_to_purge_.erase(t->ref(META_HANDLE)); |
- } |
- } else { |
- // Undelete. This could happen in two cases: |
- // * An entry was deleted then undeleted, i.e. server delete was |
- // overwritten because of entry has unsynced data locally. |
- // * A data type was broken, i.e. encountered unrecoverable error, in last |
- // sync session and all its entries were duplicated in delete journals. |
- // On restart, entries are recreated from downloads and recreation calls |
- // UpdateDeleteJournals() to remove live entries from delete journals, |
- // thus only deleted entries remain in journals. |
- if (it != delete_journals_.end()) { |
- delete_journals_to_purge_.insert((*it)->ref(META_HANDLE)); |
- delete *it; |
- delete_journals_.erase(it); |
- } else if (was_deleted) { |
- delete_journals_to_purge_.insert(entry.ref(META_HANDLE)); |
- } |
- } |
-} |
- |
-void DeleteJournal::GetDeleteJournals(BaseTransaction* trans, |
- ModelType type, |
- EntryKernelSet* deleted_entries) { |
- DCHECK(trans); |
- for (JournalIndex::const_iterator it = delete_journals_.begin(); |
- it != delete_journals_.end(); ++it) { |
- if ((*it)->GetServerModelType() == type || |
- GetModelTypeFromSpecifics((*it)->ref(SPECIFICS)) == type) { |
- deleted_entries->insert(*it); |
- } |
- } |
- passive_delete_journal_types_.Put(type); |
-} |
- |
-void DeleteJournal::PurgeDeleteJournals(BaseTransaction* trans, |
- const MetahandleSet& to_purge) { |
- DCHECK(trans); |
- JournalIndex::iterator it = delete_journals_.begin(); |
- while (it != delete_journals_.end()) { |
- int64_t handle = (*it)->ref(META_HANDLE); |
- if (to_purge.count(handle)) { |
- delete *it; |
- delete_journals_.erase(it++); |
- } else { |
- ++it; |
- } |
- } |
- delete_journals_to_purge_.insert(to_purge.begin(), to_purge.end()); |
-} |
- |
-void DeleteJournal::TakeSnapshotAndClear(BaseTransaction* trans, |
- EntryKernelSet* journal_entries, |
- MetahandleSet* journals_to_purge) { |
- DCHECK(trans); |
- // Move passive delete journals to snapshot. Will copy back if snapshot fails |
- // to save. |
- JournalIndex::iterator it = delete_journals_.begin(); |
- while (it != delete_journals_.end()) { |
- if (passive_delete_journal_types_.Has((*it)->GetServerModelType()) || |
- passive_delete_journal_types_.Has(GetModelTypeFromSpecifics( |
- (*it)->ref(SPECIFICS)))) { |
- journal_entries->insert(*it); |
- delete_journals_.erase(it++); |
- } else { |
- ++it; |
- } |
- } |
- *journals_to_purge = delete_journals_to_purge_; |
- delete_journals_to_purge_.clear(); |
-} |
- |
-void DeleteJournal::AddJournalBatch(BaseTransaction* trans, |
- const EntryKernelSet& entries) { |
- DCHECK(trans); |
- EntryKernel needle; |
- for (EntryKernelSet::const_iterator i = entries.begin(); |
- i != entries.end(); ++i) { |
- needle.put(ID, (*i)->ref(ID)); |
- if (delete_journals_.find(&needle) == delete_journals_.end()) { |
- delete_journals_.insert(new EntryKernel(**i)); |
- } |
- delete_journals_to_purge_.erase((*i)->ref(META_HANDLE)); |
- } |
-} |
- |
-/* static */ |
-bool DeleteJournal::IsDeleteJournalEnabled(ModelType type) { |
- switch (type) { |
- case BOOKMARKS: |
- return true; |
- default: |
- return false; |
- } |
-} |
- |
-} // namespace syncable |
-} // namespace syncer |