1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_FACTORY_IMPL_H__
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_SYNC_PROFILE_SYNC_FACTORY_IMPL_H__
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
93345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include <string>
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h"
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/profile_sync_factory.h"
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass CommandLine;
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass Profile;
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ProfileSyncFactoryImpl : public ProfileSyncFactory {
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ProfileSyncFactoryImpl(Profile* profile, CommandLine* command_line);
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual ~ProfileSyncFactoryImpl() {}
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ProfileSyncFactory interface.
233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  virtual ProfileSyncService* CreateProfileSyncService(
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      const std::string& cros_user);
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual browser_sync::DataTypeManager* CreateDataTypeManager(
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::SyncBackendHost* backend,
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      const browser_sync::DataTypeController::TypeMap& controllers);
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  virtual SyncComponents CreateAppSyncComponents(
313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      ProfileSyncService* profile_sync_service,
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      browser_sync::UnrecoverableErrorHandler* error_handler);
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreateAutofillSyncComponents(
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      WebDatabase* web_database,
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      PersonalDataManager* personal_data,
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual SyncComponents CreateAutofillProfileSyncComponents(
4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      ProfileSyncService* profile_sync_service,
4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      WebDatabase* web_database,
4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      PersonalDataManager* personal_data,
4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      browser_sync::UnrecoverableErrorHandler* error_handler);
4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreateBookmarkSyncComponents(
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreateExtensionSyncComponents(
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreatePasswordSyncComponents(
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      PasswordStore* password_store,
57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreatePreferenceSyncComponents(
60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreateThemeSyncComponents(
64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual SyncComponents CreateTypedUrlSyncComponents(
68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      ProfileSyncService* profile_sync_service,
69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      history::HistoryBackend* history_backend,
70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      browser_sync::UnrecoverableErrorHandler* error_handler);
71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
723345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  virtual SyncComponents CreateSessionSyncComponents(
733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      ProfileSyncService* profile_sync_service,
743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      browser_sync::UnrecoverableErrorHandler* error_handler);
753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  Profile* profile_;
78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  CommandLine* command_line_;
79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DISALLOW_COPY_AND_ASSIGN(ProfileSyncFactoryImpl);
81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // CHROME_BROWSER_SYNC_PROFILE_SYNC_FACTORY_IMPL_H__
84