| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef WEBKIT_QUOTA_USAGE_TRACKER_H_ | 5 #ifndef WEBKIT_QUOTA_USAGE_TRACKER_H_ |
| 6 #define WEBKIT_QUOTA_USAGE_TRACKER_H_ | 6 #define WEBKIT_QUOTA_USAGE_TRACKER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <list> | 9 #include <list> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 class ClientUsageTracker { | 80 class ClientUsageTracker { |
| 81 public: | 81 public: |
| 82 ClientUsageTracker(UsageTracker* tracker, | 82 ClientUsageTracker(UsageTracker* tracker, |
| 83 QuotaClient* client, | 83 QuotaClient* client, |
| 84 StorageType type, | 84 StorageType type, |
| 85 SpecialStoragePolicy* special_storage_policy); | 85 SpecialStoragePolicy* special_storage_policy); |
| 86 ~ClientUsageTracker(); | 86 ~ClientUsageTracker(); |
| 87 | 87 |
| 88 void GetGlobalUsage(GlobalUsageCallback* callback); | 88 void GetGlobalUsage(GlobalUsageCallback* callback); |
| 89 void GetHostUsage(const std::string& host, HostUsageCallback* callback); | 89 void GetHostUsage(const std::string& host, HostUsageCallback* callback); |
| 90 void DetermineOriginsToGetUsage(const std::set<GURL>& origins, | |
| 91 std::set<GURL>* origins_to_process); | |
| 92 void UpdateUsageCache(const GURL& origin, int64 delta); | 90 void UpdateUsageCache(const GURL& origin, int64 delta); |
| 93 | 91 void GetCachedOrigins(std::set<GURL>* origins) const; |
| 94 const std::set<GURL>& cached_origins() const { return cached_origins_; } | |
| 95 | 92 |
| 96 private: | 93 private: |
| 94 typedef std::set<std::string> HostSet; |
| 95 typedef std::map<GURL, int64> UsageMap; |
| 96 typedef std::map<std::string, UsageMap> HostUsageMap; |
| 97 |
| 97 class GatherUsageTaskBase; | 98 class GatherUsageTaskBase; |
| 98 class GatherGlobalUsageTask; | 99 class GatherGlobalUsageTask; |
| 99 class GatherHostUsageTask; | 100 class GatherHostUsageTask; |
| 100 | 101 |
| 101 void DidGetGlobalUsage(const std::map<GURL, int64>& origin_usage_map); | 102 // Methods used by our GatherUsage tasks, as a task makes progress |
| 102 void DidGetHostUsage(const std::string& host, | 103 // origins and hosts are added incrementally to the cache. |
| 103 const std::map<GURL, int64>& origin_usage_map); | 104 void AddCachedOrigin(const GURL& origin, int64 usage); |
| 105 void AddCachedHost(const std::string& host); |
| 106 void GatherGlobalUsageComplete(); |
| 107 void GatherHostUsageComplete(const std::string& host); |
| 108 |
| 109 int64 GetCachedHostUsage(const std::string& host); |
| 110 |
| 111 void NoopHostUsageCallback( |
| 112 const std::string& host, StorageType type, int64 usage); |
| 113 |
| 104 bool IsStorageUnlimited(const GURL& origin) const; | 114 bool IsStorageUnlimited(const GURL& origin) const; |
| 105 | 115 |
| 106 UsageTracker* tracker_; | 116 UsageTracker* tracker_; |
| 107 QuotaClient* client_; | 117 QuotaClient* client_; |
| 108 const StorageType type_; | 118 const StorageType type_; |
| 109 std::set<GURL> cached_origins_; | |
| 110 | 119 |
| 111 int64 global_usage_; | 120 int64 global_usage_; |
| 112 int64 global_unlimited_usage_; | 121 int64 global_unlimited_usage_; |
| 113 bool global_usage_retrieved_; | 122 bool global_usage_retrieved_; |
| 123 HostSet cached_hosts_; |
| 124 HostUsageMap cached_usage_; |
| 125 |
| 114 GatherGlobalUsageTask* global_usage_task_; | 126 GatherGlobalUsageTask* global_usage_task_; |
| 115 GlobalUsageCallbackQueue global_usage_callback_; | 127 GlobalUsageCallbackQueue global_usage_callback_; |
| 116 | |
| 117 std::map<std::string, int64> host_usage_map_; | |
| 118 std::map<std::string, GatherHostUsageTask*> host_usage_tasks_; | 128 std::map<std::string, GatherHostUsageTask*> host_usage_tasks_; |
| 119 HostUsageCallbackMap host_usage_callbacks_; | 129 HostUsageCallbackMap host_usage_callbacks_; |
| 120 | 130 |
| 121 scoped_refptr<SpecialStoragePolicy> special_storage_policy_; | 131 scoped_refptr<SpecialStoragePolicy> special_storage_policy_; |
| 122 | 132 |
| 123 DISALLOW_COPY_AND_ASSIGN(ClientUsageTracker); | 133 DISALLOW_COPY_AND_ASSIGN(ClientUsageTracker); |
| 124 }; | 134 }; |
| 125 | 135 |
| 126 } // namespace quota | 136 } // namespace quota |
| 127 | 137 |
| 128 #endif // WEBKIT_QUOTA_USAGE_TRACKER_H_ | 138 #endif // WEBKIT_QUOTA_USAGE_TRACKER_H_ |
| OLD | NEW |