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