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

Side by Side Diff: net/disk_cache/simple/simple_synchronous_entry.cc

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « net/disk_cache/simple/simple_synchronous_entry.h ('k') | net/dns/dns_hosts.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_synchronous_entry.h" 5 #include "net/disk_cache/simple/simple_synchronous_entry.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstring> 8 #include <cstring>
9 #include <functional> 9 #include <functional>
10 #include <limits> 10 #include <limits>
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 const int32 sparse_data_size) 127 const int32 sparse_data_size)
128 : last_used_(last_used), 128 : last_used_(last_used),
129 last_modified_(last_modified), 129 last_modified_(last_modified),
130 sparse_data_size_(sparse_data_size) { 130 sparse_data_size_(sparse_data_size) {
131 memcpy(data_size_, data_size, sizeof(data_size_)); 131 memcpy(data_size_, data_size, sizeof(data_size_));
132 } 132 }
133 133
134 int SimpleEntryStat::GetOffsetInFile(const std::string& key, 134 int SimpleEntryStat::GetOffsetInFile(const std::string& key,
135 int offset, 135 int offset,
136 int stream_index) const { 136 int stream_index) const {
137 const int64 headers_size = sizeof(SimpleFileHeader) + key.size(); 137 const size_t headers_size = sizeof(SimpleFileHeader) + key.size();
138 const int64 additional_offset = 138 const size_t additional_offset =
139 stream_index == 0 ? data_size_[1] + sizeof(SimpleFileEOF) : 0; 139 stream_index == 0 ? data_size_[1] + sizeof(SimpleFileEOF) : 0;
140 return headers_size + offset + additional_offset; 140 return headers_size + offset + additional_offset;
141 } 141 }
142 142
143 int SimpleEntryStat::GetEOFOffsetInFile(const std::string& key, 143 int SimpleEntryStat::GetEOFOffsetInFile(const std::string& key,
144 int stream_index) const { 144 int stream_index) const {
145 return GetOffsetInFile(key, data_size_[stream_index], stream_index); 145 return GetOffsetInFile(key, data_size_[stream_index], stream_index);
146 } 146 }
147 147
148 int SimpleEntryStat::GetLastEOFOffsetInFile(const std::string& key, 148 int SimpleEntryStat::GetLastEOFOffsetInFile(const std::string& key,
149 int stream_index) const { 149 int stream_index) const {
150 const int file_index = GetFileIndexFromStreamIndex(stream_index); 150 const int file_index = GetFileIndexFromStreamIndex(stream_index);
151 const int eof_data_offset = 151 const int eof_data_offset =
152 file_index == 0 ? data_size_[0] + data_size_[1] + sizeof(SimpleFileEOF) 152 file_index == 0 ? data_size_[0] + data_size_[1] + sizeof(SimpleFileEOF)
153 : data_size_[2]; 153 : data_size_[2];
154 return GetOffsetInFile(key, eof_data_offset, stream_index); 154 return GetOffsetInFile(key, eof_data_offset, stream_index);
155 } 155 }
156 156
157 int SimpleEntryStat::GetFileSize(const std::string& key, int file_index) const { 157 int64 SimpleEntryStat::GetFileSize(const std::string& key,
158 const int total_data_size = 158 int file_index) const {
159 const int32 total_data_size =
159 file_index == 0 ? data_size_[0] + data_size_[1] + sizeof(SimpleFileEOF) 160 file_index == 0 ? data_size_[0] + data_size_[1] + sizeof(SimpleFileEOF)
160 : data_size_[2]; 161 : data_size_[2];
161 return GetFileSizeFromKeyAndDataSize(key, total_data_size); 162 return GetFileSizeFromKeyAndDataSize(key, total_data_size);
162 } 163 }
163 164
164 SimpleEntryCreationResults::SimpleEntryCreationResults( 165 SimpleEntryCreationResults::SimpleEntryCreationResults(
165 SimpleEntryStat entry_stat) 166 SimpleEntryStat entry_stat)
166 : sync_entry(NULL), 167 : sync_entry(NULL),
167 entry_stat(entry_stat), 168 entry_stat(entry_stat),
168 stream_0_crc32(crc32(0, Z_NULL, 0)), 169 stream_0_crc32(crc32(0, Z_NULL, 0)),
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 read_so_far += len_to_read; 445 read_so_far += len_to_read;
445 ++it; 446 ++it;
446 } 447 }
447 448
448 *out_result = read_so_far; 449 *out_result = read_so_far;
449 } 450 }
450 451
451 void SimpleSynchronousEntry::WriteSparseData( 452 void SimpleSynchronousEntry::WriteSparseData(
452 const EntryOperationData& in_entry_op, 453 const EntryOperationData& in_entry_op,
453 net::IOBuffer* in_buf, 454 net::IOBuffer* in_buf,
454 int64 max_sparse_data_size, 455 uint64 max_sparse_data_size,
455 SimpleEntryStat* out_entry_stat, 456 SimpleEntryStat* out_entry_stat,
456 int* out_result) { 457 int* out_result) {
457 DCHECK(initialized_); 458 DCHECK(initialized_);
458 int64 offset = in_entry_op.sparse_offset; 459 int64 offset = in_entry_op.sparse_offset;
459 int buf_len = in_entry_op.buf_len; 460 int buf_len = in_entry_op.buf_len;
460 461
461 const char* buf = in_buf->data(); 462 const char* buf = in_buf->data();
462 int written_so_far = 0; 463 int written_so_far = 0;
463 int appended_so_far = 0; 464 int appended_so_far = 0;
464 465
465 if (!sparse_file_open() && !CreateSparseFile()) { 466 if (!sparse_file_open() && !CreateSparseFile()) {
466 *out_result = net::ERR_CACHE_WRITE_FAILURE; 467 *out_result = net::ERR_CACHE_WRITE_FAILURE;
467 return; 468 return;
468 } 469 }
469 470
470 int64 sparse_data_size = out_entry_stat->sparse_data_size(); 471 uint64 sparse_data_size = out_entry_stat->sparse_data_size();
471 // This is a pessimistic estimate; it assumes the entire buffer is going to 472 // This is a pessimistic estimate; it assumes the entire buffer is going to
472 // be appended as a new range, not written over existing ranges. 473 // be appended as a new range, not written over existing ranges.
473 if (sparse_data_size + buf_len > max_sparse_data_size) { 474 if (sparse_data_size + buf_len > max_sparse_data_size) {
474 DVLOG(1) << "Truncating sparse data file (" << sparse_data_size << " + " 475 DVLOG(1) << "Truncating sparse data file (" << sparse_data_size << " + "
475 << buf_len << " > " << max_sparse_data_size << ")"; 476 << buf_len << " > " << max_sparse_data_size << ")";
476 TruncateSparseFile(); 477 TruncateSparseFile();
477 } 478 }
478 479
479 SparseRangeIterator it = sparse_ranges_.lower_bound(offset); 480 SparseRangeIterator it = sparse_ranges_.lower_bound(offset);
480 481
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after
1426 range.offset = offset; 1427 range.offset = offset;
1427 range.length = len; 1428 range.length = len;
1428 range.data_crc32 = data_crc32; 1429 range.data_crc32 = data_crc32;
1429 range.file_offset = data_file_offset; 1430 range.file_offset = data_file_offset;
1430 sparse_ranges_.insert(std::make_pair(offset, range)); 1431 sparse_ranges_.insert(std::make_pair(offset, range));
1431 1432
1432 return true; 1433 return true;
1433 } 1434 }
1434 1435
1435 } // namespace disk_cache 1436 } // namespace disk_cache
OLDNEW
« no previous file with comments | « net/disk_cache/simple/simple_synchronous_entry.h ('k') | net/dns/dns_hosts.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698