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

Unified Diff: chrome/browser/sync/glue/sync_backend_registrar.h

Issue 7926001: [Sync] Move change-related methods out of SyncManager::Observer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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
« no previous file with comments | « chrome/browser/sync/glue/sync_backend_host.cc ('k') | chrome/browser/sync/glue/sync_backend_registrar.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/glue/sync_backend_registrar.h
diff --git a/chrome/browser/sync/glue/sync_backend_registrar.h b/chrome/browser/sync/glue/sync_backend_registrar.h
index 6f9bd03b7a98a83c5bc5c18d7bece50fe577a416..66e1881b9879121ad838d316438ec6418c4ed035 100644
--- a/chrome/browser/sync/glue/sync_backend_registrar.h
+++ b/chrome/browser/sync/glue/sync_backend_registrar.h
@@ -14,6 +14,7 @@
#include "base/memory/ref_counted.h"
#include "base/synchronization/lock.h"
#include "chrome/browser/sync/engine/model_safe_worker.h"
+#include "chrome/browser/sync/internal_api/sync_manager.h"
#include "chrome/browser/sync/syncable/model_type.h"
class MessageLoop;
@@ -28,9 +29,11 @@ namespace browser_sync {
class ChangeProcessor;
class UIModelWorker;
-// A class to keep track of the workers and routing info for the
-// enabled sync types.
-class SyncBackendRegistrar : public ModelSafeWorkerRegistrar {
+// A class that keep track of the workers, change processors, and
+// routing info for the enabled sync types, and also routes change
+// events to the right processors.
+class SyncBackendRegistrar : public ModelSafeWorkerRegistrar,
akalin 2011/09/16 02:20:20 not sure if SyncBackendRegistrar is the best name
+ public sync_api::SyncManager::ChangeDelegate {
public:
// |initial_types| contains the initial set of types to sync
// (initially put in the passive group). |name| is used for
@@ -86,9 +89,17 @@ class SyncBackendRegistrar : public ModelSafeWorkerRegistrar {
// surprising: see http://crbug.com/92804.
void DeactivateDataType(syncable::ModelType type);
- // Returns the change processor for the given model, or NULL if none
- // exists. Must be called from |group|'s native thread.
- ChangeProcessor* GetProcessor(syncable::ModelType type);
+ // Returns true only between calls to ActivateDataType(type, ...)
+ // and DeactivateDataType(type). Used only by tests.
+ bool IsTypeActivatedForTest(syncable::ModelType type) const;
+
+ // SyncManager::ChangeDelegate implementation. May be called from
+ // any thread.
+ virtual void OnChangesApplied(
+ syncable::ModelType model_type,
+ const sync_api::BaseTransaction* trans,
+ const sync_api::ImmutableChangeRecordList& changes) OVERRIDE;
+ virtual void OnChangesComplete(syncable::ModelType model_type) OVERRIDE;
// ModelSafeWorkerRegistrar implementation. May be called from any
// thread.
@@ -100,10 +111,14 @@ class SyncBackendRegistrar : public ModelSafeWorkerRegistrar {
typedef std::map<ModelSafeGroup,
scoped_refptr<ModelSafeWorker> > WorkerMap;
+ // Returns the change processor for the given model, or NULL if none
+ // exists. Must be called from |group|'s native thread.
+ ChangeProcessor* GetProcessor(syncable::ModelType type) const;
+
// Must be called with |lock_| held. Simply returns the change
// processor for the given type, if it exists. May be called from
// any thread.
- ChangeProcessor* GetProcessorUnsafe(syncable::ModelType type);
+ ChangeProcessor* GetProcessorUnsafe(syncable::ModelType type) const;
// Return true if |model_type| lives on the current thread. Must be
// called with |lock_| held. May be called on any thread.
« no previous file with comments | « chrome/browser/sync/glue/sync_backend_host.cc ('k') | chrome/browser/sync/glue/sync_backend_registrar.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698