// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_FACTORY_IMPL_H__
#define CHROME_BROWSER_SYNC_PROFILE_SYNC_FACTORY_IMPL_H__
#pragma once
#include <string>
#include "base/basictypes.h"
#include "chrome/browser/sync/profile_sync_factory.h"
class CommandLine;
class Profile;
class ProfileSyncFactoryImpl : public ProfileSyncFactory {
public:
ProfileSyncFactoryImpl(Profile* profile, CommandLine* command_line);
virtual ~ProfileSyncFactoryImpl() {}
// ProfileSyncFactory interface.
virtual ProfileSyncService* CreateProfileSyncService(
const std::string& cros_user);
virtual browser_sync::DataTypeManager* CreateDataTypeManager(
browser_sync::SyncBackendHost* backend,
const browser_sync::DataTypeController::TypeMap& controllers);
virtual SyncComponents CreateAppSyncComponents(
ProfileSyncService* profile_sync_service,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateAutofillSyncComponents(
ProfileSyncService* profile_sync_service,
WebDatabase* web_database,
PersonalDataManager* personal_data,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateAutofillProfileSyncComponents(
ProfileSyncService* profile_sync_service,
WebDatabase* web_database,
PersonalDataManager* personal_data,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateBookmarkSyncComponents(
ProfileSyncService* profile_sync_service,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateExtensionSyncComponents(
ProfileSyncService* profile_sync_service,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreatePasswordSyncComponents(
ProfileSyncService* profile_sync_service,
PasswordStore* password_store,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreatePreferenceSyncComponents(
ProfileSyncService* profile_sync_service,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateThemeSyncComponents(
ProfileSyncService* profile_sync_service,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateTypedUrlSyncComponents(
ProfileSyncService* profile_sync_service,
history::HistoryBackend* history_backend,
browser_sync::UnrecoverableErrorHandler* error_handler);
virtual SyncComponents CreateSessionSyncComponents(
ProfileSyncService* profile_sync_service,
browser_sync::UnrecoverableErrorHandler* error_handler);
private:
Profile* profile_;
CommandLine* command_line_;
DISALLOW_COPY_AND_ASSIGN(ProfileSyncFactoryImpl);
};
#endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_FACTORY_IMPL_H__