- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / quota_internals / quota_internals_types.h
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 "url/gurl.h"
13 #include "webkit/common/quota/quota_types.h"
14
15 namespace base {
16 class Value;
17 }
18
19 namespace quota_internals {
20
21 // Represends global usage and quota information for specific type of storage.
22 class GlobalStorageInfo {
23  public:
24   explicit GlobalStorageInfo(quota::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   quota::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.
51 class PerHostStorageInfo {
52  public:
53   PerHostStorageInfo(const std::string& host, quota::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   quota::StorageType type_;
70
71   int64 usage_;
72   int64 quota_;
73 };
74
75 // Represendts per origin usage and access time information.
76 class PerOriginStorageInfo {
77  public:
78   PerOriginStorageInfo(const GURL& origin, quota::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   quota::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 }  // quota_internals
111
112 #endif  // CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_