| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ | 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ |
| 6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ | 6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "chrome/browser/autocomplete/autocomplete_match.h" | 13 #include "chrome/browser/autocomplete/autocomplete_match.h" |
| 14 #include "components/metrics/proto/omnibox_event.pb.h" | 14 #include "components/metrics/proto/omnibox_event.pb.h" |
| 15 #include "url/gurl.h" | 15 #include "url/gurl.h" |
| 16 | 16 |
| 17 class AutocompleteInput; | 17 class AutocompleteInput; |
| 18 class AutocompleteProvider; | 18 class AutocompleteProvider; |
| 19 class TemplateURLService; | 19 class Profile; |
| 20 | 20 |
| 21 // All matches from all providers for a particular query. This also tracks | 21 // All matches from all providers for a particular query. This also tracks |
| 22 // what the default match should be if the user doesn't manually select another | 22 // what the default match should be if the user doesn't manually select another |
| 23 // match. | 23 // match. |
| 24 class AutocompleteResult { | 24 class AutocompleteResult { |
| 25 public: | 25 public: |
| 26 typedef ACMatches::const_iterator const_iterator; | 26 typedef ACMatches::const_iterator const_iterator; |
| 27 typedef ACMatches::iterator iterator; | 27 typedef ACMatches::iterator iterator; |
| 28 | 28 |
| 29 // The "Selection" struct is the information we need to select the same match | 29 // The "Selection" struct is the information we need to select the same match |
| (...skipping 30 matching lines...) Expand all Loading... |
| 60 // Max number of matches we'll show from the various providers. | 60 // Max number of matches we'll show from the various providers. |
| 61 static const size_t kMaxMatches; | 61 static const size_t kMaxMatches; |
| 62 | 62 |
| 63 AutocompleteResult(); | 63 AutocompleteResult(); |
| 64 ~AutocompleteResult(); | 64 ~AutocompleteResult(); |
| 65 | 65 |
| 66 // Copies matches from |old_matches| to provide a consistant result set. See | 66 // Copies matches from |old_matches| to provide a consistant result set. See |
| 67 // comments in code for specifics. | 67 // comments in code for specifics. |
| 68 void CopyOldMatches(const AutocompleteInput& input, | 68 void CopyOldMatches(const AutocompleteInput& input, |
| 69 const AutocompleteResult& old_matches, | 69 const AutocompleteResult& old_matches, |
| 70 TemplateURLService* template_url_service); | 70 Profile* profile); |
| 71 | 71 |
| 72 // Adds a new set of matches to the result set. Does not re-sort. | 72 // Adds a new set of matches to the result set. Does not re-sort. |
| 73 void AppendMatches(const ACMatches& matches); | 73 void AppendMatches(const ACMatches& matches); |
| 74 | 74 |
| 75 // Removes duplicates, puts the list in sorted order and culls to leave only | 75 // Removes duplicates, puts the list in sorted order and culls to leave only |
| 76 // the best kMaxMatches matches. Sets the default match to the best match | 76 // the best kMaxMatches matches. Sets the default match to the best match |
| 77 // and updates the alternate nav URL. | 77 // and updates the alternate nav URL. |
| 78 void SortAndCull(const AutocompleteInput& input, | 78 void SortAndCull(const AutocompleteInput& input, Profile* profile); |
| 79 TemplateURLService* template_url_service); | |
| 80 | 79 |
| 81 // Returns true if at least one match was copied from the last result. | 80 // Returns true if at least one match was copied from the last result. |
| 82 bool HasCopiedMatches() const; | 81 bool HasCopiedMatches() const; |
| 83 | 82 |
| 84 // Vector-style accessors/operators. | 83 // Vector-style accessors/operators. |
| 85 size_t size() const; | 84 size_t size() const; |
| 86 bool empty() const; | 85 bool empty() const; |
| 87 const_iterator begin() const; | 86 const_iterator begin() const; |
| 88 iterator begin(); | 87 iterator begin(); |
| 89 const_iterator end() const; | 88 const_iterator end() const; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 // user's local intranet contains site "foo", and the user types "foo", we | 195 // user's local intranet contains site "foo", and the user types "foo", we |
| 197 // default to searching for "foo" when the user may have meant to navigate | 196 // default to searching for "foo" when the user may have meant to navigate |
| 198 // there. In cases like this, the default match will point to the "search for | 197 // there. In cases like this, the default match will point to the "search for |
| 199 // 'foo'" result, and this will contain "http://foo/". | 198 // 'foo'" result, and this will contain "http://foo/". |
| 200 GURL alternate_nav_url_; | 199 GURL alternate_nav_url_; |
| 201 | 200 |
| 202 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult); | 201 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult); |
| 203 }; | 202 }; |
| 204 | 203 |
| 205 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ | 204 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_RESULT_H_ |
| OLD | NEW |