Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1196)

Unified Diff: chrome/browser/chromeos/contacts/fake_contact_database.cc

Issue 10905033: contacts: Add ContactMap class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: apply review feedback Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/contacts/fake_contact_database.cc
diff --git a/chrome/browser/chromeos/contacts/fake_contact_database.cc b/chrome/browser/chromeos/contacts/fake_contact_database.cc
index 6cd314c3f549956b5c8c337fda76e80911edc99a..f74d4531a00731a35d5ad59b097733b7773febd3 100644
--- a/chrome/browser/chromeos/contacts/fake_contact_database.cc
+++ b/chrome/browser/chromeos/contacts/fake_contact_database.cc
@@ -5,7 +5,6 @@
#include "chrome/browser/chromeos/contacts/fake_contact_database.h"
#include "chrome/browser/chromeos/contacts/contact.pb.h"
-#include "chrome/browser/chromeos/contacts/contact_test_util.h"
#include "content/public/browser/browser_thread.h"
using content::BrowserThread;
@@ -28,7 +27,8 @@ void FakeContactDatabase::Init(const FilePath& database_dir,
void FakeContactDatabase::SetContacts(const ContactPointers& contacts,
const UpdateMetadata& metadata) {
- test::CopyContacts(contacts, &contacts_);
+ contacts_.Clear();
+ MergeContacts(contacts);
metadata_ = metadata;
}
@@ -45,9 +45,8 @@ void FakeContactDatabase::SaveContacts(scoped_ptr<ContactPointers> contacts,
if (save_success_) {
num_saved_contacts_ += contacts->size();
if (is_full_update)
- test::CopyContacts(*contacts, &contacts_);
- else
- MergeContacts(*contacts);
+ contacts_.Clear();
+ MergeContacts(*contacts);
metadata_ = *metadata;
}
callback.Run(save_success_);
@@ -58,7 +57,10 @@ void FakeContactDatabase::LoadContacts(LoadCallback callback) {
scoped_ptr<ScopedVector<Contact> > contacts(new ScopedVector<Contact>());
scoped_ptr<UpdateMetadata> metadata(new UpdateMetadata);
if (load_success_) {
- test::CopyContacts(contacts_, contacts.get());
+ for (ContactMap::const_iterator it = contacts_.begin();
+ it != contacts_.end(); ++it) {
+ contacts->push_back(new Contact(*it->second));
+ }
*metadata = metadata_;
}
callback.Run(load_success_, contacts.Pass(), metadata.Pass());
@@ -69,22 +71,10 @@ FakeContactDatabase::~FakeContactDatabase() {
void FakeContactDatabase::MergeContacts(
const ContactPointers& updated_contacts) {
- for (ContactPointers::const_iterator updated_it = updated_contacts.begin();
- updated_it != updated_contacts.end(); ++updated_it) {
- const Contact& updated_contact = **updated_it;
- bool found = false;
- for (ScopedVector<Contact>::const_iterator existing_it = contacts_.begin();
- existing_it != contacts_.end(); ++existing_it) {
- Contact* existing_contact = *existing_it;
- if (existing_contact->contact_id() == updated_contact.contact_id()) {
- *existing_contact = updated_contact;
- found = true;
- break;
- }
- }
- if (!found)
- contacts_.push_back(new Contact(updated_contact));
- }
+ scoped_ptr<ScopedVector<Contact> > copied_contacts(new ScopedVector<Contact>);
+ for (size_t i = 0; i < updated_contacts.size(); ++i)
+ copied_contacts->push_back(new Contact(*updated_contacts[i]));
+ contacts_.Merge(copied_contacts.Pass(), ContactMap::KEEP_DELETED_CONTACTS);
}
} // namespace contacts

Powered by Google App Engine
This is Rietveld 408576698