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/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 Loading... |
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 |
OLD | NEW |