1// Copyright (c) 2012 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_EXTENSIONS_API_DIAL_DIAL_API_FACTORY_H_
6#define CHROME_BROWSER_EXTENSIONS_API_DIAL_DIAL_API_FACTORY_H_
7
8#include "base/memory/singleton.h"
9#include "components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h"
10
11namespace extensions {
12
13class DialAPI;
14
15class DialAPIFactory : public RefcountedBrowserContextKeyedServiceFactory {
16 public:
17  static scoped_refptr<DialAPI> GetForBrowserContext(
18      content::BrowserContext* context);
19
20  static DialAPIFactory* GetInstance();
21
22 private:
23  friend struct DefaultSingletonTraits<DialAPIFactory>;
24
25  DialAPIFactory();
26  virtual ~DialAPIFactory();
27
28  // BrowserContextKeyedServiceFactory:
29  virtual scoped_refptr<RefcountedBrowserContextKeyedService>
30      BuildServiceInstanceFor(content::BrowserContext* profile) const OVERRIDE;
31  virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE;
32  virtual bool ServiceIsNULLWhileTesting() const OVERRIDE;
33
34  DISALLOW_COPY_AND_ASSIGN(DialAPIFactory);
35};
36
37}  // namespace extensions
38
39#endif  // CHROME_BROWSER_EXTENSIONS_API_DIAL_DIAL_API_FACTORY_H_
40