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_UI_APP_LIST_SEARCH_COMMON_WEBSERVICE_CACHE_FACTORY_H_ 6#define CHROME_BROWSER_UI_APP_LIST_SEARCH_COMMON_WEBSERVICE_CACHE_FACTORY_H_ 7 8#include "components/keyed_service/content/browser_context_keyed_service_factory.h" 9 10template<typename T> struct DefaultSingletonTraits; 11 12namespace content { 13class BrowserContext; 14} 15 16namespace app_list { 17 18class WebserviceCache; 19 20// Singleton that owns the WebserviceCaches and associates them with profiles; 21class WebserviceCacheFactory : public BrowserContextKeyedServiceFactory { 22 public: 23 // Returns singleton instance of WebserviceCacheFactory. 24 static WebserviceCacheFactory* GetInstance(); 25 26 // Returns the Webservice cache associated with |context|. 27 static WebserviceCache* GetForBrowserContext( 28 content::BrowserContext* context); 29 30 private: 31 friend struct DefaultSingletonTraits<WebserviceCacheFactory>; 32 33 WebserviceCacheFactory(); 34 virtual ~WebserviceCacheFactory(); 35 36 // BrowserContextKeyedServiceFactory overrides: 37 virtual KeyedService* BuildServiceInstanceFor( 38 content::BrowserContext* context) const OVERRIDE; 39 40 DISALLOW_COPY_AND_ASSIGN(WebserviceCacheFactory); 41}; 42 43} // namespace app_list 44 45#endif // CHROME_BROWSER_UI_APP_LIST_SEARCH_COMMON_WEBSERVICE_CACHE_FACTORY_H_ 46