summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/sync_manager_impl.h
diff options
context:
space:
mode:
authorrlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-27 17:13:43 +0000
committerrlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-27 17:13:43 +0000
commitbd7c4fda2b543725ec3ab29952d64674d86d6b27 (patch)
tree2707e3dfc1c1e04fbf6b07e87053a2bac48cafec /sync/internal_api/sync_manager_impl.h
parent6c8715d3e19279d7b28be72c703d1af8fbfef80c (diff)
downloadchromium_src-bd7c4fda2b543725ec3ab29952d64674d86d6b27.zip
chromium_src-bd7c4fda2b543725ec3ab29952d64674d86d6b27.tar.gz
chromium_src-bd7c4fda2b543725ec3ab29952d64674d86d6b27.tar.bz2
sync: Add NonBlockingTypeProcesssor and SyncCore
Introduces the model-thread sibling of the NonBlockingTypeProcessorCore that was added in r258390. Also adds SyncCore and SyncCoreProxy, the classes that will be used to connect the two. The SyncCore lives on the sync thread and carries out requests sent to it by the SyncCoreProxy. The SyncCoreProxy is a thread-safe wrapper around the SyncCore that can be easily copied and whose methods can be called from any thread. The NonBlockingTypeProcessor is instantiated on the same thread as the data to be synced. It connects to a NonBlockingTypeProcessorCore on the sync thread by sending a request through a SyncCoreProxy. Keeping data in sync will be a collaborative effort involving both the NonBlockingTypeProcessor and NonBlockingTypeProcesssorCore, though none of this functionality has been implemented yet. As of this CL, none these classes are instantiated outside of tests. This CL should have no effect on current sync behavior. BUG=351005 Review URL: https://codereview.chromium.org/208893004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259921 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/sync_manager_impl.h')
-rw-r--r--sync/internal_api/sync_manager_impl.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sync/internal_api/sync_manager_impl.h b/sync/internal_api/sync_manager_impl.h
index 7189026..5cb3908 100644
--- a/sync/internal_api/sync_manager_impl.h
+++ b/sync/internal_api/sync_manager_impl.h
@@ -110,6 +110,7 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
virtual void SaveChanges() OVERRIDE;
virtual void ShutdownOnSyncThread() OVERRIDE;
virtual UserShare* GetUserShare() OVERRIDE;
+ virtual syncer::SyncCore* GetSyncCore() OVERRIDE;
virtual const std::string cache_guid() OVERRIDE;
virtual bool ReceivedExperiment(Experiments* experiments) OVERRIDE;
virtual bool HasUnsyncedItems() OVERRIDE;
@@ -311,6 +312,9 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl :
// This state changes when entering or exiting a configuration cycle.
scoped_ptr<ModelTypeRegistry> model_type_registry_;
+ // The main interface for non-blocking sync types.
+ scoped_ptr<SyncCore> sync_core_;
+
// A container of various bits of information used by the SyncScheduler to
// create SyncSessions. Must outlive the SyncScheduler.
scoped_ptr<sessions::SyncSessionContext> session_context_;