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

Side by Side Diff: chrome/browser/visitedlink_master.h

Issue 502005: Preload the visited link db on the file thread. (Closed)
Patch Set: comments Created 11 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
« no previous file with comments | « chrome/browser/profile.cc ('k') | chrome/browser/visitedlink_master.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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_VISITEDLINK_MASTER_H__ 5 #ifndef CHROME_BROWSER_VISITEDLINK_MASTER_H__
6 #define CHROME_BROWSER_VISITEDLINK_MASTER_H__ 6 #define CHROME_BROWSER_VISITEDLINK_MASTER_H__
7 7
8 #if defined(OS_WIN) 8 #if defined(OS_WIN)
9 #include <windows.h> 9 #include <windows.h>
10 #endif 10 #endif
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 // testing except when you want to test the rebuild process explicitly. 70 // testing except when you want to test the rebuild process explicitly.
71 VisitedLinkMaster(Listener* listener, 71 VisitedLinkMaster(Listener* listener,
72 HistoryService* history_service, 72 HistoryService* history_service,
73 bool suppress_rebuild, 73 bool suppress_rebuild,
74 const FilePath& filename, 74 const FilePath& filename,
75 int32 default_table_size); 75 int32 default_table_size);
76 virtual ~VisitedLinkMaster(); 76 virtual ~VisitedLinkMaster();
77 77
78 // Must be called immediately after object creation. Nothing else will work 78 // Must be called immediately after object creation. Nothing else will work
79 // until this is called. Returns true on success, false means that this 79 // until this is called. Returns true on success, false means that this
80 // object won't work. 80 // object won't work. You can also use InitFromFile() and InitFromScratch()
81 // if you need more control over loading the visited link information.
81 bool Init(); 82 bool Init();
82 83
84 // Try to load the table from the database file. If the file doesn't exist or
85 // is corrupt, this will return failure.
86 bool InitFromFile();
87
88 // Creates a new empty table, call if InitFromFile() fails. Normally, when
89 // |suppress_rebuild| is false, the table will be rebuilt from history,
90 // keeping us in sync.
91 bool InitFromScratch();
92
83 base::SharedMemory* shared_memory() { return shared_memory_; } 93 base::SharedMemory* shared_memory() { return shared_memory_; }
84 94
85 // Adds a URL to the table. 95 // Adds a URL to the table.
86 void AddURL(const GURL& url); 96 void AddURL(const GURL& url);
87 97
88 // Adds a set of URLs to the table. 98 // Adds a set of URLs to the table.
89 void AddURLs(const std::vector<GURL>& url); 99 void AddURLs(const std::vector<GURL>& url);
90 100
91 // Deletes the specified URLs from the table. 101 // Deletes the specified URLs from the table.
92 void DeleteURLs(const std::set<GURL>& urls); 102 void DeleteURLs(const std::set<GURL>& urls);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 // inserted fingerprint or null_hash_ on failure. 170 // inserted fingerprint or null_hash_ on failure.
161 Hash TryToAddURL(const GURL& url); 171 Hash TryToAddURL(const GURL& url);
162 172
163 // File I/O functions 173 // File I/O functions
164 // ------------------ 174 // ------------------
165 175
166 // Writes the entire table to disk, returning true on success. It will leave 176 // Writes the entire table to disk, returning true on success. It will leave
167 // the table file open and the handle to it in file_ 177 // the table file open and the handle to it in file_
168 bool WriteFullTable(); 178 bool WriteFullTable();
169 179
170 // Try to load the table from the database file. If the file doesn't exist or
171 // is corrupt, this will return failure.
172 bool InitFromFile();
173
174 // Reads the header of the link coloring database from disk. Assumes the 180 // Reads the header of the link coloring database from disk. Assumes the
175 // file pointer is at the beginning of the file and that there are no pending 181 // file pointer is at the beginning of the file and that there are no pending
176 // asynchronous I/O operations. 182 // asynchronous I/O operations.
177 // 183 //
178 // Returns true on success and places the size of the table in num_entries 184 // Returns true on success and places the size of the table in num_entries
179 // and the number of nonzero fingerprints in used_count. This will fail if 185 // and the number of nonzero fingerprints in used_count. This will fail if
180 // the version of the file is not the current version of the database. 186 // the version of the file is not the current version of the database.
181 bool ReadFileHeader(FILE* hfile, int32* num_entries, int32* used_count, 187 bool ReadFileHeader(FILE* hfile, int32* num_entries, int32* used_count,
182 uint8 salt[LINK_SALT_LENGTH]); 188 uint8 salt[LINK_SALT_LENGTH]);
183 189
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 // deleted_since_rebuild_ list, the caller must update this itself if there 221 // deleted_since_rebuild_ list, the caller must update this itself if there
216 // is an update pending. 222 // is an update pending.
217 void DeleteFingerprintsFromCurrentTable( 223 void DeleteFingerprintsFromCurrentTable(
218 const std::set<Fingerprint>& fingerprints); 224 const std::set<Fingerprint>& fingerprints);
219 225
220 // Removes the indicated fingerprint from the table. If the update_file flag 226 // Removes the indicated fingerprint from the table. If the update_file flag
221 // is set, the changes will also be written to disk. Returns true if the 227 // is set, the changes will also be written to disk. Returns true if the
222 // fingerprint was deleted, false if it was not in the table to delete. 228 // fingerprint was deleted, false if it was not in the table to delete.
223 bool DeleteFingerprint(Fingerprint fingerprint, bool update_file); 229 bool DeleteFingerprint(Fingerprint fingerprint, bool update_file);
224 230
225 // Creates a new empty table, call if InitFromFile() fails. Normally, when
226 // |suppress_rebuild| is false, the table will be rebuilt from history,
227 // keeping us in sync. When |suppress_rebuild| is true, the new table will be
228 // empty and we will not consult history. This is used when clearing the
229 // database and for unit tests.
230 bool InitFromScratch(bool suppress_rebuild);
231
232 // Allocates the Fingerprint structure and length. When init_to_empty is set, 231 // Allocates the Fingerprint structure and length. When init_to_empty is set,
233 // the table will be filled with 0s and used_items_ will be set to 0 as well. 232 // the table will be filled with 0s and used_items_ will be set to 0 as well.
234 // If the flag is not set, these things are untouched and it is the 233 // If the flag is not set, these things are untouched and it is the
235 // responsibility of the caller to fill them (like when we are reading from 234 // responsibility of the caller to fill them (like when we are reading from
236 // a file). 235 // a file).
237 bool CreateURLTable(int32 num_entries, bool init_to_empty); 236 bool CreateURLTable(int32 num_entries, bool init_to_empty);
238 237
239 // A wrapper for CreateURLTable, this will allocate a new table, initialized 238 // A wrapper for CreateURLTable, this will allocate a new table, initialized
240 // to empty. The caller is responsible for saving the shared memory pointer 239 // to empty. The caller is responsible for saving the shared memory pointer
241 // and handles before this call (they will be replaced with new ones) and 240 // and handles before this call (they will be replaced with new ones) and
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 int32 used_count = 0; 379 int32 used_count = 0;
381 for (int32 i = 0; i < table_length_; i++) { 380 for (int32 i = 0; i < table_length_; i++) {
382 if (hash_table_[i]) 381 if (hash_table_[i])
383 used_count++; 382 used_count++;
384 } 383 }
385 DCHECK_EQ(used_count, used_items_); 384 DCHECK_EQ(used_count, used_items_);
386 } 385 }
387 #endif 386 #endif
388 387
389 #endif // CHROME_BROWSER_VISITEDLINK_MASTER_H__ 388 #endif // CHROME_BROWSER_VISITEDLINK_MASTER_H__
OLDNEW
« no previous file with comments | « chrome/browser/profile.cc ('k') | chrome/browser/visitedlink_master.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698