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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_cache.cc

Issue 10823125: Drive: add a method to clear all local cache. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix wrong condition. Created 8 years, 4 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
OLDNEW
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/gdata/gdata_cache.h" 5 #include "chrome/browser/chromeos/gdata/gdata_cache.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/chromeos/chromeos_version.h" 9 #include "base/chromeos/chromeos_version.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 // Appends |resource_id| ID to |resource_ids| unconditionally. 231 // Appends |resource_id| ID to |resource_ids| unconditionally.
232 void CollectAnyFile(std::vector<std::string>* resource_ids, 232 void CollectAnyFile(std::vector<std::string>* resource_ids,
233 const std::string& resource_id, 233 const std::string& resource_id,
234 const GDataCacheEntry& /* cache_entry */) { 234 const GDataCacheEntry& /* cache_entry */) {
235 DCHECK(resource_ids); 235 DCHECK(resource_ids);
236 236
237 resource_ids->push_back(resource_id); 237 resource_ids->push_back(resource_id);
238 } 238 }
239 239
240 // Runs callback with pointers dereferenced. 240 // Runs callback with pointers dereferenced.
241 // Used to implement SetMountedStateOnUIThread. 241 // Used to implement SetMountedStateOnUIThread and ClearAllOnUIThread.
242 void RunSetMountedStateCallback(const SetMountedStateCallback& callback, 242 void RunChangeCacheStateCallback(const ChangeCacheStateCallback& callback,
243 GDataFileError* error, 243 const GDataFileError* error,
244 FilePath* cache_file_path) { 244 const FilePath* cache_file_path) {
245 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 245 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
246 DCHECK(error); 246 DCHECK(error);
247 DCHECK(cache_file_path); 247 DCHECK(cache_file_path);
248 248
249 if (!callback.is_null()) 249 if (!callback.is_null())
250 callback.Run(*error, *cache_file_path); 250 callback.Run(*error, *cache_file_path);
251 } 251 }
252 252
253 // Runs callback with pointers dereferenced. 253 // Runs callback with pointers dereferenced.
254 // Used to implement *OnUIThread methods. 254 // Used to implement *OnUIThread methods.
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 weak_ptr_factory_.GetWeakPtr(), 566 weak_ptr_factory_.GetWeakPtr(),
567 base::Owned(error), 567 base::Owned(error),
568 resource_id, 568 resource_id,
569 md5, 569 md5,
570 callback)); 570 callback));
571 } 571 }
572 572
573 void GDataCache::SetMountedStateOnUIThread( 573 void GDataCache::SetMountedStateOnUIThread(
574 const FilePath& file_path, 574 const FilePath& file_path,
575 bool to_mount, 575 bool to_mount,
576 const SetMountedStateCallback& callback) { 576 const ChangeCacheStateCallback& callback) {
577 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 577 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
578 578
579 GDataFileError* error = 579 GDataFileError* error =
580 new GDataFileError(GDATA_FILE_OK); 580 new GDataFileError(GDATA_FILE_OK);
581 FilePath* cache_file_path = new FilePath; 581 FilePath* cache_file_path = new FilePath;
582 blocking_task_runner_->PostTaskAndReply( 582 blocking_task_runner_->PostTaskAndReply(
583 FROM_HERE, 583 FROM_HERE,
584 base::Bind(&GDataCache::SetMountedState, 584 base::Bind(&GDataCache::SetMountedState,
585 base::Unretained(this), 585 base::Unretained(this),
586 file_path, 586 file_path,
587 to_mount, 587 to_mount,
588 error, 588 error,
589 cache_file_path), 589 cache_file_path),
590 base::Bind(&RunSetMountedStateCallback, 590 base::Bind(&RunChangeCacheStateCallback,
591 callback, 591 callback,
592 base::Owned(error), 592 base::Owned(error),
593 base::Owned(cache_file_path))); 593 base::Owned(cache_file_path)));
594 } 594 }
595 595
596 void GDataCache::MarkDirtyOnUIThread(const std::string& resource_id, 596 void GDataCache::MarkDirtyOnUIThread(const std::string& resource_id,
597 const std::string& md5, 597 const std::string& md5,
598 const GetFileFromCacheCallback& callback) { 598 const GetFileFromCacheCallback& callback) {
599 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 599 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
600 600
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 base::Unretained(this), 675 base::Unretained(this),
676 resource_id, 676 resource_id,
677 error), 677 error),
678 base::Bind(&RunCacheOperationCallback, 678 base::Bind(&RunCacheOperationCallback,
679 callback, 679 callback,
680 base::Owned(error), 680 base::Owned(error),
681 resource_id, 681 resource_id,
682 "" /* md5 */)); 682 "" /* md5 */));
683 } 683 }
684 684
685 void GDataCache::ClearAllOnUIThread(const ChangeCacheStateCallback& callback) {
686 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
687
688 GDataFileError* error = new GDataFileError(GDATA_FILE_OK);
689
690 blocking_task_runner_->PostTaskAndReply(
691 FROM_HERE,
692 base::Bind(&GDataCache::ClearAll,
693 base::Unretained(this),
694 error),
695 base::Bind(&RunChangeCacheStateCallback,
696 callback,
697 base::Owned(error),
698 &cache_root_path_));
699 }
700
685 void GDataCache::RequestInitializeOnUIThread() { 701 void GDataCache::RequestInitializeOnUIThread() {
686 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 702 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
687 703
688 blocking_task_runner_->PostTask( 704 blocking_task_runner_->PostTask(
689 FROM_HERE, 705 FROM_HERE,
690 base::Bind(&GDataCache::Initialize, base::Unretained(this))); 706 base::Bind(&GDataCache::Initialize, base::Unretained(this)));
691 } 707 }
692 708
693 void GDataCache::ForceRescanOnUIThreadForTesting() { 709 void GDataCache::ForceRescanOnUIThreadForTesting() {
694 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 710 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 733 matching lines...) Expand 10 before | Expand all | Expand 10 after
1428 for (size_t i = 0; i < paths_to_delete.size(); ++i) { 1444 for (size_t i = 0; i < paths_to_delete.size(); ++i) {
1429 DeleteFilesSelectively(paths_to_delete[i], path_to_keep); 1445 DeleteFilesSelectively(paths_to_delete[i], path_to_keep);
1430 } 1446 }
1431 1447
1432 // Now that all file operations have completed, remove from cache map. 1448 // Now that all file operations have completed, remove from cache map.
1433 metadata_->RemoveCacheEntry(resource_id); 1449 metadata_->RemoveCacheEntry(resource_id);
1434 1450
1435 *error = GDATA_FILE_OK; 1451 *error = GDATA_FILE_OK;
1436 } 1452 }
1437 1453
1454 void GDataCache::ClearAll(GDataFileError* error) {
1455 AssertOnSequencedWorkerPool();
1456 DCHECK(error);
1457
1458 bool success = file_util::Delete(cache_root_path_, true);
1459 Initialize();
1460
1461 if (success)
1462 *error = GDATA_FILE_OK;
satorux1 2012/08/03 17:17:31 *error = success ? GDATA_FILE_OK : GDATA_FILE_ERRO
yoshiki 2012/08/03 18:23:15 Done.
1463 else
1464 *error = GDATA_FILE_ERROR_FAILED;
1465 }
1466
1438 void GDataCache::OnPinned(GDataFileError* error, 1467 void GDataCache::OnPinned(GDataFileError* error,
1439 const std::string& resource_id, 1468 const std::string& resource_id,
1440 const std::string& md5, 1469 const std::string& md5,
1441 const CacheOperationCallback& callback) { 1470 const CacheOperationCallback& callback) {
1442 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1471 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1443 DCHECK(error); 1472 DCHECK(error);
1444 1473
1445 if (!callback.is_null()) 1474 if (!callback.is_null())
1446 callback.Run(*error, resource_id, md5); 1475 callback.Run(*error, resource_id, md5);
1447 1476
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1547 const GDataCacheEntry& cache_entry) { 1576 const GDataCacheEntry& cache_entry) {
1548 return cache_entry.is_persistent() ? CACHE_TYPE_PERSISTENT : CACHE_TYPE_TMP; 1577 return cache_entry.is_persistent() ? CACHE_TYPE_PERSISTENT : CACHE_TYPE_TMP;
1549 } 1578 }
1550 1579
1551 void SetFreeDiskSpaceGetterForTesting(FreeDiskSpaceGetterInterface* getter) { 1580 void SetFreeDiskSpaceGetterForTesting(FreeDiskSpaceGetterInterface* getter) {
1552 delete global_free_disk_getter_for_testing; // Safe to delete NULL; 1581 delete global_free_disk_getter_for_testing; // Safe to delete NULL;
1553 global_free_disk_getter_for_testing = getter; 1582 global_free_disk_getter_for_testing = getter;
1554 } 1583 }
1555 1584
1556 } // namespace gdata 1585 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698