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 "chrome/browser/chromeos/drive/resource_metadata.h" | 5 #include "chrome/browser/chromeos/drive/resource_metadata.h" |
6 | 6 |
7 #include "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "base/sys_info.h" | 9 #include "base/sys_info.h" |
10 #include "chrome/browser/chromeos/drive/drive.pb.h" | 10 #include "chrome/browser/chromeos/drive/drive.pb.h" |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 if (!RemoveEntryRecursively(entry->resource_id())) | 383 if (!RemoveEntryRecursively(entry->resource_id())) |
384 return FILE_ERROR_FAILED; | 384 return FILE_ERROR_FAILED; |
385 | 385 |
386 if (out_file_path) | 386 if (out_file_path) |
387 *out_file_path = GetFilePath(entry->parent_resource_id()); | 387 *out_file_path = GetFilePath(entry->parent_resource_id()); |
388 return FILE_ERROR_OK; | 388 return FILE_ERROR_OK; |
389 } | 389 } |
390 | 390 |
391 void ResourceMetadata::GetResourceEntryByIdOnUIThread( | 391 void ResourceMetadata::GetResourceEntryByIdOnUIThread( |
392 const std::string& resource_id, | 392 const std::string& resource_id, |
393 const GetResourceEntryWithFilePathCallback& callback) { | 393 const GetResourceEntryCallback& callback) { |
394 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 394 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
395 DCHECK(!callback.is_null()); | 395 DCHECK(!callback.is_null()); |
396 | 396 |
397 base::FilePath* file_path = new base::FilePath; | |
398 scoped_ptr<ResourceEntry> entry(new ResourceEntry); | 397 scoped_ptr<ResourceEntry> entry(new ResourceEntry); |
399 ResourceEntry* entry_ptr = entry.get(); | 398 ResourceEntry* entry_ptr = entry.get(); |
400 base::PostTaskAndReplyWithResult( | 399 base::PostTaskAndReplyWithResult( |
401 blocking_task_runner_, | 400 blocking_task_runner_, |
402 FROM_HERE, | 401 FROM_HERE, |
403 base::Bind(&ResourceMetadata::GetResourceEntryById, | 402 base::Bind(&ResourceMetadata::GetResourceEntryById, |
404 base::Unretained(this), | 403 base::Unretained(this), |
405 resource_id, | 404 resource_id, |
406 file_path, | |
407 entry_ptr), | 405 entry_ptr), |
408 base::Bind(&RunGetResourceEntryWithFilePathCallback, | 406 base::Bind(&RunGetResourceEntryCallback, |
409 callback, | 407 callback, |
410 base::Owned(file_path), | |
411 base::Passed(&entry))); | 408 base::Passed(&entry))); |
412 } | 409 } |
413 | 410 |
414 FileError ResourceMetadata::GetResourceEntryById( | 411 FileError ResourceMetadata::GetResourceEntryById( |
415 const std::string& resource_id, | 412 const std::string& resource_id, |
416 base::FilePath* out_file_path, | |
417 ResourceEntry* out_entry) { | 413 ResourceEntry* out_entry) { |
418 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); | 414 DCHECK(blocking_task_runner_->RunsTasksOnCurrentThread()); |
419 DCHECK(!resource_id.empty()); | 415 DCHECK(!resource_id.empty()); |
| 416 DCHECK(out_entry); |
420 | 417 |
421 scoped_ptr<ResourceEntry> entry = storage_->GetEntry(resource_id); | 418 scoped_ptr<ResourceEntry> entry = storage_->GetEntry(resource_id); |
422 if (!entry) | 419 if (!entry) |
423 return FILE_ERROR_NOT_FOUND; | 420 return FILE_ERROR_NOT_FOUND; |
424 | 421 |
425 if (out_file_path) | 422 out_entry->Swap(entry.get()); |
426 *out_file_path = GetFilePath(resource_id); | |
427 if (out_entry) | |
428 *out_entry = *entry; | |
429 | |
430 return FILE_ERROR_OK; | 423 return FILE_ERROR_OK; |
431 } | 424 } |
432 | 425 |
433 void ResourceMetadata::GetResourceEntryByPathOnUIThread( | 426 void ResourceMetadata::GetResourceEntryByPathOnUIThread( |
434 const base::FilePath& file_path, | 427 const base::FilePath& file_path, |
435 const GetResourceEntryCallback& callback) { | 428 const GetResourceEntryCallback& callback) { |
436 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 429 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
437 DCHECK(!callback.is_null()); | 430 DCHECK(!callback.is_null()); |
438 | 431 |
439 scoped_ptr<ResourceEntry> entry(new ResourceEntry); | 432 scoped_ptr<ResourceEntry> entry(new ResourceEntry); |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 for (size_t i = 0; i < children.size(); ++i) { | 925 for (size_t i = 0; i < children.size(); ++i) { |
933 if (!RemoveEntryRecursively(children[i])) | 926 if (!RemoveEntryRecursively(children[i])) |
934 return false; | 927 return false; |
935 } | 928 } |
936 } | 929 } |
937 return storage_->RemoveEntry(resource_id); | 930 return storage_->RemoveEntry(resource_id); |
938 } | 931 } |
939 | 932 |
940 } // namespace internal | 933 } // namespace internal |
941 } // namespace drive | 934 } // namespace drive |
OLD | NEW |