Home | History | Annotate | Download | only in sync_file_system
      1 // Copyright 2013 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 "chrome/browser/sync_file_system/remote_file_sync_service.h"
      6 
      7 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h"
      8 #include "chrome/browser/sync_file_system/drive_backend_v1/drive_file_sync_service.h"
      9 
     10 namespace sync_file_system {
     11 
     12 scoped_ptr<RemoteFileSyncService>
     13 RemoteFileSyncService::CreateForBrowserContext(
     14     BackendVersion version,
     15     content::BrowserContext* context,
     16     TaskLogger* task_logger) {
     17   switch (version) {
     18     case V1:
     19       return DriveFileSyncService::Create(
     20           Profile::FromBrowserContext(context)).PassAs<RemoteFileSyncService>();
     21     case V2:
     22       return drive_backend::SyncEngine::CreateForBrowserContext(
     23           context, task_logger).PassAs<RemoteFileSyncService>();
     24   }
     25   NOTREACHED() << "Unknown version " << version;
     26   return scoped_ptr<RemoteFileSyncService>();
     27 }
     28 
     29 void RemoteFileSyncService::AppendDependsOnFactories(
     30     BackendVersion version,
     31     std::set<BrowserContextKeyedServiceFactory*>* factories) {
     32   switch (version) {
     33     case V1:
     34       DriveFileSyncService::AppendDependsOnFactories(factories);
     35       return;
     36     case V2:
     37       drive_backend::SyncEngine::AppendDependsOnFactories(factories);
     38       return;
     39   }
     40   NOTREACHED() << "Unknown version " << version;
     41 }
     42 
     43 }  // namespace sync_file_system
     44