OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "net/disk_cache/simple/simple_entry_impl.h" | 5 #include "net/disk_cache/simple/simple_entry_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cstring> | 8 #include <cstring> |
9 #include <limits> | 9 #include <limits> |
10 #include <utility> | 10 #include <utility> |
(...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
710 | 710 |
711 DCHECK_EQ(STATE_UNINITIALIZED, state_); | 711 DCHECK_EQ(STATE_UNINITIALIZED, state_); |
712 DCHECK(!synchronous_entry_); | 712 DCHECK(!synchronous_entry_); |
713 state_ = STATE_IO_PENDING; | 713 state_ = STATE_IO_PENDING; |
714 const base::TimeTicks start_time = base::TimeTicks::Now(); | 714 const base::TimeTicks start_time = base::TimeTicks::Now(); |
715 std::unique_ptr<SimpleEntryCreationResults> results( | 715 std::unique_ptr<SimpleEntryCreationResults> results( |
716 new SimpleEntryCreationResults(SimpleEntryStat( | 716 new SimpleEntryCreationResults(SimpleEntryStat( |
717 last_used_, last_modified_, data_size_, sparse_data_size_))); | 717 last_used_, last_modified_, data_size_, sparse_data_size_))); |
718 Closure task = | 718 Closure task = |
719 base::Bind(&SimpleSynchronousEntry::OpenEntry, cache_type_, path_, key_, | 719 base::Bind(&SimpleSynchronousEntry::OpenEntry, cache_type_, path_, key_, |
720 entry_hash_, have_index, results.get()); | 720 entry_hash_, have_index, start_time, results.get()); |
721 Closure reply = | 721 Closure reply = |
722 base::Bind(&SimpleEntryImpl::CreationOperationComplete, this, callback, | 722 base::Bind(&SimpleEntryImpl::CreationOperationComplete, this, callback, |
723 start_time, base::Passed(&results), out_entry, | 723 start_time, base::Passed(&results), out_entry, |
724 net::NetLogEventType::SIMPLE_CACHE_ENTRY_OPEN_END); | 724 net::NetLogEventType::SIMPLE_CACHE_ENTRY_OPEN_END); |
725 worker_pool_->PostTaskAndReply(FROM_HERE, task, reply); | 725 worker_pool_->PostTaskAndReply(FROM_HERE, task, reply); |
726 } | 726 } |
727 | 727 |
728 void SimpleEntryImpl::CreateEntryInternal(bool have_index, | 728 void SimpleEntryImpl::CreateEntryInternal(bool have_index, |
729 const CompletionCallback& callback, | 729 const CompletionCallback& callback, |
730 Entry** out_entry) { | 730 Entry** out_entry) { |
(...skipping 19 matching lines...) Expand all Loading... |
750 last_used_ = last_modified_ = base::Time::Now(); | 750 last_used_ = last_modified_ = base::Time::Now(); |
751 | 751 |
752 // If creation succeeds, we should mark all streams to be saved on close. | 752 // If creation succeeds, we should mark all streams to be saved on close. |
753 for (int i = 0; i < kSimpleEntryStreamCount; ++i) | 753 for (int i = 0; i < kSimpleEntryStreamCount; ++i) |
754 have_written_[i] = true; | 754 have_written_[i] = true; |
755 | 755 |
756 const base::TimeTicks start_time = base::TimeTicks::Now(); | 756 const base::TimeTicks start_time = base::TimeTicks::Now(); |
757 std::unique_ptr<SimpleEntryCreationResults> results( | 757 std::unique_ptr<SimpleEntryCreationResults> results( |
758 new SimpleEntryCreationResults(SimpleEntryStat( | 758 new SimpleEntryCreationResults(SimpleEntryStat( |
759 last_used_, last_modified_, data_size_, sparse_data_size_))); | 759 last_used_, last_modified_, data_size_, sparse_data_size_))); |
760 Closure task = base::Bind(&SimpleSynchronousEntry::CreateEntry, | 760 Closure task = |
761 cache_type_, | 761 base::Bind(&SimpleSynchronousEntry::CreateEntry, cache_type_, path_, key_, |
762 path_, | 762 entry_hash_, have_index, start_time, results.get()); |
763 key_, | |
764 entry_hash_, | |
765 have_index, | |
766 results.get()); | |
767 Closure reply = | 763 Closure reply = |
768 base::Bind(&SimpleEntryImpl::CreationOperationComplete, this, callback, | 764 base::Bind(&SimpleEntryImpl::CreationOperationComplete, this, callback, |
769 start_time, base::Passed(&results), out_entry, | 765 start_time, base::Passed(&results), out_entry, |
770 net::NetLogEventType::SIMPLE_CACHE_ENTRY_CREATE_END); | 766 net::NetLogEventType::SIMPLE_CACHE_ENTRY_CREATE_END); |
771 worker_pool_->PostTaskAndReply(FROM_HERE, task, reply); | 767 worker_pool_->PostTaskAndReply(FROM_HERE, task, reply); |
772 } | 768 } |
773 | 769 |
774 void SimpleEntryImpl::CloseInternal() { | 770 void SimpleEntryImpl::CloseInternal() { |
775 DCHECK(io_thread_checker_.CalledOnValidThread()); | 771 DCHECK(io_thread_checker_.CalledOnValidThread()); |
776 typedef SimpleSynchronousEntry::CRCRecord CRCRecord; | 772 typedef SimpleSynchronousEntry::CRCRecord CRCRecord; |
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1564 } | 1560 } |
1565 crc32s_end_offset_[stream_index] = offset + length; | 1561 crc32s_end_offset_[stream_index] = offset + length; |
1566 } else if (offset < crc32s_end_offset_[stream_index]) { | 1562 } else if (offset < crc32s_end_offset_[stream_index]) { |
1567 // If a range for which the crc32 was already computed is rewritten, the | 1563 // If a range for which the crc32 was already computed is rewritten, the |
1568 // computation of the crc32 need to start from 0 again. | 1564 // computation of the crc32 need to start from 0 again. |
1569 crc32s_end_offset_[stream_index] = 0; | 1565 crc32s_end_offset_[stream_index] = 0; |
1570 } | 1566 } |
1571 } | 1567 } |
1572 | 1568 |
1573 } // namespace disk_cache | 1569 } // namespace disk_cache |
OLD | NEW |