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 "base/basictypes.h" 6 #include "components/keyed_service/content/browser_context_keyed_service_factory.h" 7 8 #ifndef CHROME_BROWSER_CHROMEOS_FILE_MANAGER_VOLUME_MANAGER_FACTORY_H_ 9 #define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_VOLUME_MANAGER_FACTORY_H_ 10 11 template<typename T> struct DefaultSingletonTraits; 12 13 namespace content { 14 class BrowserContext; 15 } // namespace content 16 17 namespace file_manager { 18 19 class VolumeManager; 20 21 // Factory to create VolumeManager. 22 class VolumeManagerFactory : public BrowserContextKeyedServiceFactory { 23 public: 24 // Returns VolumeManager instance. 25 static VolumeManager* Get(content::BrowserContext* context); 26 27 static VolumeManagerFactory* GetInstance(); 28 29 protected: 30 // BrowserContextKeyedBaseFactory overrides: 31 virtual content::BrowserContext* GetBrowserContextToUse( 32 content::BrowserContext* context) const OVERRIDE; 33 virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE; 34 virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; 35 36 // BrowserContextKeyedServiceFactory overrides: 37 virtual KeyedService* BuildServiceInstanceFor( 38 content::BrowserContext* context) const OVERRIDE; 39 40 private: 41 // For Singleton. 42 friend struct DefaultSingletonTraits<VolumeManagerFactory>; 43 44 VolumeManagerFactory(); 45 virtual ~VolumeManagerFactory(); 46 47 DISALLOW_COPY_AND_ASSIGN(VolumeManagerFactory); 48 }; 49 50 } // namespace file_manager 51 52 #endif // CHROME_BROWSER_CHROMEOS_FILE_MANAGER_VOLUME_MANAGER_FACTORY_H_ 53