| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi
le_util.h" | 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/provider_async_fi
le_util.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/files/file.h" | 8 #include "base/files/file.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 } | 206 } |
| 207 | 207 |
| 208 // Routes the response of CopyEntry to a callback of MoveLocalFile() on the | 208 // Routes the response of CopyEntry to a callback of MoveLocalFile() on the |
| 209 // IO thread. | 209 // IO thread. |
| 210 void OnMoveEntry(const fileapi::AsyncFileUtil::StatusCallback& callback, | 210 void OnMoveEntry(const fileapi::AsyncFileUtil::StatusCallback& callback, |
| 211 base::File::Error result) { | 211 base::File::Error result) { |
| 212 BrowserThread::PostTask( | 212 BrowserThread::PostTask( |
| 213 BrowserThread::IO, FROM_HERE, base::Bind(callback, result)); | 213 BrowserThread::IO, FROM_HERE, base::Bind(callback, result)); |
| 214 } | 214 } |
| 215 | 215 |
| 216 // Executes Truncate on the UI thread. |
| 217 void TruncateOnUIThread( |
| 218 scoped_ptr<fileapi::FileSystemOperationContext> context, |
| 219 const fileapi::FileSystemURL& url, |
| 220 int64 length, |
| 221 const fileapi::AsyncFileUtil::StatusCallback& callback) { |
| 222 util::FileSystemURLParser parser(url); |
| 223 if (!parser.Parse()) { |
| 224 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION); |
| 225 return; |
| 226 } |
| 227 |
| 228 parser.file_system()->Truncate(parser.file_path(), length, callback); |
| 229 } |
| 230 |
| 231 // Routes the response of Truncate back to the IO thread. |
| 232 void OnTruncate(const fileapi::AsyncFileUtil::StatusCallback& callback, |
| 233 base::File::Error result) { |
| 234 BrowserThread::PostTask( |
| 235 BrowserThread::IO, FROM_HERE, base::Bind(callback, result)); |
| 236 } |
| 237 |
| 216 } // namespace | 238 } // namespace |
| 217 | 239 |
| 218 ProviderAsyncFileUtil::ProviderAsyncFileUtil() {} | 240 ProviderAsyncFileUtil::ProviderAsyncFileUtil() {} |
| 219 | 241 |
| 220 ProviderAsyncFileUtil::~ProviderAsyncFileUtil() {} | 242 ProviderAsyncFileUtil::~ProviderAsyncFileUtil() {} |
| 221 | 243 |
| 222 void ProviderAsyncFileUtil::CreateOrOpen( | 244 void ProviderAsyncFileUtil::CreateOrOpen( |
| 223 scoped_ptr<fileapi::FileSystemOperationContext> context, | 245 scoped_ptr<fileapi::FileSystemOperationContext> context, |
| 224 const fileapi::FileSystemURL& url, | 246 const fileapi::FileSystemURL& url, |
| 225 int file_flags, | 247 int file_flags, |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 327 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 306 callback.Run(base::File::FILE_ERROR_ACCESS_DENIED); | 328 callback.Run(base::File::FILE_ERROR_ACCESS_DENIED); |
| 307 } | 329 } |
| 308 | 330 |
| 309 void ProviderAsyncFileUtil::Truncate( | 331 void ProviderAsyncFileUtil::Truncate( |
| 310 scoped_ptr<fileapi::FileSystemOperationContext> context, | 332 scoped_ptr<fileapi::FileSystemOperationContext> context, |
| 311 const fileapi::FileSystemURL& url, | 333 const fileapi::FileSystemURL& url, |
| 312 int64 length, | 334 int64 length, |
| 313 const StatusCallback& callback) { | 335 const StatusCallback& callback) { |
| 314 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 336 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 315 callback.Run(base::File::FILE_ERROR_ACCESS_DENIED); | 337 BrowserThread::PostTask(BrowserThread::UI, |
| 338 FROM_HERE, |
| 339 base::Bind(&TruncateOnUIThread, |
| 340 base::Passed(&context), |
| 341 url, |
| 342 length, |
| 343 base::Bind(&OnTruncate, callback))); |
| 316 } | 344 } |
| 317 | 345 |
| 318 void ProviderAsyncFileUtil::CopyFileLocal( | 346 void ProviderAsyncFileUtil::CopyFileLocal( |
| 319 scoped_ptr<fileapi::FileSystemOperationContext> context, | 347 scoped_ptr<fileapi::FileSystemOperationContext> context, |
| 320 const fileapi::FileSystemURL& src_url, | 348 const fileapi::FileSystemURL& src_url, |
| 321 const fileapi::FileSystemURL& dest_url, | 349 const fileapi::FileSystemURL& dest_url, |
| 322 CopyOrMoveOption option, | 350 CopyOrMoveOption option, |
| 323 const CopyFileProgressCallback& progress_callback, | 351 const CopyFileProgressCallback& progress_callback, |
| 324 const StatusCallback& callback) { | 352 const StatusCallback& callback) { |
| 325 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 353 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 NOTIMPLEMENTED(); | 439 NOTIMPLEMENTED(); |
| 412 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION, | 440 callback.Run(base::File::FILE_ERROR_INVALID_OPERATION, |
| 413 base::File::Info(), | 441 base::File::Info(), |
| 414 base::FilePath(), | 442 base::FilePath(), |
| 415 scoped_refptr<webkit_blob::ShareableFileReference>()); | 443 scoped_refptr<webkit_blob::ShareableFileReference>()); |
| 416 } | 444 } |
| 417 | 445 |
| 418 } // namespace internal | 446 } // namespace internal |
| 419 } // namespace file_system_provider | 447 } // namespace file_system_provider |
| 420 } // namespace chromeos | 448 } // namespace chromeos |
| OLD | NEW |