15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_ 690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <map> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h" 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h" 13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "webkit/common/quota/quota_types.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Value; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace quota_internals { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Represends global usage and quota information for specific type of storage. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GlobalStorageInfo { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit GlobalStorageInfo(quota::StorageType type); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~GlobalStorageInfo(); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_usage(int64 usage) { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) usage_ = usage; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_unlimited_usage(int64 unlimited_usage) { 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unlimited_usage_ = unlimited_usage; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_quota(int64 quota) { 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) quota_ = quota; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Create new Value for passing to WebUI page. Caller is responsible for 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // deleting the returned pointer. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Value* NewValue() const; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) quota::StorageType type_; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 usage_; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 unlimited_usage_; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 quota_; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Represents per host usage and quota information for the storage. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PerHostStorageInfo { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PerHostStorageInfo(const std::string& host, quota::StorageType type); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~PerHostStorageInfo(); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_usage(int64 usage) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) usage_ = usage; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_quota(int64 quota) { 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) quota_ = quota; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Create new Value for passing to WebUI page. Caller is responsible for 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // deleting the returned pointer. 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Value* NewValue() const; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string host_; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) quota::StorageType type_; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 usage_; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 quota_; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Represendts per origin usage and access time information. 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PerOriginStorageInfo { 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PerOriginStorageInfo(const GURL& origin, quota::StorageType type); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~PerOriginStorageInfo(); 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_in_use(bool in_use) { 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) in_use_ = in_use ? 1 : 0; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_used_count(int used_count) { 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) used_count_ = used_count; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_last_access_time(base::Time last_access_time) { 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) last_access_time_ = last_access_time; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_last_modified_time(base::Time last_modified_time) { 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) last_modified_time_ = last_modified_time; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Create new Value for passing to WebUI page. Caller is responsible for 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // deleting the returned pointer. 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Value* NewValue() const; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL origin_; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) quota::StorageType type_; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string host_; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int in_use_; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int used_count_; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Time last_access_time_; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Time last_modified_time_; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // quota_internals 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif // CHROME_BROWSER_UI_WEBUI_QUOTA_INTERNALS_QUOTA_INTERNALS_TYPES_H_ 113