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. 4 5#include "sync/internal_api/public/sync_manager_factory.h" 6 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" 10 11namespace syncer { 12 13SyncManagerFactory::SyncManagerFactory(SyncManagerFactory::MANAGER_TYPE type) 14 : type_(type) { 15} 16 17SyncManagerFactory::~SyncManagerFactory() { 18} 19 20scoped_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)); 32 } 33} 34 35} // namespace syncer 36