sync_file_system_service_factory.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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/browser_context_keyed_service/browser_context_keyed_service_factory.h" 12 13class Profile; 14 15namespace sync_file_system { 16 17class RemoteFileSyncService; 18class SyncFileSystemService; 19 20class SyncFileSystemServiceFactory : public BrowserContextKeyedServiceFactory { 21 public: 22 static SyncFileSystemService* GetForProfile(Profile* profile); 23 static SyncFileSystemService* FindForProfile(Profile* profile); 24 static SyncFileSystemServiceFactory* GetInstance(); 25 26 // This overrides the remote service for testing. 27 // For testing this must be called before GetForProfile is called. 28 // Otherwise a new DriveFileSyncService is created for the new service. 29 // Since we use scoped_ptr it's one-off and the instance is passed 30 // to the newly created SyncFileSystemService. 31 void set_mock_remote_file_service( 32 scoped_ptr<RemoteFileSyncService> mock_remote_service); 33 34 private: 35 friend struct DefaultSingletonTraits<SyncFileSystemServiceFactory>; 36 SyncFileSystemServiceFactory(); 37 virtual ~SyncFileSystemServiceFactory(); 38 39 // BrowserContextKeyedServiceFactory overrides. 40 virtual BrowserContextKeyedService* BuildServiceInstanceFor( 41 content::BrowserContext* context) const OVERRIDE; 42 43 mutable scoped_ptr<RemoteFileSyncService> mock_remote_file_service_; 44}; 45 46} // namespace sync_file_system 47 48#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_FILE_SYSTEM_SERVICE_FACTORY_H_ 49