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

Side by Side Diff: chrome/browser/chromeos/drive/file_cache_metadata.cc

Issue 15690021: drive: Move temporary file removal responsiblity to FileCache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
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/drive/file_cache_metadata.h" 5 #include "chrome/browser/chromeos/drive/file_cache_metadata.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/sequenced_task_runner.h" 10 #include "base/sequenced_task_runner.h"
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 } 327 }
328 328
329 if (!CheckIfMd5Matches(md5, cache_entry)) { 329 if (!CheckIfMd5Matches(md5, cache_entry)) {
330 return false; 330 return false;
331 } 331 }
332 332
333 *entry = cache_entry; 333 *entry = cache_entry;
334 return true; 334 return true;
335 } 335 }
336 336
337 void FileCacheMetadata::RemoveTemporaryFiles() {
338 AssertOnSequencedWorkerPool();
339
340 scoped_ptr<leveldb::Iterator> iter(level_db_->NewIterator(
341 leveldb::ReadOptions()));
342 for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
343 FileCacheEntry cache_entry;
344 const bool ok = cache_entry.ParseFromArray(iter->value().data(),
345 iter->value().size());
346 if (ok && !cache_entry.is_persistent())
347 level_db_->Delete(leveldb::WriteOptions(), iter->key());
348 }
349 }
350
351 scoped_ptr<FileCacheMetadata::Iterator> FileCacheMetadata::GetIterator() { 337 scoped_ptr<FileCacheMetadata::Iterator> FileCacheMetadata::GetIterator() {
352 AssertOnSequencedWorkerPool(); 338 AssertOnSequencedWorkerPool();
353 339
354 scoped_ptr<leveldb::Iterator> iter(level_db_->NewIterator( 340 scoped_ptr<leveldb::Iterator> iter(level_db_->NewIterator(
355 leveldb::ReadOptions())); 341 leveldb::ReadOptions()));
356 return make_scoped_ptr(new Iterator(iter.Pass())); 342 return make_scoped_ptr(new Iterator(iter.Pass()));
357 } 343 }
358 344
359 void FileCacheMetadata::AssertOnSequencedWorkerPool() { 345 void FileCacheMetadata::AssertOnSequencedWorkerPool() {
360 DCHECK(!blocking_task_runner_ || 346 DCHECK(!blocking_task_runner_ ||
361 blocking_task_runner_->RunsTasksOnCurrentThread()); 347 blocking_task_runner_->RunsTasksOnCurrentThread());
362 } 348 }
363 349
364 } // namespace internal 350 } // namespace internal
365 } // namespace drive 351 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/file_cache_metadata.h ('k') | chrome/browser/chromeos/drive/file_cache_metadata_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698