OLD | NEW |
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 CHROME_BROWSER_VISITEDLINK_VISITEDLINK_MASTER_H_ | 5 #ifndef CHROME_BROWSER_VISITEDLINK_VISITEDLINK_MASTER_H_ |
6 #define CHROME_BROWSER_VISITEDLINK_VISITEDLINK_MASTER_H_ | 6 #define CHROME_BROWSER_VISITEDLINK_VISITEDLINK_MASTER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #if defined(OS_WIN) | 9 #if defined(OS_WIN) |
10 #include <windows.h> | 10 #include <windows.h> |
11 #endif | 11 #endif |
12 #include <set> | 12 #include <set> |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
| 15 #include "base/callback_forward.h" |
15 #include "base/file_path.h" | 16 #include "base/file_path.h" |
16 #include "base/gtest_prod_util.h" | 17 #include "base/gtest_prod_util.h" |
17 #include "base/memory/ref_counted.h" | 18 #include "base/memory/ref_counted.h" |
18 #include "base/shared_memory.h" | 19 #include "base/shared_memory.h" |
19 #include "chrome/browser/history/history.h" | 20 #include "chrome/browser/history/history.h" |
20 #include "chrome/common/visitedlink_common.h" | 21 #include "chrome/common/visitedlink_common.h" |
21 | 22 |
22 class GURL; | 23 class GURL; |
23 class Profile; | 24 class Profile; |
24 | 25 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 void DeleteAllURLs(); | 96 void DeleteAllURLs(); |
96 | 97 |
97 #if defined(UNIT_TEST) || !defined(NDEBUG) || defined(PERF_TEST) | 98 #if defined(UNIT_TEST) || !defined(NDEBUG) || defined(PERF_TEST) |
98 // This is a debugging function that can be called to double-check internal | 99 // This is a debugging function that can be called to double-check internal |
99 // data structures. It will assert if the check fails. | 100 // data structures. It will assert if the check fails. |
100 void DebugValidate(); | 101 void DebugValidate(); |
101 | 102 |
102 // Sets a task to execute when the next rebuild from history is complete. | 103 // Sets a task to execute when the next rebuild from history is complete. |
103 // This is used by unit tests to wait for the rebuild to complete before | 104 // This is used by unit tests to wait for the rebuild to complete before |
104 // they continue. The pointer will be owned by this object after the call. | 105 // they continue. The pointer will be owned by this object after the call. |
105 void set_rebuild_complete_task(Task* task) { | 106 void set_rebuild_complete_task(const base::Closure& task) { |
106 DCHECK(!rebuild_complete_task_.get()); | 107 DCHECK(rebuild_complete_task_.is_null()); |
107 rebuild_complete_task_.reset(task); | 108 rebuild_complete_task_ = task; |
108 } | 109 } |
109 | 110 |
110 // returns the number of items in the table for testing verification | 111 // returns the number of items in the table for testing verification |
111 int32 GetUsedCount() const { | 112 int32 GetUsedCount() const { |
112 return used_items_; | 113 return used_items_; |
113 } | 114 } |
114 | 115 |
115 // Call to cause the entire database file to be re-written from scratch | 116 // Call to cause the entire database file to be re-written from scratch |
116 // to disk. Used by the performance tester. | 117 // to disk. Used by the performance tester. |
117 bool RewriteFile() { | 118 bool RewriteFile() { |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 // Overridden database file name for testing | 353 // Overridden database file name for testing |
353 FilePath database_name_override_; | 354 FilePath database_name_override_; |
354 | 355 |
355 // When nonzero, overrides the table size for new databases for testing | 356 // When nonzero, overrides the table size for new databases for testing |
356 int32 table_size_override_; | 357 int32 table_size_override_; |
357 | 358 |
358 // When non-NULL, overrides the history service to use rather than as the | 359 // When non-NULL, overrides the history service to use rather than as the |
359 // BrowserProcess. This is provided for unit tests. | 360 // BrowserProcess. This is provided for unit tests. |
360 HistoryService* history_service_override_; | 361 HistoryService* history_service_override_; |
361 | 362 |
362 // When non-NULL, indicates the task that should be run after the next | 363 // When set, indicates the task that should be run after the next rebuild from |
363 // rebuild from history is complete. | 364 // history is complete. |
364 scoped_ptr<Task> rebuild_complete_task_; | 365 base::Closure rebuild_complete_task_; |
365 | 366 |
366 // Set to prevent us from attempting to rebuild the database from global | 367 // Set to prevent us from attempting to rebuild the database from global |
367 // history if we have an error opening the file. This is used for testing, | 368 // history if we have an error opening the file. This is used for testing, |
368 // will be false in production. | 369 // will be false in production. |
369 bool suppress_rebuild_; | 370 bool suppress_rebuild_; |
370 | 371 |
371 DISALLOW_COPY_AND_ASSIGN(VisitedLinkMaster); | 372 DISALLOW_COPY_AND_ASSIGN(VisitedLinkMaster); |
372 }; | 373 }; |
373 | 374 |
374 // NOTE: These methods are defined inline here, so we can share the compilation | 375 // NOTE: These methods are defined inline here, so we can share the compilation |
375 // of visitedlink_master.cc between the browser and the unit/perf tests. | 376 // of visitedlink_master.cc between the browser and the unit/perf tests. |
376 | 377 |
377 #if defined(UNIT_TEST) || defined(PERF_TEST) || !defined(NDEBUG) | 378 #if defined(UNIT_TEST) || defined(PERF_TEST) || !defined(NDEBUG) |
378 inline void VisitedLinkMaster::DebugValidate() { | 379 inline void VisitedLinkMaster::DebugValidate() { |
379 int32 used_count = 0; | 380 int32 used_count = 0; |
380 for (int32 i = 0; i < table_length_; i++) { | 381 for (int32 i = 0; i < table_length_; i++) { |
381 if (hash_table_[i]) | 382 if (hash_table_[i]) |
382 used_count++; | 383 used_count++; |
383 } | 384 } |
384 DCHECK_EQ(used_count, used_items_); | 385 DCHECK_EQ(used_count, used_items_); |
385 } | 386 } |
386 #endif | 387 #endif |
387 | 388 |
388 #endif // CHROME_BROWSER_VISITEDLINK_VISITEDLINK_MASTER_H_ | 389 #endif // CHROME_BROWSER_VISITEDLINK_VISITEDLINK_MASTER_H_ |
OLD | NEW |