autocomplete_classifier_factory.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1fa458e413c3e5b8d479e49258d060b7bb4567c57danno@chromium.org// Copyright (c) 2012 The Chromium Authors. All rights reserved.
243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// Use of this source code is governed by a BSD-style license that can be
343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// found in the LICENSE file.
443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_FACTORY_H_
643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_FACTORY_H_
743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#include "base/basictypes.h"
943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#include "base/memory/singleton.h"
1043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#include "chrome/browser/profiles/profile_keyed_service_factory.h"
1143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
1243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenclass AutocompleteClassifier;
1343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenclass Profile;
1443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
1543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// Singleton that owns all AutocompleteClassifiers and associates them with
1643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// Profiles.
1743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenclass AutocompleteClassifierFactory : public ProfileKeyedServiceFactory {
1843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen public:
1943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  // Returns the AutocompleteClassifier for |profile|.
2043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  static AutocompleteClassifier* GetForProfile(Profile* profile);
2143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
2243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  static AutocompleteClassifierFactory* GetInstance();
2343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
2443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  static ProfileKeyedService* BuildInstanceFor(
2543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen      content::BrowserContext* profile);
2643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
2743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen private:
2843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  friend struct DefaultSingletonTraits<AutocompleteClassifierFactory>;
2943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
3043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  AutocompleteClassifierFactory();
3168ac009f55a85e6891742d58914eaf717f667b26kasperl@chromium.org  virtual ~AutocompleteClassifierFactory();
32ea88ce93dcb41a9200ec8747ae7642a5db1f4ce7sgjesse@chromium.org
3343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  // ProfileKeyedServiceFactory:
3443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  virtual content::BrowserContext* GetBrowserContextToUse(
3571affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.org      content::BrowserContext* context) const OVERRIDE;
3671affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.org  virtual bool ServiceIsNULLWhileTesting() const OVERRIDE;
3743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen  virtual ProfileKeyedService* BuildServiceInstanceFor(
3843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen      content::BrowserContext* profile) const OVERRIDE;
3943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen
40ea88ce93dcb41a9200ec8747ae7642a5db1f4ce7sgjesse@chromium.org  DISALLOW_COPY_AND_ASSIGN(AutocompleteClassifierFactory);
4143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen};
421fd77d58ca66b2711f09cdea32c0c2d1a01b3ae5danno@chromium.org
431fd77d58ca66b2711f09cdea32c0c2d1a01b3ae5danno@chromium.org#endif  // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_FACTORY_H_
441fd77d58ca66b2711f09cdea32c0c2d1a01b3ae5danno@chromium.org