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

Unified Diff: chrome/browser/history/history_types.cc

Issue 428253008: Revert of Partially move history_types.{cc,h} to //components/history (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/history/history_types.h ('k') | chrome/browser/history/history_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/history_types.cc
diff --git a/chrome/browser/history/history_types.cc b/chrome/browser/history/history_types.cc
index 97145ecbad8eaf3056e23c79ea0256f8aa6eb69f..97d860dde08b4da7f954e959d981daefd78c4491 100644
--- a/chrome/browser/history/history_types.cc
+++ b/chrome/browser/history/history_types.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/stl_util.h"
+#include "chrome/browser/history/page_usage_data.h"
namespace history {
@@ -37,6 +38,145 @@
VisitRow::~VisitRow() {
}
+// QueryResults ----------------------------------------------------------------
+
+QueryResults::QueryResults() : reached_beginning_(false) {
+}
+
+QueryResults::~QueryResults() {}
+
+const size_t* QueryResults::MatchesForURL(const GURL& url,
+ size_t* num_matches) const {
+ URLToResultIndices::const_iterator found = url_to_results_.find(url);
+ if (found == url_to_results_.end()) {
+ if (num_matches)
+ *num_matches = 0;
+ return NULL;
+ }
+
+ // All entries in the map should have at least one index, otherwise it
+ // shouldn't be in the map.
+ DCHECK(!found->second->empty());
+ if (num_matches)
+ *num_matches = found->second->size();
+ return &found->second->front();
+}
+
+void QueryResults::Swap(QueryResults* other) {
+ std::swap(first_time_searched_, other->first_time_searched_);
+ std::swap(reached_beginning_, other->reached_beginning_);
+ results_.swap(other->results_);
+ url_to_results_.swap(other->url_to_results_);
+}
+
+void QueryResults::AppendURLBySwapping(URLResult* result) {
+ URLResult* new_result = new URLResult;
+ new_result->SwapResult(result);
+
+ results_.push_back(new_result);
+ AddURLUsageAtIndex(new_result->url(), results_.size() - 1);
+}
+
+void QueryResults::DeleteURL(const GURL& url) {
+ // Delete all instances of this URL. We re-query each time since each
+ // mutation will cause the indices to change.
+ while (const size_t* match_indices = MatchesForURL(url, NULL))
+ DeleteRange(*match_indices, *match_indices);
+}
+
+void QueryResults::DeleteRange(size_t begin, size_t end) {
+ DCHECK(begin <= end && begin < size() && end < size());
+
+ // First delete the pointers in the given range and store all the URLs that
+ // were modified. We will delete references to these later.
+ std::set<GURL> urls_modified;
+ for (size_t i = begin; i <= end; i++) {
+ urls_modified.insert(results_[i]->url());
+ }
+
+ // Now just delete that range in the vector en masse (the STL ending is
+ // exclusive, while ours is inclusive, hence the +1).
+ results_.erase(results_.begin() + begin, results_.begin() + end + 1);
+
+ // Delete the indicies referencing the deleted entries.
+ for (std::set<GURL>::const_iterator url = urls_modified.begin();
+ url != urls_modified.end(); ++url) {
+ URLToResultIndices::iterator found = url_to_results_.find(*url);
+ if (found == url_to_results_.end()) {
+ NOTREACHED();
+ continue;
+ }
+
+ // Need a signed loop type since we do -- which may take us to -1.
+ for (int match = 0; match < static_cast<int>(found->second->size());
+ match++) {
+ if (found->second[match] >= begin && found->second[match] <= end) {
+ // Remove this referece from the list.
+ found->second->erase(found->second->begin() + match);
+ match--;
+ }
+ }
+
+ // Clear out an empty lists if we just made one.
+ if (found->second->empty())
+ url_to_results_.erase(found);
+ }
+
+ // Shift all other indices over to account for the removed ones.
+ AdjustResultMap(end + 1, std::numeric_limits<size_t>::max(),
+ -static_cast<ptrdiff_t>(end - begin + 1));
+}
+
+void QueryResults::AddURLUsageAtIndex(const GURL& url, size_t index) {
+ URLToResultIndices::iterator found = url_to_results_.find(url);
+ if (found != url_to_results_.end()) {
+ // The URL is already in the list, so we can just append the new index.
+ found->second->push_back(index);
+ return;
+ }
+
+ // Need to add a new entry for this URL.
+ base::StackVector<size_t, 4> new_list;
+ new_list->push_back(index);
+ url_to_results_[url] = new_list;
+}
+
+void QueryResults::AdjustResultMap(size_t begin, size_t end, ptrdiff_t delta) {
+ for (URLToResultIndices::iterator i = url_to_results_.begin();
+ i != url_to_results_.end(); ++i) {
+ for (size_t match = 0; match < i->second->size(); match++) {
+ size_t match_index = i->second[match];
+ if (match_index >= begin && match_index <= end)
+ i->second[match] += delta;
+ }
+ }
+}
+
+// QueryOptions ----------------------------------------------------------------
+
+QueryOptions::QueryOptions()
+ : max_count(0),
+ duplicate_policy(QueryOptions::REMOVE_ALL_DUPLICATES) {
+}
+
+void QueryOptions::SetRecentDayRange(int days_ago) {
+ end_time = base::Time::Now();
+ begin_time = end_time - base::TimeDelta::FromDays(days_ago);
+}
+
+int64 QueryOptions::EffectiveBeginTime() const {
+ return begin_time.ToInternalValue();
+}
+
+int64 QueryOptions::EffectiveEndTime() const {
+ return end_time.is_null() ?
+ std::numeric_limits<int64>::max() : end_time.ToInternalValue();
+}
+
+int QueryOptions::EffectiveMaxCount() const {
+ return max_count ? max_count : std::numeric_limits<int>::max();
+}
+
// QueryURLResult -------------------------------------------------------------
QueryURLResult::QueryURLResult() : success(false) {
@@ -44,6 +184,58 @@
QueryURLResult::~QueryURLResult() {
}
+
+// MostVisitedURL --------------------------------------------------------------
+
+MostVisitedURL::MostVisitedURL() {}
+
+MostVisitedURL::MostVisitedURL(const GURL& url,
+ const base::string16& title)
+ : url(url),
+ title(title) {
+}
+
+MostVisitedURL::MostVisitedURL(const GURL& url,
+ const base::string16& title,
+ const base::Time& last_forced_time)
+ : url(url),
+ title(title),
+ last_forced_time(last_forced_time) {
+}
+
+MostVisitedURL::~MostVisitedURL() {}
+
+// FilteredURL -----------------------------------------------------------------
+
+FilteredURL::FilteredURL() : score(0.0) {}
+
+FilteredURL::FilteredURL(const PageUsageData& page_data)
+ : url(page_data.GetURL()),
+ title(page_data.GetTitle()),
+ score(page_data.GetScore()) {
+}
+
+FilteredURL::~FilteredURL() {}
+
+// FilteredURL::ExtendedInfo ---------------------------------------------------
+
+FilteredURL::ExtendedInfo::ExtendedInfo()
+ : total_visits(0),
+ visits(0),
+ duration_opened(0) {
+}
+
+// Images ---------------------------------------------------------------------
+
+Images::Images() {}
+
+Images::~Images() {}
+
+// TopSitesDelta --------------------------------------------------------------
+
+TopSitesDelta::TopSitesDelta() {}
+
+TopSitesDelta::~TopSitesDelta() {}
// HistoryAddPageArgs ---------------------------------------------------------
@@ -77,8 +269,56 @@
HistoryAddPageArgs::~HistoryAddPageArgs() {}
+ThumbnailMigration::ThumbnailMigration() {}
+
+ThumbnailMigration::~ThumbnailMigration() {}
+
+MostVisitedThumbnails::MostVisitedThumbnails() {}
+
+MostVisitedThumbnails::~MostVisitedThumbnails() {}
+
+// IconMapping ----------------------------------------------------------------
+
+IconMapping::IconMapping()
+ : mapping_id(0), icon_id(0), icon_type(favicon_base::INVALID_ICON) {}
+
+IconMapping::~IconMapping() {}
+
+// FaviconBitmapIDSize ---------------------------------------------------------
+
+FaviconBitmapIDSize::FaviconBitmapIDSize()
+ : bitmap_id(0) {
+}
+
+FaviconBitmapIDSize::~FaviconBitmapIDSize() {
+}
+
+// FaviconBitmap --------------------------------------------------------------
+
+FaviconBitmap::FaviconBitmap()
+ : bitmap_id(0),
+ icon_id(0) {
+}
+
+FaviconBitmap::~FaviconBitmap() {
+}
+
// VisitDatabaseObserver -------------------------------------------------------
VisitDatabaseObserver::~VisitDatabaseObserver() {}
+ExpireHistoryArgs::ExpireHistoryArgs() {
+}
+
+ExpireHistoryArgs::~ExpireHistoryArgs() {
+}
+
+void ExpireHistoryArgs::SetTimeRangeForOneDay(base::Time time) {
+ begin_time = time.LocalMidnight();
+
+ // Due to DST, leap seconds, etc., the next day at midnight may be more than
+ // 24 hours away, so add 36 hours and round back down to midnight.
+ end_time = (begin_time + base::TimeDelta::FromHours(36)).LocalMidnight();
+}
+
} // namespace history
« no previous file with comments | « chrome/browser/history/history_types.h ('k') | chrome/browser/history/history_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698