OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/disk_cache/blockfile/file.h" | 5 #include "net/disk_cache/blockfile/file.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <limits> | 8 #include <limits> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 return Read(buffer, buffer_len, offset); | 90 return Read(buffer, buffer_len, offset); |
91 } | 91 } |
92 | 92 |
93 if (buffer_len > static_cast<size_t>(std::numeric_limits<int32_t>::max()) || | 93 if (buffer_len > static_cast<size_t>(std::numeric_limits<int32_t>::max()) || |
94 offset > static_cast<size_t>(std::numeric_limits<int32_t>::max())) { | 94 offset > static_cast<size_t>(std::numeric_limits<int32_t>::max())) { |
95 return false; | 95 return false; |
96 } | 96 } |
97 | 97 |
98 base::PostTaskAndReplyWithResult( | 98 base::PostTaskAndReplyWithResult( |
99 s_worker_pool.Pointer(), FROM_HERE, | 99 s_worker_pool.Pointer(), FROM_HERE, |
100 base::Bind(&File::DoRead, this, buffer, buffer_len, offset), | 100 base::Bind(&File::DoRead, base::Unretained(this), buffer, buffer_len, |
| 101 offset), |
101 base::Bind(&File::OnOperationComplete, this, callback)); | 102 base::Bind(&File::OnOperationComplete, this, callback)); |
102 | 103 |
103 *completed = false; | 104 *completed = false; |
104 return true; | 105 return true; |
105 } | 106 } |
106 | 107 |
107 bool File::Write(const void* buffer, size_t buffer_len, size_t offset, | 108 bool File::Write(const void* buffer, size_t buffer_len, size_t offset, |
108 FileIOCallback* callback, bool* completed) { | 109 FileIOCallback* callback, bool* completed) { |
109 DCHECK(base_file_.IsValid()); | 110 DCHECK(base_file_.IsValid()); |
110 if (!callback) { | 111 if (!callback) { |
111 if (completed) | 112 if (completed) |
112 *completed = true; | 113 *completed = true; |
113 return Write(buffer, buffer_len, offset); | 114 return Write(buffer, buffer_len, offset); |
114 } | 115 } |
115 | 116 |
116 if (buffer_len > static_cast<size_t>(std::numeric_limits<int32_t>::max()) || | 117 if (buffer_len > static_cast<size_t>(std::numeric_limits<int32_t>::max()) || |
117 offset > static_cast<size_t>(std::numeric_limits<int32_t>::max())) { | 118 offset > static_cast<size_t>(std::numeric_limits<int32_t>::max())) { |
118 return false; | 119 return false; |
119 } | 120 } |
120 | 121 |
121 base::PostTaskAndReplyWithResult( | 122 base::PostTaskAndReplyWithResult( |
122 s_worker_pool.Pointer(), FROM_HERE, | 123 s_worker_pool.Pointer(), FROM_HERE, |
123 base::Bind(&File::DoWrite, this, buffer, buffer_len, offset), | 124 base::Bind(&File::DoWrite, base::Unretained(this), buffer, buffer_len, |
| 125 offset), |
124 base::Bind(&File::OnOperationComplete, this, callback)); | 126 base::Bind(&File::OnOperationComplete, this, callback)); |
125 | 127 |
126 *completed = false; | 128 *completed = false; |
127 return true; | 129 return true; |
128 } | 130 } |
129 | 131 |
130 bool File::SetLength(size_t length) { | 132 bool File::SetLength(size_t length) { |
131 DCHECK(base_file_.IsValid()); | 133 DCHECK(base_file_.IsValid()); |
132 if (length > std::numeric_limits<uint32_t>::max()) | 134 if (length > std::numeric_limits<uint32_t>::max()) |
133 return false; | 135 return false; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 return net::ERR_CACHE_WRITE_FAILURE; | 186 return net::ERR_CACHE_WRITE_FAILURE; |
185 } | 187 } |
186 | 188 |
187 // This method actually makes sure that the last reference to the file doesn't | 189 // This method actually makes sure that the last reference to the file doesn't |
188 // go away on the worker pool. | 190 // go away on the worker pool. |
189 void File::OnOperationComplete(FileIOCallback* callback, int result) { | 191 void File::OnOperationComplete(FileIOCallback* callback, int result) { |
190 callback->OnFileIOComplete(result); | 192 callback->OnFileIOComplete(result); |
191 } | 193 } |
192 | 194 |
193 } // namespace disk_cache | 195 } // namespace disk_cache |
OLD | NEW |