1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_HISTORY_CORE_BROWSER_PAGE_USAGE_DATA_H__
6#define COMPONENTS_HISTORY_CORE_BROWSER_PAGE_USAGE_DATA_H__
7
8#include "base/strings/string16.h"
9#include "components/history/core/browser/history_types.h"
10#include "url/gurl.h"
11
12class SkBitmap;
13
14/////////////////////////////////////////////////////////////////////////////
15//
16// PageUsageData
17//
18// A per domain usage data structure to compute and manage most visited
19// pages.
20//
21// See History::QueryPageUsageSince()
22//
23/////////////////////////////////////////////////////////////////////////////
24class PageUsageData {
25 public:
26  explicit PageUsageData(history::SegmentID id);
27
28  virtual ~PageUsageData();
29
30  // Return the url ID
31  history::SegmentID GetID() const {
32    return id_;
33  }
34
35  void SetURL(const GURL& url) {
36    url_ = url;
37  }
38
39  const GURL& GetURL() const {
40    return url_;
41  }
42
43  void SetTitle(const base::string16& s) {
44    title_ = s;
45  }
46
47  const base::string16& GetTitle() const {
48    return title_;
49  }
50
51  void SetScore(double v) {
52    score_ = v;
53  }
54
55  double GetScore() const {
56    return score_;
57  }
58
59  // Sort predicate to sort instances by score (high to low)
60  static bool Predicate(const PageUsageData* dud1, const PageUsageData* dud2);
61
62 private:
63  history::SegmentID id_;
64  GURL url_;
65  base::string16 title_;
66
67  double score_;
68};
69
70#endif  // COMPONENTS_HISTORY_CORE_BROWSER_PAGE_USAGE_DATA_H__
71