Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Side by Side Diff: base/i18n/string_search.h

Issue 18031015: base/i18n: Class for efficiently searching the same query over many texts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments (#5) Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | base/i18n/string_search.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 BASE_I18N_STRING_SEARCH_H_ 5 #ifndef BASE_I18N_STRING_SEARCH_H_
6 #define BASE_I18N_STRING_SEARCH_H_ 6 #define BASE_I18N_STRING_SEARCH_H_
7 7
8 #include "base/i18n/base_i18n_export.h" 8 #include "base/i18n/base_i18n_export.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 10
11 struct UStringSearch;
12
11 namespace base { 13 namespace base {
12 namespace i18n { 14 namespace i18n {
13 15
14 // Returns true if |in_this| contains |find_this|. If |match_index| or 16 // Returns true if |in_this| contains |find_this|. If |match_index| or
15 // |match_length| are non-NULL, they are assigned the start position and total 17 // |match_length| are non-NULL, they are assigned the start position and total
16 // length of the match. 18 // length of the match.
17 // 19 //
18 // Only differences between base letters are taken into consideration. Case and 20 // Only differences between base letters are taken into consideration. Case and
19 // accent differences are ignored. Please refer to 'primary level' in 21 // accent differences are ignored. Please refer to 'primary level' in
20 // http://userguide.icu-project.org/collation/concepts for additional details. 22 // http://userguide.icu-project.org/collation/concepts for additional details.
21 BASE_I18N_EXPORT 23 BASE_I18N_EXPORT
22 bool StringSearchIgnoringCaseAndAccents(const string16& find_this, 24 bool StringSearchIgnoringCaseAndAccents(const string16& find_this,
23 const string16& in_this, 25 const string16& in_this,
24 size_t* match_index, 26 size_t* match_index,
25 size_t* match_length); 27 size_t* match_length);
26 28
29 // This class is for speeding up multiple StringSearchIgnoringCaseAndAccents()
30 // with the same |find_this| argument. |find_this| is passed as the constructor
31 // argument, and precomputation for searching is done only at that timing.
32 class BASE_I18N_EXPORT FixedPatternStringSearchIgnoringCaseAndAccents {
33 public:
34 explicit FixedPatternStringSearchIgnoringCaseAndAccents(
35 const string16& find_this);
36 ~FixedPatternStringSearchIgnoringCaseAndAccents();
37
38 // Returns true if |in_this| contains |find_this|. If |match_index| or
39 // |match_length| are non-NULL, they are assigned the start position and total
40 // length of the match.
41 bool Search(const string16& in_this,
42 size_t* match_index,
43 size_t* match_length);
44
45 private:
46 string16 find_this_;
47 UStringSearch* search_;
48 };
49
27 } // namespace i18n 50 } // namespace i18n
28 } // namespace base 51 } // namespace base
29 52
30 #endif // BASE_I18N_STRING_SEARCH_H_ 53 #endif // BASE_I18N_STRING_SEARCH_H_
OLDNEW
« no previous file with comments | « no previous file | base/i18n/string_search.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698