platform_keys_service_factory.h revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2014 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_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_FACTORY_H_
6#define CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_FACTORY_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "base/macros.h"
11#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
12
13template <typename T>
14struct DefaultSingletonTraits;
15
16class Profile;
17
18namespace chromeos {
19
20class PlatformKeysService;
21
22// Factory to create PlatformKeysService.
23class PlatformKeysServiceFactory : public BrowserContextKeyedServiceFactory {
24 public:
25  static PlatformKeysService* GetForBrowserContext(
26      content::BrowserContext* context);
27
28  static PlatformKeysServiceFactory* GetInstance();
29
30 private:
31  friend struct DefaultSingletonTraits<PlatformKeysServiceFactory>;
32
33  PlatformKeysServiceFactory();
34  virtual ~PlatformKeysServiceFactory();
35
36  // BrowserContextKeyedServiceFactory:
37  virtual content::BrowserContext* GetBrowserContextToUse(
38      content::BrowserContext* context) const OVERRIDE;
39  virtual KeyedService* BuildServiceInstanceFor(
40      content::BrowserContext* context) const OVERRIDE;
41
42  DISALLOW_COPY_AND_ASSIGN(PlatformKeysServiceFactory);
43};
44
45}  // namespace chromeos
46
47#endif  // CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_PLATFORM_KEYS_SERVICE_FACTORY_H_
48