OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/browser/fileapi/quota/quota_reservation.h" | 5 #include "storage/browser/fileapi/quota/quota_reservation.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "webkit/browser/fileapi/quota/open_file_handle.h" | 8 #include "storage/browser/fileapi/quota/open_file_handle.h" |
9 #include "webkit/browser/fileapi/quota/quota_reservation_buffer.h" | 9 #include "storage/browser/fileapi/quota/quota_reservation_buffer.h" |
10 | 10 |
11 namespace fileapi { | 11 namespace storage { |
12 | 12 |
13 void QuotaReservation::RefreshReservation( | 13 void QuotaReservation::RefreshReservation(int64 size, |
14 int64 size, | 14 const StatusCallback& callback) { |
15 const StatusCallback& callback) { | |
16 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 15 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
17 DCHECK(!running_refresh_request_); | 16 DCHECK(!running_refresh_request_); |
18 DCHECK(!client_crashed_); | 17 DCHECK(!client_crashed_); |
19 if (!reservation_manager()) | 18 if (!reservation_manager()) |
20 return; | 19 return; |
21 | 20 |
22 running_refresh_request_ = true; | 21 running_refresh_request_ = true; |
23 | 22 |
24 reservation_manager()->ReserveQuota( | 23 reservation_manager()->ReserveQuota( |
25 origin(), type(), size - remaining_quota_, | 24 origin(), |
| 25 type(), |
| 26 size - remaining_quota_, |
26 base::Bind(&QuotaReservation::AdaptDidUpdateReservedQuota, | 27 base::Bind(&QuotaReservation::AdaptDidUpdateReservedQuota, |
27 weak_ptr_factory_.GetWeakPtr(), | 28 weak_ptr_factory_.GetWeakPtr(), |
28 remaining_quota_, callback)); | 29 remaining_quota_, |
| 30 callback)); |
29 | 31 |
30 if (running_refresh_request_) | 32 if (running_refresh_request_) |
31 remaining_quota_ = 0; | 33 remaining_quota_ = 0; |
32 } | 34 } |
33 | 35 |
34 scoped_ptr<OpenFileHandle> QuotaReservation::GetOpenFileHandle( | 36 scoped_ptr<OpenFileHandle> QuotaReservation::GetOpenFileHandle( |
35 const base::FilePath& platform_path) { | 37 const base::FilePath& platform_path) { |
36 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 38 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
37 DCHECK(!client_crashed_); | 39 DCHECK(!client_crashed_); |
38 return reservation_buffer_->GetOpenFileHandle(this, platform_path); | 40 return reservation_buffer_->GetOpenFileHandle(this, platform_path); |
(...skipping 25 matching lines...) Expand all Loading... |
64 } | 66 } |
65 | 67 |
66 const GURL& QuotaReservation::origin() const { | 68 const GURL& QuotaReservation::origin() const { |
67 return reservation_buffer_->origin(); | 69 return reservation_buffer_->origin(); |
68 } | 70 } |
69 | 71 |
70 FileSystemType QuotaReservation::type() const { | 72 FileSystemType QuotaReservation::type() const { |
71 return reservation_buffer_->type(); | 73 return reservation_buffer_->type(); |
72 } | 74 } |
73 | 75 |
74 QuotaReservation::QuotaReservation( | 76 QuotaReservation::QuotaReservation(QuotaReservationBuffer* reservation_buffer) |
75 QuotaReservationBuffer* reservation_buffer) | |
76 : client_crashed_(false), | 77 : client_crashed_(false), |
77 running_refresh_request_(false), | 78 running_refresh_request_(false), |
78 remaining_quota_(0), | 79 remaining_quota_(0), |
79 reservation_buffer_(reservation_buffer), | 80 reservation_buffer_(reservation_buffer), |
80 weak_ptr_factory_(this) { | 81 weak_ptr_factory_(this) { |
81 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 82 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
82 } | 83 } |
83 | 84 |
84 QuotaReservation::~QuotaReservation() { | 85 QuotaReservation::~QuotaReservation() { |
85 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 86 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
(...skipping 11 matching lines...) Expand all Loading... |
97 const StatusCallback& callback, | 98 const StatusCallback& callback, |
98 base::File::Error error, | 99 base::File::Error error, |
99 int64 delta) { | 100 int64 delta) { |
100 if (!reservation) | 101 if (!reservation) |
101 return false; | 102 return false; |
102 | 103 |
103 return reservation->DidUpdateReservedQuota( | 104 return reservation->DidUpdateReservedQuota( |
104 previous_size, callback, error, delta); | 105 previous_size, callback, error, delta); |
105 } | 106 } |
106 | 107 |
107 bool QuotaReservation::DidUpdateReservedQuota( | 108 bool QuotaReservation::DidUpdateReservedQuota(int64 previous_size, |
108 int64 previous_size, | 109 const StatusCallback& callback, |
109 const StatusCallback& callback, | 110 base::File::Error error, |
110 base::File::Error error, | 111 int64 delta) { |
111 int64 delta) { | |
112 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); | 112 DCHECK(sequence_checker_.CalledOnValidSequencedThread()); |
113 DCHECK(running_refresh_request_); | 113 DCHECK(running_refresh_request_); |
114 running_refresh_request_ = false; | 114 running_refresh_request_ = false; |
115 | 115 |
116 if (client_crashed_) { | 116 if (client_crashed_) { |
117 callback.Run(base::File::FILE_ERROR_ABORT); | 117 callback.Run(base::File::FILE_ERROR_ABORT); |
118 return false; | 118 return false; |
119 } | 119 } |
120 | 120 |
121 if (error == base::File::FILE_OK) | 121 if (error == base::File::FILE_OK) |
122 remaining_quota_ = previous_size + delta; | 122 remaining_quota_ = previous_size + delta; |
123 callback.Run(error); | 123 callback.Run(error); |
124 return true; | 124 return true; |
125 } | 125 } |
126 | 126 |
127 } // namespace fileapi | 127 } // namespace storage |
OLD | NEW |