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

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: linux compile 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
« no previous file with comments | « chrome/browser/sync/sessions/sync_session.h ('k') | chrome/browser/sync/sessions/sync_session_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..077b629a9ced2305b00c218a9bfce8881d41f7d2 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() {
« no previous file with comments | « chrome/browser/sync/sessions/sync_session.h ('k') | chrome/browser/sync/sessions/sync_session_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698