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

Side by Side Diff: chrome/browser/bookmarks/bookmark_index.h

Issue 3112027: Remove wstrings from bookmarks, part 11. (Closed)
Patch Set: Created 10 years, 4 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
« no previous file with comments | « no previous file | chrome/browser/bookmarks/bookmark_index.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) 2009 The Chromium Authors. All rights reserved. 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 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_BOOKMARKS_BOOKMARK_INDEX_H_ 5 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_INDEX_H_
6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_INDEX_H_ 6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_INDEX_H_
7 #pragma once 7 #pragma once
8 8
9 #include <list> 9 #include <list>
10 #include <map> 10 #include <map>
11 #include <set> 11 #include <set>
12 #include <string>
13 #include <vector> 12 #include <vector>
14 13
15 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/string16.h"
16 16
17 class BookmarkNode; 17 class BookmarkNode;
18 class Profile; 18 class Profile;
19 class QueryNode; 19 class QueryNode;
20 class QueryParser; 20 class QueryParser;
21 21
22 namespace bookmark_utils { 22 namespace bookmark_utils {
23 struct TitleMatch; 23 struct TitleMatch;
24 } 24 }
25 25
(...skipping 14 matching lines...) Expand all
40 explicit BookmarkIndex(Profile* profile) : profile_(profile) {} 40 explicit BookmarkIndex(Profile* profile) : profile_(profile) {}
41 41
42 // Invoked when a bookmark has been added to the model. 42 // Invoked when a bookmark has been added to the model.
43 void Add(const BookmarkNode* node); 43 void Add(const BookmarkNode* node);
44 44
45 // Invoked when a bookmark has been removed from the model. 45 // Invoked when a bookmark has been removed from the model.
46 void Remove(const BookmarkNode* node); 46 void Remove(const BookmarkNode* node);
47 47
48 // Returns up to |max_count| of bookmarks containing the text |query|. 48 // Returns up to |max_count| of bookmarks containing the text |query|.
49 void GetBookmarksWithTitlesMatching( 49 void GetBookmarksWithTitlesMatching(
50 const std::wstring& query, 50 const string16& query,
51 size_t max_count, 51 size_t max_count,
52 std::vector<bookmark_utils::TitleMatch>* results); 52 std::vector<bookmark_utils::TitleMatch>* results);
53 53
54 private: 54 private:
55 typedef std::set<const BookmarkNode*> NodeSet; 55 typedef std::set<const BookmarkNode*> NodeSet;
56 typedef std::map<std::wstring, NodeSet> Index; 56 typedef std::map<string16, NodeSet> Index;
57 57
58 // Used when finding the set of bookmarks that match a query. Each match 58 // Used when finding the set of bookmarks that match a query. Each match
59 // represents a set of terms (as an interator into the Index) matching the 59 // represents a set of terms (as an interator into the Index) matching the
60 // query as well as the set of nodes that contain those terms in their titles. 60 // query as well as the set of nodes that contain those terms in their titles.
61 struct Match { 61 struct Match {
62 // List of terms matching the query. 62 // List of terms matching the query.
63 std::list<Index::const_iterator> terms; 63 std::list<Index::const_iterator> terms;
64 64
65 // The set of nodes matching the terms. As an optimization this is empty 65 // The set of nodes matching the terms. As an optimization this is empty
66 // when we match only one term, and is filled in when we get more than one 66 // when we match only one term, and is filled in when we get more than one
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 109
110 // Add |node| to |results| if the node matches the query. 110 // Add |node| to |results| if the node matches the query.
111 void AddMatchToResults(const BookmarkNode* node, 111 void AddMatchToResults(const BookmarkNode* node,
112 QueryParser* parser, 112 QueryParser* parser,
113 const std::vector<QueryNode*>& query_nodes, 113 const std::vector<QueryNode*>& query_nodes,
114 std::vector<bookmark_utils::TitleMatch>* results); 114 std::vector<bookmark_utils::TitleMatch>* results);
115 115
116 // Populates |matches| for the specified term. If |first_term| is true, this 116 // Populates |matches| for the specified term. If |first_term| is true, this
117 // is the first term in the query. Returns true if there is at least one node 117 // is the first term in the query. Returns true if there is at least one node
118 // matching the term. 118 // matching the term.
119 bool GetBookmarksWithTitleMatchingTerm(const std::wstring& term, 119 bool GetBookmarksWithTitleMatchingTerm(const string16& term,
120 bool first_term, 120 bool first_term,
121 Matches* matches); 121 Matches* matches);
122 122
123 // Iterates over |matches| updating each Match's nodes to contain the 123 // Iterates over |matches| updating each Match's nodes to contain the
124 // intersection of the Match's current nodes and the nodes at |index_i|. 124 // intersection of the Match's current nodes and the nodes at |index_i|.
125 // If the intersection is empty, the Match is removed. 125 // If the intersection is empty, the Match is removed.
126 // 126 //
127 // This is invoked from GetBookmarksWithTitleMatchingTerm. 127 // This is invoked from GetBookmarksWithTitleMatchingTerm.
128 void CombineMatchesInPlace(const Index::const_iterator& index_i, 128 void CombineMatchesInPlace(const Index::const_iterator& index_i,
129 Matches* matches); 129 Matches* matches);
130 130
131 // Iterates over |current_matches| calculating the intersection between the 131 // Iterates over |current_matches| calculating the intersection between the
132 // Match's nodes and the nodes at |index_i|. If the intersection between the 132 // Match's nodes and the nodes at |index_i|. If the intersection between the
133 // two is non-empty, a new match is added to |result|. 133 // two is non-empty, a new match is added to |result|.
134 // 134 //
135 // This differs from CombineMatchesInPlace in that if the intersection is 135 // This differs from CombineMatchesInPlace in that if the intersection is
136 // non-empty the result is added to result, not combined in place. This 136 // non-empty the result is added to result, not combined in place. This
137 // variant is used for prefix matching. 137 // variant is used for prefix matching.
138 // 138 //
139 // This is invoked from GetBookmarksWithTitleMatchingTerm. 139 // This is invoked from GetBookmarksWithTitleMatchingTerm.
140 void CombineMatches(const Index::const_iterator& index_i, 140 void CombineMatches(const Index::const_iterator& index_i,
141 const Matches& current_matches, 141 const Matches& current_matches,
142 Matches* result); 142 Matches* result);
143 143
144 // Returns the set of query words from |query|. 144 // Returns the set of query words from |query|.
145 std::vector<std::wstring> ExtractQueryWords(const std::wstring& query); 145 std::vector<string16> ExtractQueryWords(const string16& query);
146 146
147 // Adds |node| to |index_|. 147 // Adds |node| to |index_|.
148 void RegisterNode(const std::wstring& term, const BookmarkNode* node); 148 void RegisterNode(const string16& term, const BookmarkNode* node);
149 149
150 // Removes |node| from |index_|. 150 // Removes |node| from |index_|.
151 void UnregisterNode(const std::wstring& term, const BookmarkNode* node); 151 void UnregisterNode(const string16& term, const BookmarkNode* node);
152 152
153 Index index_; 153 Index index_;
154 154
155 Profile* profile_; 155 Profile* profile_;
156 156
157 DISALLOW_COPY_AND_ASSIGN(BookmarkIndex); 157 DISALLOW_COPY_AND_ASSIGN(BookmarkIndex);
158 }; 158 };
159 159
160 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_INDEX_H_ 160 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_INDEX_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/bookmarks/bookmark_index.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698