12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_EVENT_ROUTER_FACTORY_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_EVENT_ROUTER_FACTORY_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/singleton.h" 9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/content/browser_context_keyed_service_factory.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Profile; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochnamespace file_manager { 14558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass EventRouter; 16558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass EventRouterFactory : public BrowserContextKeyedServiceFactory { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the EventRouter for |profile|, creating it if 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // it is not yet created. 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static EventRouter* GetForProfile(Profile* profile); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the EventRouterFactory instance. 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static EventRouterFactory* GetInstance(); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // BrowserContextKeyedBaseFactory overrides: 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual content::BrowserContext* GetBrowserContextToUse( 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) content::BrowserContext* context) const OVERRIDE; 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE; 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci friend struct DefaultSingletonTraits<EventRouterFactory>; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EventRouterFactory(); 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~EventRouterFactory(); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // BrowserContextKeyedServiceFactory: 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual KeyedService* BuildServiceInstanceFor( 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) content::BrowserContext* context) const OVERRIDE; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 44558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} // namespace file_manager 45558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_EVENT_ROUTER_FACTORY_H_ 47