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

Side by Side Diff: chrome/browser/history/visitsegment_database.h

Issue 111633003: Removes some dead database code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: leave idle comment Created 7 years 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_VISITSEGMENT_DATABASE_H_ 5 #ifndef CHROME_BROWSER_HISTORY_VISITSEGMENT_DATABASE_H_
6 #define CHROME_BROWSER_HISTORY_VISITSEGMENT_DATABASE_H_ 6 #define CHROME_BROWSER_HISTORY_VISITSEGMENT_DATABASE_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "chrome/browser/history/history_types.h" 9 #include "chrome/browser/history/history_types.h"
10 10
11 class PageUsageData; 11 class PageUsageData;
12 12
13 namespace sql { 13 namespace sql {
14 class Connection; 14 class Connection;
15 class Statement;
16 } 15 }
17 16
18 namespace history { 17 namespace history {
19 18
20 // Tracks pages used for the most visited view. 19 // Tracks pages used for the most visited view.
21 class VisitSegmentDatabase { 20 class VisitSegmentDatabase {
22 public: 21 public:
23 // Must call InitSegmentTables before using any other part of this class. 22 // Must call InitSegmentTables before using any other part of this class.
24 VisitSegmentDatabase(); 23 VisitSegmentDatabase();
25 virtual ~VisitSegmentDatabase(); 24 virtual ~VisitSegmentDatabase();
26 25
27 // Compute a segment name given a URL. The segment name is currently the 26 // Compute a segment name given a URL. The segment name is currently the
28 // source url spec less some information such as query strings. 27 // source url spec less some information such as query strings.
29 static std::string ComputeSegmentName(const GURL& url); 28 static std::string ComputeSegmentName(const GURL& url);
30 29
31 // The segment tables use the time as a key for visit count and duration. This
32 // returns the appropriate time.
33 static base::Time SegmentTime(base::Time time);
34
35 // Returns the ID of the segment with the corresponding name, or 0 if there 30 // Returns the ID of the segment with the corresponding name, or 0 if there
36 // is no segment with that name. 31 // is no segment with that name.
37 SegmentID GetSegmentNamed(const std::string& segment_name); 32 SegmentID GetSegmentNamed(const std::string& segment_name);
38 33
39 // Update the segment identified by |out_segment_id| with the provided URL ID. 34 // Update the segment identified by |out_segment_id| with the provided URL ID.
40 // The URL identifies the page that will now represent the segment. If url_id 35 // The URL identifies the page that will now represent the segment. If url_id
41 // is non zero, it is assumed to be the row id of |url|. 36 // is non zero, it is assumed to be the row id of |url|.
42 bool UpdateSegmentRepresentationURL(SegmentID segment_id, 37 bool UpdateSegmentRepresentationURL(SegmentID segment_id,
43 URLID url_id); 38 URLID url_id);
44 39
(...skipping 21 matching lines...) Expand all
66 // stamp. 61 // stamp.
67 bool DeleteSegmentData(base::Time older_than); 62 bool DeleteSegmentData(base::Time older_than);
68 63
69 // Change the presentation id for the segment identified by |segment_id| 64 // Change the presentation id for the segment identified by |segment_id|
70 bool SetSegmentPresentationIndex(SegmentID segment_id, int index); 65 bool SetSegmentPresentationIndex(SegmentID segment_id, int index);
71 66
72 // Delete the segment currently using the provided url for representation. 67 // Delete the segment currently using the provided url for representation.
73 // This will also delete any associated segment usage data. 68 // This will also delete any associated segment usage data.
74 bool DeleteSegmentForURL(URLID url_id); 69 bool DeleteSegmentForURL(URLID url_id);
75 70
76 // Creates a new SegmentDurationID for the SegmentID and Time pair. The
77 // duration is set to |delta|.
78 SegmentDurationID CreateSegmentDuration(SegmentID segment_id,
79 base::Time time,
80 base::TimeDelta delta);
81
82 // Sets the duration of the |duration_id| to |time_delta|.
83 bool SetSegmentDuration(SegmentDurationID duration_id,
84 base::TimeDelta time_delta);
85
86 // Gets the SegmentDurationID of the |segment_id| and |time| pair. Returns
87 // true on success and sets |duration_id| and |time_delta| appropriately.
88 bool GetSegmentDuration(SegmentID segment_id,
89 base::Time time,
90 SegmentDurationID* duration_id,
91 base::TimeDelta* time_delta);
92
93 // Queries segments by duration.
94 void QuerySegmentDuration(base::Time from_time,
95 int max_result_count,
96 std::vector<PageUsageData*>* result);
97
98 protected: 71 protected:
99 // Returns the database for the functions in this interface. 72 // Returns the database for the functions in this interface.
100 virtual sql::Connection& GetDB() = 0; 73 virtual sql::Connection& GetDB() = 0;
101 74
102 // Creates the tables used by this class if necessary. Returns true on 75 // Creates the tables used by this class if necessary. Returns true on
103 // success. 76 // success.
104 bool InitSegmentTables(); 77 bool InitSegmentTables();
105 78
106 // Deletes all the segment tables, returning true on success. 79 // Deletes all the segment tables, returning true on success.
107 bool DropSegmentTables(); 80 bool DropSegmentTables();
108 81
109 // Removes the 'pres_index' column from the segments table and the 82 // Removes the 'pres_index' column from the segments table and the
110 // presentation table is removed entirely. 83 // presentation table is removed entirely.
111 bool MigratePresentationIndex(); 84 bool MigratePresentationIndex();
112 85
113 private: 86 private:
114 enum QueryType {
115 QUERY_VISIT_COUNT,
116 QUERY_DURATION,
117 };
118
119 // Used by both QuerySegment fucntions.
120 void QuerySegmentsCommon(sql::Statement* statement,
121 base::Time from_time,
122 int max_result_count,
123 QueryType query_type,
124 std::vector<PageUsageData*>* result);
125
126 // Was the |segment_duration| table created?
127 const bool has_duration_table_;
128
129 DISALLOW_COPY_AND_ASSIGN(VisitSegmentDatabase); 87 DISALLOW_COPY_AND_ASSIGN(VisitSegmentDatabase);
130 }; 88 };
131 89
132 } // namespace history 90 } // namespace history
133 91
134 #endif // CHROME_BROWSER_HISTORY_VISITSEGMENT_DATABASE_H_ 92 #endif // CHROME_BROWSER_HISTORY_VISITSEGMENT_DATABASE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698