diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 03:49:27 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 03:49:27 +0000 |
commit | 8597ccf7a74ff785d8c51d1174b49dac750c84e7 (patch) | |
tree | 0c16a6882e7e43c78ddfe0d5fe411344043269ac /sync | |
parent | 94a17c90142c1fb6e4ef88e5f8b9d124562d2650 (diff) | |
download | chromium_src-8597ccf7a74ff785d8c51d1174b49dac750c84e7.zip chromium_src-8597ccf7a74ff785d8c51d1174b49dac750c84e7.tar.gz chromium_src-8597ccf7a74ff785d8c51d1174b49dac750c84e7.tar.bz2 |
Let SyncManagerFactory create different types of sync managers according to
constructor param.
BUG=362679
Review URL: https://codereview.chromium.org/265823009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270576 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync')
-rw-r--r-- | sync/internal_api/public/sync_manager_factory.h | 9 | ||||
-rw-r--r-- | sync/internal_api/sync_manager_factory.cc | 17 | ||||
-rw-r--r-- | sync/internal_api/test/sync_manager_factory_for_profile_sync_test.cc | 3 | ||||
-rw-r--r-- | sync/tools/sync_client.cc | 2 |
4 files changed, 26 insertions, 5 deletions
diff --git a/sync/internal_api/public/sync_manager_factory.h b/sync/internal_api/public/sync_manager_factory.h index 12fa52f..a121c8b 100644 --- a/sync/internal_api/public/sync_manager_factory.h +++ b/sync/internal_api/public/sync_manager_factory.h @@ -17,12 +17,19 @@ class SyncManager; // Helper class to allow dependency injection of the SyncManager. class SYNC_EXPORT SyncManagerFactory { public: - SyncManagerFactory(); + enum MANAGER_TYPE { + NORMAL, // Normal sync manager + BACKUP, // Backup sync manager + ROLLBACK, // Rollback sync manager + }; + + SyncManagerFactory(MANAGER_TYPE type); virtual ~SyncManagerFactory(); virtual scoped_ptr<SyncManager> CreateSyncManager(std::string name); private: + MANAGER_TYPE type_; DISALLOW_COPY_AND_ASSIGN(SyncManagerFactory); }; diff --git a/sync/internal_api/sync_manager_factory.cc b/sync/internal_api/sync_manager_factory.cc index 9d784b4..c3f09d32 100644 --- a/sync/internal_api/sync_manager_factory.cc +++ b/sync/internal_api/sync_manager_factory.cc @@ -4,11 +4,14 @@ #include "sync/internal_api/public/sync_manager_factory.h" +#include "sync/internal_api/sync_backup_manager.h" #include "sync/internal_api/sync_manager_impl.h" +#include "sync/internal_api/sync_rollback_manager.h" namespace syncer { -SyncManagerFactory::SyncManagerFactory() { +SyncManagerFactory::SyncManagerFactory(SyncManagerFactory::MANAGER_TYPE type) + : type_(type) { } SyncManagerFactory::~SyncManagerFactory() { @@ -16,7 +19,17 @@ SyncManagerFactory::~SyncManagerFactory() { scoped_ptr<SyncManager> SyncManagerFactory::CreateSyncManager( const std::string name) { - return scoped_ptr<SyncManager>(new SyncManagerImpl(name)); + switch (type_) { + case NORMAL: + return scoped_ptr<SyncManager>(new SyncManagerImpl(name)); + case BACKUP: + return scoped_ptr<SyncManager>(new SyncBackupManager()); + case ROLLBACK: + return scoped_ptr<SyncManager>(new SyncRollbackManager()); + default: + NOTREACHED(); + return scoped_ptr<SyncManager>(new SyncManagerImpl(name)); + } } } // namespace syncer diff --git a/sync/internal_api/test/sync_manager_factory_for_profile_sync_test.cc b/sync/internal_api/test/sync_manager_factory_for_profile_sync_test.cc index 34289c4..7c3e643 100644 --- a/sync/internal_api/test/sync_manager_factory_for_profile_sync_test.cc +++ b/sync/internal_api/test/sync_manager_factory_for_profile_sync_test.cc @@ -10,7 +10,8 @@ namespace syncer { SyncManagerFactoryForProfileSyncTest::SyncManagerFactoryForProfileSyncTest( base::Closure init_callback) - : init_callback_(init_callback) { + : SyncManagerFactory(SyncManagerFactory::NORMAL), + init_callback_(init_callback) { } SyncManagerFactoryForProfileSyncTest::~SyncManagerFactoryForProfileSyncTest() {} diff --git a/sync/tools/sync_client.cc b/sync/tools/sync_client.cc index 5953871..8edd6fa 100644 --- a/sync/tools/sync_client.cc +++ b/sync/tools/sync_client.cc @@ -326,7 +326,7 @@ int SyncClientMain(int argc, char* argv[]) { workers.push_back(passive_model_safe_worker); // Set up sync manager. - SyncManagerFactory sync_manager_factory; + SyncManagerFactory sync_manager_factory(SyncManagerFactory::NORMAL); scoped_ptr<SyncManager> sync_manager = sync_manager_factory.CreateSyncManager("sync_client manager"); LoggingJsEventHandler js_event_handler; |