Roll src/third_party/WebKit f36d5e0:68b67cd (svn 193299:193303)
[chromium-blink-merge.git] / sync / internal_api / sync_manager_factory.cc
blobc3f09d32e5b09f3e7eb1cffd3511d804339636d4
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "sync/internal_api/public/sync_manager_factory.h"
7 #include "sync/internal_api/sync_backup_manager.h"
8 #include "sync/internal_api/sync_manager_impl.h"
9 #include "sync/internal_api/sync_rollback_manager.h"
11 namespace syncer {
13 SyncManagerFactory::SyncManagerFactory(SyncManagerFactory::MANAGER_TYPE type)
14 : type_(type) {
17 SyncManagerFactory::~SyncManagerFactory() {
20 scoped_ptr<SyncManager> SyncManagerFactory::CreateSyncManager(
21 const std::string name) {
22 switch (type_) {
23 case NORMAL:
24 return scoped_ptr<SyncManager>(new SyncManagerImpl(name));
25 case BACKUP:
26 return scoped_ptr<SyncManager>(new SyncBackupManager());
27 case ROLLBACK:
28 return scoped_ptr<SyncManager>(new SyncRollbackManager());
29 default:
30 NOTREACHED();
31 return scoped_ptr<SyncManager>(new SyncManagerImpl(name));
35 } // namespace syncer