Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: webkit/quota/mock_storage_client.cc

Issue 8070001: Use base::Callback in Quota related code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/quota/mock_storage_client.h ('k') | webkit/quota/quota_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "webkit/quota/mock_storage_client.h" 5 #include "webkit/quota/mock_storage_client.h"
6 6
7 #include "base/atomic_sequence_num.h" 7 #include "base/atomic_sequence_num.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 : quota_manager_proxy_(quota_manager_proxy), 48 : quota_manager_proxy_(quota_manager_proxy),
49 id_(MockStorageClientIDSequencer::GetInstance()->NextMockID()), 49 id_(MockStorageClientIDSequencer::GetInstance()->NextMockID()),
50 mock_time_counter_(0), 50 mock_time_counter_(0),
51 runnable_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 51 runnable_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
52 for (size_t i = 0; i < mock_data_size; ++i) { 52 for (size_t i = 0; i < mock_data_size; ++i) {
53 origin_data_[make_pair(GURL(mock_data[i].origin), mock_data[i].type)] = 53 origin_data_[make_pair(GURL(mock_data[i].origin), mock_data[i].type)] =
54 mock_data[i].usage; 54 mock_data[i].usage;
55 } 55 }
56 } 56 }
57 57
58 MockStorageClient::~MockStorageClient() { 58 MockStorageClient::~MockStorageClient() {}
59 STLDeleteContainerPointers(usage_callbacks_.begin(), usage_callbacks_.end());
60 STLDeleteContainerPointers(
61 origins_callbacks_.begin(), origins_callbacks_.end());
62 STLDeleteContainerPointers(
63 deletion_callbacks_.begin(), deletion_callbacks_.end());
64 }
65 59
66 void MockStorageClient::AddOriginAndNotify( 60 void MockStorageClient::AddOriginAndNotify(
67 const GURL& origin_url, StorageType type, int64 size) { 61 const GURL& origin_url, StorageType type, int64 size) {
68 DCHECK(origin_data_.find(make_pair(origin_url, type)) == origin_data_.end()); 62 DCHECK(origin_data_.find(make_pair(origin_url, type)) == origin_data_.end());
69 DCHECK_GE(size, 0); 63 DCHECK_GE(size, 0);
70 origin_data_[make_pair(origin_url, type)] = size; 64 origin_data_[make_pair(origin_url, type)] = size;
71 quota_manager_proxy_->quota_manager()->NotifyStorageModifiedInternal( 65 quota_manager_proxy_->quota_manager()->NotifyStorageModifiedInternal(
72 id(), origin_url, type, size, IncrementMockTime()); 66 id(), origin_url, type, size, IncrementMockTime());
73 } 67 }
74 68
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 QuotaClient::ID MockStorageClient::id() const { 100 QuotaClient::ID MockStorageClient::id() const {
107 return id_; 101 return id_;
108 } 102 }
109 103
110 void MockStorageClient::OnQuotaManagerDestroyed() { 104 void MockStorageClient::OnQuotaManagerDestroyed() {
111 delete this; 105 delete this;
112 } 106 }
113 107
114 void MockStorageClient::GetOriginUsage(const GURL& origin_url, 108 void MockStorageClient::GetOriginUsage(const GURL& origin_url,
115 StorageType type, 109 StorageType type,
116 GetUsageCallback* callback) { 110 const GetUsageCallback& callback) {
117 usage_callbacks_.insert(callback);
118 base::MessageLoopProxy::current()->PostTask( 111 base::MessageLoopProxy::current()->PostTask(
119 FROM_HERE, runnable_factory_.NewRunnableMethod( 112 FROM_HERE, runnable_factory_.NewRunnableMethod(
120 &MockStorageClient::RunGetOriginUsage, 113 &MockStorageClient::RunGetOriginUsage,
121 origin_url, type, callback)); 114 origin_url, type, callback));
122 } 115 }
123 116
124 void MockStorageClient::GetOriginsForType( 117 void MockStorageClient::GetOriginsForType(
125 StorageType type, GetOriginsCallback* callback) { 118 StorageType type, const GetOriginsCallback& callback) {
126 origins_callbacks_.insert(callback);
127 base::MessageLoopProxy::current()->PostTask( 119 base::MessageLoopProxy::current()->PostTask(
128 FROM_HERE, runnable_factory_.NewRunnableMethod( 120 FROM_HERE, runnable_factory_.NewRunnableMethod(
129 &MockStorageClient::RunGetOriginsForType, 121 &MockStorageClient::RunGetOriginsForType,
130 type, callback)); 122 type, callback));
131 } 123 }
132 124
133 void MockStorageClient::GetOriginsForHost( 125 void MockStorageClient::GetOriginsForHost(
134 StorageType type, const std::string& host, 126 StorageType type, const std::string& host,
135 GetOriginsCallback* callback) { 127 const GetOriginsCallback& callback) {
136 origins_callbacks_.insert(callback);
137 base::MessageLoopProxy::current()->PostTask( 128 base::MessageLoopProxy::current()->PostTask(
138 FROM_HERE, runnable_factory_.NewRunnableMethod( 129 FROM_HERE, runnable_factory_.NewRunnableMethod(
139 &MockStorageClient::RunGetOriginsForHost, 130 &MockStorageClient::RunGetOriginsForHost,
140 type, host, callback)); 131 type, host, callback));
141 } 132 }
142 133
143 void MockStorageClient::DeleteOriginData( 134 void MockStorageClient::DeleteOriginData(
144 const GURL& origin, StorageType type, 135 const GURL& origin, StorageType type,
145 DeletionCallback* callback) { 136 const DeletionCallback& callback) {
146 deletion_callbacks_.insert(callback);
147 base::MessageLoopProxy::current()->PostTask( 137 base::MessageLoopProxy::current()->PostTask(
148 FROM_HERE, runnable_factory_.NewRunnableMethod( 138 FROM_HERE, runnable_factory_.NewRunnableMethod(
149 &MockStorageClient::RunDeleteOriginData, 139 &MockStorageClient::RunDeleteOriginData,
150 origin, type, callback)); 140 origin, type, callback));
151 } 141 }
152 142
153 void MockStorageClient::RunGetOriginUsage( 143 void MockStorageClient::RunGetOriginUsage(
154 const GURL& origin_url, StorageType type, GetUsageCallback* callback_ptr) { 144 const GURL& origin_url, StorageType type,
155 usage_callbacks_.erase(callback_ptr); 145 const GetUsageCallback& callback) {
156 scoped_ptr<GetUsageCallback> callback(callback_ptr);
157 OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type)); 146 OriginDataMap::iterator find = origin_data_.find(make_pair(origin_url, type));
158 if (find == origin_data_.end()) { 147 if (find == origin_data_.end()) {
159 callback->Run(0); 148 callback.Run(0);
160 } else { 149 } else {
161 callback->Run(find->second); 150 callback.Run(find->second);
162 } 151 }
163 } 152 }
164 153
165 void MockStorageClient::RunGetOriginsForType( 154 void MockStorageClient::RunGetOriginsForType(
166 StorageType type, GetOriginsCallback* callback_ptr) { 155 StorageType type, const GetOriginsCallback& callback) {
167 scoped_ptr<GetOriginsCallback> callback(callback_ptr);
168 origins_callbacks_.erase(callback_ptr);
169 std::set<GURL> origins; 156 std::set<GURL> origins;
170 for (OriginDataMap::iterator iter = origin_data_.begin(); 157 for (OriginDataMap::iterator iter = origin_data_.begin();
171 iter != origin_data_.end(); ++iter) { 158 iter != origin_data_.end(); ++iter) {
172 if (type == iter->first.second) 159 if (type == iter->first.second)
173 origins.insert(iter->first.first); 160 origins.insert(iter->first.first);
174 } 161 }
175 callback->Run(origins, type); 162 callback.Run(origins, type);
176 } 163 }
177 164
178 void MockStorageClient::RunGetOriginsForHost( 165 void MockStorageClient::RunGetOriginsForHost(
179 StorageType type, const std::string& host, 166 StorageType type, const std::string& host,
180 GetOriginsCallback* callback_ptr) { 167 const GetOriginsCallback& callback) {
181 scoped_ptr<GetOriginsCallback> callback(callback_ptr);
182 origins_callbacks_.erase(callback_ptr);
183 std::set<GURL> origins; 168 std::set<GURL> origins;
184 for (OriginDataMap::iterator iter = origin_data_.begin(); 169 for (OriginDataMap::iterator iter = origin_data_.begin();
185 iter != origin_data_.end(); ++iter) { 170 iter != origin_data_.end(); ++iter) {
186 std::string host_or_spec = net::GetHostOrSpecFromURL(iter->first.first); 171 std::string host_or_spec = net::GetHostOrSpecFromURL(iter->first.first);
187 if (type == iter->first.second && host == host_or_spec) 172 if (type == iter->first.second && host == host_or_spec)
188 origins.insert(iter->first.first); 173 origins.insert(iter->first.first);
189 } 174 }
190 callback->Run(origins, type); 175 callback.Run(origins, type);
191 } 176 }
192 177
193 void MockStorageClient::RunDeleteOriginData( 178 void MockStorageClient::RunDeleteOriginData(
194 const GURL& origin_url, 179 const GURL& origin_url,
195 StorageType type, 180 StorageType type,
196 DeletionCallback* callback_ptr) { 181 const DeletionCallback& callback) {
197 scoped_ptr<DeletionCallback> callback(callback_ptr);
198 ErrorOriginSet::iterator itr_error = 182 ErrorOriginSet::iterator itr_error =
199 error_origins_.find(make_pair(origin_url, type)); 183 error_origins_.find(make_pair(origin_url, type));
200 if (itr_error != error_origins_.end()) { 184 if (itr_error != error_origins_.end()) {
201 deletion_callbacks_.erase(callback_ptr); 185 callback.Run(kQuotaErrorInvalidModification);
202 callback->Run(kQuotaErrorInvalidModification);
203 return; 186 return;
204 } 187 }
205 188
206 OriginDataMap::iterator itr = 189 OriginDataMap::iterator itr =
207 origin_data_.find(make_pair(origin_url, type)); 190 origin_data_.find(make_pair(origin_url, type));
208 if (itr != origin_data_.end()) { 191 if (itr != origin_data_.end()) {
209 int64 delta = itr->second; 192 int64 delta = itr->second;
210 quota_manager_proxy_-> 193 quota_manager_proxy_->
211 NotifyStorageModified(id(), origin_url, type, -delta); 194 NotifyStorageModified(id(), origin_url, type, -delta);
212 origin_data_.erase(itr); 195 origin_data_.erase(itr);
213 } 196 }
214 197
215 deletion_callbacks_.erase(callback_ptr); 198 callback.Run(kQuotaStatusOk);
216 callback->Run(kQuotaStatusOk);
217 } 199 }
218 200
219 } // namespace quota 201 } // namespace quota
OLDNEW
« no previous file with comments | « webkit/quota/mock_storage_client.h ('k') | webkit/quota/quota_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698