| OLD | NEW |
| (Empty) |
| 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 #ifndef CHROME_BROWSER_SYNC_PROFILE_SYNC_COMPONENTS_FACTORY_IMPL_H__ | |
| 6 #define CHROME_BROWSER_SYNC_PROFILE_SYNC_COMPONENTS_FACTORY_IMPL_H__ | |
| 7 | |
| 8 #include <string> | |
| 9 | |
| 10 #include "base/basictypes.h" | |
| 11 #include "base/compiler_specific.h" | |
| 12 #include "base/memory/weak_ptr.h" | |
| 13 #include "components/sync_driver/sync_api_component_factory.h" | |
| 14 #include "sync/internal_api/public/base/model_type.h" | |
| 15 #include "url/gurl.h" | |
| 16 | |
| 17 class OAuth2TokenService; | |
| 18 class Profile; | |
| 19 | |
| 20 namespace base { | |
| 21 class CommandLine; | |
| 22 } | |
| 23 | |
| 24 namespace net { | |
| 25 class URLRequestContextGetter; | |
| 26 } | |
| 27 | |
| 28 class ProfileSyncComponentsFactoryImpl | |
| 29 : public sync_driver::SyncApiComponentFactory { | |
| 30 public: | |
| 31 // Constructs a ProfileSyncComponentsFactoryImpl. | |
| 32 // | |
| 33 // |sync_service_url| is the base URL of the sync server. | |
| 34 // | |
| 35 // |token_service| must outlive the ProfileSyncComponentsFactoryImpl. | |
| 36 // | |
| 37 // |url_request_context_getter| must outlive the | |
| 38 // ProfileSyncComponentsFactoryImpl. | |
| 39 ProfileSyncComponentsFactoryImpl( | |
| 40 Profile* profile, | |
| 41 base::CommandLine* command_line, | |
| 42 const GURL& sync_service_url, | |
| 43 OAuth2TokenService* token_service, | |
| 44 net::URLRequestContextGetter* url_request_context_getter); | |
| 45 ~ProfileSyncComponentsFactoryImpl() override; | |
| 46 | |
| 47 void RegisterDataTypes(sync_driver::SyncClient* sync_client) override; | |
| 48 | |
| 49 sync_driver::DataTypeManager* CreateDataTypeManager( | |
| 50 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& | |
| 51 debug_info_listener, | |
| 52 const sync_driver::DataTypeController::TypeMap* controllers, | |
| 53 const sync_driver::DataTypeEncryptionHandler* encryption_handler, | |
| 54 browser_sync::SyncBackendHost* backend, | |
| 55 sync_driver::DataTypeManagerObserver* observer) override; | |
| 56 | |
| 57 browser_sync::SyncBackendHost* CreateSyncBackendHost( | |
| 58 const std::string& name, | |
| 59 sync_driver::SyncClient* sync_client, | |
| 60 invalidation::InvalidationService* invalidator, | |
| 61 const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs, | |
| 62 const base::FilePath& sync_folder) override; | |
| 63 | |
| 64 scoped_ptr<sync_driver::LocalDeviceInfoProvider> | |
| 65 CreateLocalDeviceInfoProvider() override; | |
| 66 | |
| 67 scoped_ptr<syncer::AttachmentService> CreateAttachmentService( | |
| 68 scoped_ptr<syncer::AttachmentStoreForSync> attachment_store, | |
| 69 const syncer::UserShare& user_share, | |
| 70 const std::string& store_birthday, | |
| 71 syncer::ModelType model_type, | |
| 72 syncer::AttachmentService::Delegate* delegate) override; | |
| 73 | |
| 74 // Legacy datatypes that need to be converted to the SyncableService API. | |
| 75 sync_driver::SyncApiComponentFactory::SyncComponents | |
| 76 CreateBookmarkSyncComponents( | |
| 77 sync_driver::SyncService* sync_service, | |
| 78 sync_driver::DataTypeErrorHandler* error_handler) override; | |
| 79 sync_driver::SyncApiComponentFactory::SyncComponents | |
| 80 CreateTypedUrlSyncComponents( | |
| 81 sync_driver::SyncService* sync_service, | |
| 82 history::HistoryBackend* history_backend, | |
| 83 sync_driver::DataTypeErrorHandler* error_handler) override; | |
| 84 | |
| 85 private: | |
| 86 // Register data types which are enabled on desktop platforms only. | |
| 87 // |disabled_types| and |enabled_types| correspond only to those types | |
| 88 // being explicitly enabled/disabled by the command line. | |
| 89 void RegisterDesktopDataTypes(syncer::ModelTypeSet disabled_types, | |
| 90 syncer::ModelTypeSet enabled_types, | |
| 91 sync_driver::SyncClient* sync_client); | |
| 92 | |
| 93 // Register data types which are enabled on both desktop and mobile. | |
| 94 // |disabled_types| and |enabled_types| correspond only to those types | |
| 95 // being explicitly enabled/disabled by the command line. | |
| 96 void RegisterCommonDataTypes(syncer::ModelTypeSet disabled_types, | |
| 97 syncer::ModelTypeSet enabled_types, | |
| 98 sync_driver::SyncClient* sync_client); | |
| 99 | |
| 100 void DisableBrokenType(syncer::ModelType type, | |
| 101 const tracked_objects::Location& from_here, | |
| 102 const std::string& message); | |
| 103 | |
| 104 Profile* profile_; | |
| 105 base::CommandLine* command_line_; | |
| 106 | |
| 107 const GURL sync_service_url_; | |
| 108 OAuth2TokenService* const token_service_; | |
| 109 net::URLRequestContextGetter* const url_request_context_getter_; | |
| 110 | |
| 111 base::WeakPtrFactory<ProfileSyncComponentsFactoryImpl> weak_factory_; | |
| 112 | |
| 113 DISALLOW_COPY_AND_ASSIGN(ProfileSyncComponentsFactoryImpl); | |
| 114 }; | |
| 115 | |
| 116 #endif // CHROME_BROWSER_SYNC_PROFILE_SYNC_COMPONENTS_FACTORY_IMPL_H__ | |
| OLD | NEW |