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 #ifndef CHROME_BROWSER_DRIVE_DRIVE_NOTIFICATION_MANAGER_FACTORY_H_ 6 #define CHROME_BROWSER_DRIVE_DRIVE_NOTIFICATION_MANAGER_FACTORY_H_ 7 8 #include "base/memory/singleton.h" 9 #include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h" 10 11 namespace content { 12 class BrowserContext; 13 } 14 15 namespace drive { 16 17 class DriveNotificationManager; 18 19 // Singleton that owns all DriveNotificationManager and associates them with 20 // browser contexts. 21 class DriveNotificationManagerFactory 22 : public BrowserContextKeyedServiceFactory { 23 public: 24 static DriveNotificationManager* GetForBrowserContext( 25 content::BrowserContext* context); 26 27 static DriveNotificationManagerFactory* GetInstance(); 28 29 private: 30 friend struct DefaultSingletonTraits<DriveNotificationManagerFactory>; 31 32 DriveNotificationManagerFactory(); 33 virtual ~DriveNotificationManagerFactory(); 34 35 // BrowserContextKeyedServiceFactory implementation. 36 virtual BrowserContextKeyedService* BuildServiceInstanceFor( 37 content::BrowserContext* context) const OVERRIDE; 38 }; 39 40 } // namespace drive 41 42 #endif // CHROME_BROWSER_DRIVE_DRIVE_NOTIFICATION_MANAGER_FACTORY_H_ 43