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

Unified Diff: chrome/browser/sync/sessions/sync_session.cc

Issue 5939006: sync: beginnings of MessageLoop based SyncerThread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review+tests Created 9 years, 11 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/sync/sessions/sync_session.cc
diff --git a/chrome/browser/sync/sessions/sync_session.cc b/chrome/browser/sync/sessions/sync_session.cc
index da6412f7809116448143399aa3b1656ab566d924..50ffd633fa996de62b0c69802ca9e10416452f15 100644
--- a/chrome/browser/sync/sessions/sync_session.cc
+++ b/chrome/browser/sync/sessions/sync_session.cc
@@ -24,6 +24,32 @@ SyncSession::SyncSession(SyncSessionContext* context, Delegate* delegate,
SyncSession::~SyncSession() {}
+void SyncSession::Coalesce(const SyncSession* session) {
+ if (context_ != session->context() || delegate_ != session->delegate_) {
+ NOTREACHED();
+ return;
+ }
+
+ source_ = SyncSourceInfo(session->source_.first,
+ source_.second | session->source_.second);
+
+ std::vector<ModelSafeWorker*> temp;
+ std::set_union(workers_.begin(), workers_.end(),
+ session->workers_.begin(), session->workers_.end(),
+ std::back_inserter(temp));
+ workers_.swap(temp);
+
+ ModelSafeRoutingInfo temp_r;
+ std::set_union(routing_info_.begin(), routing_info_.end(),
+ session->routing_info_.begin(), session->routing_info_.end(),
+ std::insert_iterator<ModelSafeRoutingInfo>(temp_r, temp_r.begin()));
+ routing_info_.swap(temp_r);
+}
+
+void SyncSession::ResetTransientState() {
+ status_controller_.reset(new StatusController(routing_info_));
+}
+
SyncSessionSnapshot SyncSession::TakeSnapshot() const {
syncable::ScopedDirLookup dir(context_->directory_manager(),
context_->account_name());
@@ -55,7 +81,8 @@ SyncSessionSnapshot SyncSession::TakeSnapshot() const {
delegate_->IsSyncingCurrentlySilenced(),
status_controller_->unsynced_handles().size(),
status_controller_->TotalNumConflictingItems(),
- status_controller_->did_commit_items());
+ status_controller_->did_commit_items(),
+ source_);
}
SyncSourceInfo SyncSession::TestAndSetSource() {

Powered by Google App Engine
This is Rietveld 408576698