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

Side by Side Diff: components/history/core/browser/url_database.h

Issue 339433007: Componentize URLDatabase (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 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
OLDNEW
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_HISTORY_URL_DATABASE_H_ 5 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_URL_DATABASE_H_
6 #define CHROME_BROWSER_HISTORY_URL_DATABASE_H_ 6 #define COMPONENTS_HISTORY_CORE_BROWSER_URL_DATABASE_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "chrome/browser/history/history_types.h"
10 #include "components/history/core/browser/keyword_id.h" 9 #include "components/history/core/browser/keyword_id.h"
10 #include "components/history/core/browser/url_row.h"
11 #include "components/query_parser/query_parser.h" 11 #include "components/query_parser/query_parser.h"
12 #include "sql/statement.h" 12 #include "sql/statement.h"
13 13
14 class GURL; 14 class GURL;
15 15
16 namespace sql { 16 namespace sql {
17 class Connection; 17 class Connection;
18 } 18 }
19 19
20 namespace history { 20 namespace history {
21 21
22 struct KeywordSearchTermRow;
23 struct KeywordSearchTermVisit;
22 class VisitDatabase; // For friend statement. 24 class VisitDatabase; // For friend statement.
23 25
24 // Encapsulates an SQL database that holds URL info. This is a subset of the 26 // Encapsulates an SQL database that holds URL info. This is a subset of the
25 // full history data. We split this class' functionality out from the larger 27 // full history data. We split this class' functionality out from the larger
26 // HistoryDatabase class to support maintaining separate databases of URLs with 28 // HistoryDatabase class to support maintaining separate databases of URLs with
27 // different capabilities (for example, the in-memory database). 29 // different capabilities (for example, the in-memory database).
28 // 30 //
29 // This is refcounted to support calling InvokeLater() with some of its methods 31 // This is refcounted to support calling InvokeLater() with some of its methods
30 // (necessary to maintain ordering of DB operations). 32 // (necessary to maintain ordering of DB operations).
31 class URLDatabase { 33 class URLDatabase {
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 // so that DISTINCT can be prepended to get distinct URLs. 298 // so that DISTINCT can be prepended to get distinct URLs.
297 // 299 //
298 // This is available BOTH as a macro and a static string (kURLRowFields). Use 300 // This is available BOTH as a macro and a static string (kURLRowFields). Use
299 // the macro if you want to put this in the middle of an otherwise constant 301 // the macro if you want to put this in the middle of an otherwise constant
300 // string, it will save time doing string appends. If you have to build a SQL 302 // string, it will save time doing string appends. If you have to build a SQL
301 // string dynamically anyway, use the constant, it will save space. 303 // string dynamically anyway, use the constant, it will save space.
302 #define HISTORY_URL_ROW_FIELDS \ 304 #define HISTORY_URL_ROW_FIELDS \
303 " urls.id, urls.url, urls.title, urls.visit_count, urls.typed_count, " \ 305 " urls.id, urls.url, urls.title, urls.visit_count, urls.typed_count, " \
304 "urls.last_visit_time, urls.hidden " 306 "urls.last_visit_time, urls.hidden "
305 307
308 // Constants which specify, when considered altogether, 'significant'
309 // history items. These are used to filter out insignificant items
310 // for consideration as autocomplete candidates.
311 extern const int kLowQualityMatchTypedLimit;
312 extern const int kLowQualityMatchVisitLimit;
313 extern const int kLowQualityMatchAgeLimitInDays;
314
315 // Returns the date threshold for considering an history item as significant.
316 base::Time AutocompleteAgeThreshold();
317
318 // Return true if |row| qualifies as an autocomplete candidate. If |time_cache|
319 // is_null() then this function determines a new time threshold each time it is
320 // called. Since getting system time can be costly (such as for cases where
321 // this function will be called in a loop over many history items), you can
322 // provide a non-null |time_cache| by simply initializing |time_cache| with
323 // AutocompleteAgeThreshold() (or any other desired time in the past).
324 bool RowQualifiesAsSignificant(const URLRow& row, const base::Time& threshold);
325
306 } // namespace history 326 } // namespace history
307 327
308 #endif // CHROME_BROWSER_HISTORY_URL_DATABASE_H_ 328 #endif // COMPONENTS_HISTORY_CORE_BROWSER_URL_DATABASE_H_
OLDNEW
« no previous file with comments | « components/history/core/browser/keyword_search_term.cc ('k') | components/history/core/browser/url_database.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698