1// Copyright (c) 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#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_SERVICE_FACTORY_H_ 6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_SERVICE_FACTORY_H_ 7 8#include "base/basictypes.h" 9#include "base/memory/scoped_ptr.h" 10#include "base/memory/singleton.h" 11#include "components/keyed_service/content/browser_context_keyed_service_factory.h" 12 13class Profile; 14 15namespace sync_file_system { 16 17class LocalFileSyncService; 18class RemoteFileSyncService; 19class SyncFileSystemService; 20 21class SyncFileSystemServiceFactory : public BrowserContextKeyedServiceFactory { 22 public: 23 static SyncFileSystemService* GetForProfile(Profile* profile); 24 static SyncFileSystemService* FindForProfile(Profile* profile); 25 static SyncFileSystemServiceFactory* GetInstance(); 26 27 // This overrides the local/remote service for testing. 28 // For testing this must be called before GetForProfile is called. 29 // Otherwise a new DriveFileSyncService is created for the new service. 30 // Since we use scoped_ptr it's one-off and the instance is passed 31 // to the newly created SyncFileSystemService. 32 void set_mock_local_file_service( 33 scoped_ptr<LocalFileSyncService> mock_local_service); 34 void set_mock_remote_file_service( 35 scoped_ptr<RemoteFileSyncService> mock_remote_service); 36 37 private: 38 friend struct DefaultSingletonTraits<SyncFileSystemServiceFactory>; 39 SyncFileSystemServiceFactory(); 40 virtual ~SyncFileSystemServiceFactory(); 41 42 // BrowserContextKeyedServiceFactory overrides. 43 virtual KeyedService* BuildServiceInstanceFor( 44 content::BrowserContext* context) const OVERRIDE; 45 46 mutable scoped_ptr<LocalFileSyncService> mock_local_file_service_; 47 mutable scoped_ptr<RemoteFileSyncService> mock_remote_file_service_; 48}; 49 50} // namespace sync_file_system 51 52#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_SERVICE_FACTORY_H_ 53