Index: sync/internal_api/sync_manager_factory.cc |
diff --git a/sync/internal_api/sync_manager_factory.cc b/sync/internal_api/sync_manager_factory.cc |
index 9d784b46ada76cb50d03ace2cf040cdd00a14f2e..c3f09d32e5b09f3e7eb1cffd3511d804339636d4 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 |