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
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_
6#define CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_
7
8#include <map>
9#include <string>
10
11#include "base/time/time.h"
12#include "storage/common/quota/quota_types.h"
13#include "url/gurl.h"
14
15namespace base {
16class Value;
17}
18
19namespace quota_internals {
20
21// Represends global usage and quota information for specific type of storage.
22class GlobalStorageInfo {
23 public:
24  explicit GlobalStorageInfo(storage::StorageType type);
25  ~GlobalStorageInfo();
26
27  void set_usage(int64 usage) {
28    usage_ = usage;
29  }
30
31  void set_unlimited_usage(int64 unlimited_usage) {
32    unlimited_usage_ = unlimited_usage;
33  }
34
35  void set_quota(int64 quota) {
36    quota_ = quota;
37  }
38
39  // Create new Value for passing to WebUI page.  Caller is responsible for
40  // deleting the returned pointer.
41  base::Value* NewValue() const;
42 private:
43  storage::StorageType type_;
44
45  int64 usage_;
46  int64 unlimited_usage_;
47  int64 quota_;
48};
49
50// Represents per host usage and quota information for the storage.
51class PerHostStorageInfo {
52 public:
53  PerHostStorageInfo(const std::string& host, storage::StorageType type);
54  ~PerHostStorageInfo();
55
56  void set_usage(int64 usage) {
57    usage_ = usage;
58  }
59
60  void set_quota(int64 quota) {
61    quota_ = quota;
62  }
63
64  // Create new Value for passing to WebUI page.  Caller is responsible for
65  // deleting the returned pointer.
66  base::Value* NewValue() const;
67 private:
68  std::string host_;
69  storage::StorageType type_;
70
71  int64 usage_;
72  int64 quota_;
73};
74
75// Represendts per origin usage and access time information.
76class PerOriginStorageInfo {
77 public:
78  PerOriginStorageInfo(const GURL& origin, storage::StorageType type);
79  ~PerOriginStorageInfo();
80
81  void set_in_use(bool in_use) {
82    in_use_ = in_use ? 1 : 0;
83  }
84
85  void set_used_count(int used_count) {
86    used_count_ = used_count;
87  }
88
89  void set_last_access_time(base::Time last_access_time) {
90    last_access_time_ = last_access_time;
91  }
92
93  void set_last_modified_time(base::Time last_modified_time) {
94    last_modified_time_ = last_modified_time;
95  }
96
97  // Create new Value for passing to WebUI page.  Caller is responsible for
98  // deleting the returned pointer.
99  base::Value* NewValue() const;
100 private:
101  GURL origin_;
102  storage::StorageType type_;
103  std::string host_;
104
105  int in_use_;
106  int used_count_;
107  base::Time last_access_time_;
108  base::Time last_modified_time_;
109};
110}  // namespace quota_internals
111
112#endif  // CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_
113