Roll src/third_party/WebKit 96fb88b:6bbd108 (svn 201045:201047)
[chromium-blink-merge.git] / sync / internal_api / public / sync_manager_factory.h
bloba121c8bf1f720b16c13d4dfd6572dbfca39c33bf
1 // Copyright 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 #ifndef SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_FACTORY_H_
6 #define SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_FACTORY_H_
8 #include <string>
10 #include "base/memory/scoped_ptr.h"
11 #include "sync/base/sync_export.h"
13 namespace syncer {
15 class SyncManager;
17 // Helper class to allow dependency injection of the SyncManager.
18 class SYNC_EXPORT SyncManagerFactory {
19 public:
20 enum MANAGER_TYPE {
21 NORMAL, // Normal sync manager
22 BACKUP, // Backup sync manager
23 ROLLBACK, // Rollback sync manager
26 SyncManagerFactory(MANAGER_TYPE type);
27 virtual ~SyncManagerFactory();
29 virtual scoped_ptr<SyncManager> CreateSyncManager(std::string name);
31 private:
32 MANAGER_TYPE type_;
33 DISALLOW_COPY_AND_ASSIGN(SyncManagerFactory);
36 } // namespace syncer
38 #endif // SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_FACTORY_H_