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

Side by Side Diff: webkit/plugins/ppapi/quota_file_io.cc

Issue 8315012: base::Bind: Convert FileUtilProxy::GetFileInfoCallback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pipelining. 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
« base/file_util_proxy.h ('K') | « webkit/plugins/ppapi/quota_file_io.h ('k') | no next file » | 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/plugins/ppapi/quota_file_io.h" 5 #include "webkit/plugins/ppapi/quota_file_io.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/scoped_callback_factory.h"
11 #include "base/message_loop_proxy.h"
10 #include "base/stl_util.h" 12 #include "base/stl_util.h"
11 #include "base/message_loop_proxy.h"
12 #include "base/task.h" 13 #include "base/task.h"
13 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" 14 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
14 #include "webkit/plugins/ppapi/resource_helper.h" 15 #include "webkit/plugins/ppapi/resource_helper.h"
15 #include "webkit/plugins/ppapi/resource_tracker.h" 16 #include "webkit/plugins/ppapi/resource_tracker.h"
16 17
17 using base::PlatformFile; 18 using base::PlatformFile;
18 using base::PlatformFileError; 19 using base::PlatformFileError;
19 using quota::StorageType; 20 using quota::StorageType;
20 21
21 namespace webkit { 22 namespace webkit {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 : pp_instance_(instance), 218 : pp_instance_(instance),
218 file_(file), 219 file_(file),
219 file_url_(file_url), 220 file_url_(file_url),
220 storage_type_(PPFileSystemTypeToQuotaStorageType(type)), 221 storage_type_(PPFileSystemTypeToQuotaStorageType(type)),
221 cached_file_size_(0), 222 cached_file_size_(0),
222 cached_available_space_(0), 223 cached_available_space_(0),
223 outstanding_quota_queries_(0), 224 outstanding_quota_queries_(0),
224 outstanding_errors_(0), 225 outstanding_errors_(0),
225 max_written_offset_(0), 226 max_written_offset_(0),
226 inflight_operations_(0), 227 inflight_operations_(0),
227 callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 228 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
228 weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
229 DCHECK_NE(base::kInvalidPlatformFileValue, file_); 229 DCHECK_NE(base::kInvalidPlatformFileValue, file_);
230 DCHECK_NE(quota::kStorageTypeUnknown, storage_type_); 230 DCHECK_NE(quota::kStorageTypeUnknown, storage_type_);
231 } 231 }
232 232
233 QuotaFileIO::~QuotaFileIO() { 233 QuotaFileIO::~QuotaFileIO() {
234 // Note that this doesn't dispatch pending callbacks. 234 // Note that this doesn't dispatch pending callbacks.
235 STLDeleteContainerPointers(pending_operations_.begin(), 235 STLDeleteContainerPointers(pending_operations_.begin(),
236 pending_operations_.end()); 236 pending_operations_.end());
237 STLDeleteContainerPointers(pending_callbacks_.begin(), 237 STLDeleteContainerPointers(pending_callbacks_.begin(),
238 pending_callbacks_.end()); 238 pending_callbacks_.end());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 outstanding_errors_ = 0; 287 outstanding_errors_ = 0;
288 288
289 PluginDelegate* plugin_delegate = GetPluginDelegate(); 289 PluginDelegate* plugin_delegate = GetPluginDelegate();
290 if (!plugin_delegate) 290 if (!plugin_delegate)
291 return false; 291 return false;
292 292
293 // Query the file size. 293 // Query the file size.
294 ++outstanding_quota_queries_; 294 ++outstanding_quota_queries_;
295 if (!base::FileUtilProxy::GetFileInfoFromPlatformFile( 295 if (!base::FileUtilProxy::GetFileInfoFromPlatformFile(
296 plugin_delegate->GetFileThreadMessageLoopProxy(), file_, 296 plugin_delegate->GetFileThreadMessageLoopProxy(), file_,
297 callback_factory_.NewCallback( 297 base::Bind(&QuotaFileIO::DidQueryInfoForQuota,
298 &QuotaFileIO::DidQueryInfoForQuota))) { 298 weak_factory_.GetWeakPtr()))) {
299 // This makes the call fail synchronously; we do not fire the callback 299 // This makes the call fail synchronously; we do not fire the callback
300 // here but just delete the operation and return false. 300 // here but just delete the operation and return false.
301 return false; 301 return false;
302 } 302 }
303 303
304 // Query the current available space. 304 // Query the current available space.
305 ++outstanding_quota_queries_; 305 ++outstanding_quota_queries_;
306 plugin_delegate->QueryAvailableSpace( 306 plugin_delegate->QueryAvailableSpace(
307 GURL(file_url_.path()).GetOrigin(), storage_type_, 307 GURL(file_url_.path()).GetOrigin(), storage_type_,
308 base::Bind(&QuotaFileIO::DidQueryAvailableSpace, 308 base::Bind(&QuotaFileIO::DidQueryAvailableSpace,
309 weak_ptr_factory_.GetWeakPtr())); 309 weak_factory_.GetWeakPtr()));
310 } 310 }
311 pending_operations_.push_back(op.release()); 311 pending_operations_.push_back(op.release());
312 return true; 312 return true;
313 } 313 }
314 314
315 void QuotaFileIO::DidQueryInfoForQuota( 315 void QuotaFileIO::DidQueryInfoForQuota(
316 base::PlatformFileError error_code, 316 base::PlatformFileError error_code,
317 const base::PlatformFileInfo& file_info) { 317 const base::PlatformFileInfo& file_info) {
318 if (error_code != base::PLATFORM_FILE_OK) 318 if (error_code != base::PLATFORM_FILE_OK)
319 ++outstanding_errors_; 319 ++outstanding_errors_;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 397
398 398
399 PluginDelegate* plugin_delegate = GetPluginDelegate(); 399 PluginDelegate* plugin_delegate = GetPluginDelegate();
400 if (plugin_delegate) 400 if (plugin_delegate)
401 plugin_delegate->DidUpdateFile(file_url_, delta); 401 plugin_delegate->DidUpdateFile(file_url_, delta);
402 inflight_operations_ = 0; 402 inflight_operations_ = 0;
403 } 403 }
404 404
405 } // namespace ppapi 405 } // namespace ppapi
406 } // namespace webkit 406 } // namespace webkit
OLDNEW
« base/file_util_proxy.h ('K') | « webkit/plugins/ppapi/quota_file_io.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698