autocomplete_classifier.h revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1// Copyright (c) 2010 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_H_ 6#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_H_ 7#pragma once 8 9#include <string> 10 11#include "base/basictypes.h" 12#include "base/scoped_ptr.h" 13 14class AutocompleteController; 15struct AutocompleteMatch; 16class GURL; 17class Profile; 18 19class AutocompleteClassifier { 20 public: 21 explicit AutocompleteClassifier(Profile* profile); 22 virtual ~AutocompleteClassifier(); 23 24 // Given some string |text| that the user wants to use for navigation, 25 // determines how it should be interpreted. |desired_tld| is the user's 26 // desired TLD, if any; see AutocompleteInput::desired_tld(). 27 // |allow_exact_keyword_match| should be true when treating the string as a 28 // potential keyword search is valid; see 29 // AutocompleteInput::allow_exact_keyword_match(). |match| should be a 30 // non-NULL outparam that will be set to the default match for this input, if 31 // any (for invalid input, there will be no default match, and |match| will be 32 // left unchanged). |alternate_nav_url| is a possibly-NULL outparam that, if 33 // non-NULL, will be set to the navigational URL (if any) in case of an 34 // accidental search; see comments on 35 // AutocompleteResult::alternate_nav_url_ in autocomplete.h. 36 void Classify(const std::wstring& text, 37 const std::wstring& desired_tld, 38 bool allow_exact_keyword_match, 39 AutocompleteMatch* match, 40 GURL* alternate_nav_url); 41 42 private: 43 scoped_ptr<AutocompleteController> controller_; 44 45 DISALLOW_IMPLICIT_CONSTRUCTORS(AutocompleteClassifier); 46}; 47 48#endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_H_ 49