autocomplete_classifier_factory.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_FACTORY_H_
6#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_FACTORY_H_
7
8#include "base/basictypes.h"
9#include "base/memory/singleton.h"
10#include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h"
11
12class AutocompleteClassifier;
13class Profile;
14
15// Singleton that owns all AutocompleteClassifiers and associates them with
16// Profiles.
17class AutocompleteClassifierFactory : public BrowserContextKeyedServiceFactory {
18 public:
19  // Returns the AutocompleteClassifier for |profile|.
20  static AutocompleteClassifier* GetForProfile(Profile* profile);
21
22  static AutocompleteClassifierFactory* GetInstance();
23
24  static BrowserContextKeyedService* BuildInstanceFor(
25      content::BrowserContext* profile);
26
27 private:
28  friend struct DefaultSingletonTraits<AutocompleteClassifierFactory>;
29
30  AutocompleteClassifierFactory();
31  virtual ~AutocompleteClassifierFactory();
32
33  // BrowserContextKeyedServiceFactory:
34  virtual content::BrowserContext* GetBrowserContextToUse(
35      content::BrowserContext* context) const OVERRIDE;
36  virtual bool ServiceIsNULLWhileTesting() const OVERRIDE;
37  virtual BrowserContextKeyedService* BuildServiceInstanceFor(
38      content::BrowserContext* profile) const OVERRIDE;
39
40  DISALLOW_COPY_AND_ASSIGN(AutocompleteClassifierFactory);
41};
42
43#endif  // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_FACTORY_H_
44