Chromium Code Reviews| Index: net/disk_cache/simple/simple_synchronous_entry.h |
| diff --git a/net/disk_cache/simple/simple_synchronous_entry.h b/net/disk_cache/simple/simple_synchronous_entry.h |
| index a7e6e66b12091847ed31623ecdebf1b41d008acc..5a2ffcee481ac5cfe2307f2212ba9d19f6cfe298 100644 |
| --- a/net/disk_cache/simple/simple_synchronous_entry.h |
| +++ b/net/disk_cache/simple/simple_synchronous_entry.h |
| @@ -79,8 +79,12 @@ struct SimpleEntryCreationResults { |
| SimpleSynchronousEntry* sync_entry; |
| scoped_refptr<net::GrowableIOBuffer> stream_0_data; |
| + |
| + // |stream_1_data| may be null (in which case stream_1_crc32 will be unset) |
| + scoped_refptr<net::GrowableIOBuffer> stream_1_data; |
| SimpleEntryStat entry_stat; |
| uint32_t stream_0_crc32; |
| + uint32_t stream_1_crc32; |
|
pasko
2017/07/18 13:46:31
are you packing this to make the sizeof(SimpleEntr
Maks Orlovich
2017/07/21 18:37:34
Done.
|
| int result; |
| }; |
| @@ -190,7 +194,7 @@ class SimpleSynchronousEntry { |
| int* out_result); |
| int CheckEOFRecord(int index, |
| const SimpleEntryStat& entry_stat, |
| - uint32_t expected_crc32) const; |
| + uint32_t expected_crc32); |
| void ReadSparseData(const EntryOperationData& in_entry_op, |
| net::IOBuffer* out_buf, |
| @@ -282,7 +286,9 @@ class SimpleSynchronousEntry { |
| // Returns a net error, i.e. net::OK on success. |
| int InitializeForOpen(SimpleEntryStat* out_entry_stat, |
| scoped_refptr<net::GrowableIOBuffer>* stream_0_data, |
| - uint32_t* out_stream_0_crc32); |
| + uint32_t* out_stream_0_crc32, |
| + scoped_refptr<net::GrowableIOBuffer>* stream_1_data, |
| + uint32_t* out_stream_1_crc32); |
| // Writes the header and key to a newly-created stream file. |index| is the |
| // index of the stream. Returns true on success; returns false and sets |
| @@ -294,19 +300,55 @@ class SimpleSynchronousEntry { |
| int InitializeForCreate(SimpleEntryStat* out_entry_stat); |
| // Allocates and fills a buffer with stream 0 data in |stream_0_data|, then |
| - // checks its crc32. |
| + // checks its crc32. May also optionally read in |stream_1_data| and its |
| + // crc, but might decide not to. |
| int ReadAndValidateStream0( |
| int file_size, |
| SimpleEntryStat* out_entry_stat, |
| scoped_refptr<net::GrowableIOBuffer>* stream_0_data, |
| - uint32_t* out_stream_0_crc32); |
| - |
| - int GetEOFRecordData(int index, |
| + uint32_t* out_stream_0_crc32, |
| + scoped_refptr<net::GrowableIOBuffer>* stream_1_data, |
| + uint32_t* out_stream_1_crc32); |
| + |
| + // Reads the EOF record for stream |stream_index| from the appropriate file, |
| + // or in memory prefetched version in [prefetch_buf, prefetch_buf + file_size) |
| + // using |entry_stat| for layout info, and putting result into |
| + // |*eof_record|. Sanity-checks the result. |
| + // Returns net status, and records any failures to UMA. |
| + // |
| + // Note that non-null |prefetch_buf| may only be specified if stream_index is |
| + // 0 or 1. |
| + int GetEOFRecordData(char* prefetch_buf, |
| + int file_size, |
| + int stream_index, |
| const SimpleEntryStat& entry_stat, |
| - bool* out_has_crc32, |
| - bool* out_has_key_sha256, |
| - uint32_t* out_crc32, |
| - int32_t* out_data_size) const; |
| + SimpleFileEOF* eof_record); |
| + |
| + // Reads either from |prefetch_buf| --- if that's not null --- or files_[0]. |
| + // Range-checks all the in-memory reads. |
| + bool ReadFromFileOrPrefetched(char* prefetch_buf, |
| + int file_size, |
| + int offset, |
| + int size, |
| + char* dest); |
| + |
| + // Extracts out the payload of stream |stream_index|, reading either from |
| + // [prefetch_buf, prefetch_buf + file_size), if |prefetch_buf| is non-null, |
| + // or the file. |entry_stat| will be used to determine file layout, though |
| + // |extra_size| additional bytes will be read past the stream payload end. |
| + // |
| + // |*stream_data| will be pointed to a fresh buffer with the results, |
| + // and |*out_crc32| will get the checksum, which will be verified against |
| + // |eof_record|. |
| + int PreReadStreamPayload(char* prefetch_buf, |
| + int file_size, |
| + int stream_index, |
| + int extra_size, |
| + const SimpleEntryStat& entry_stat, |
| + const SimpleFileEOF& eof_record, |
| + scoped_refptr<net::GrowableIOBuffer>* stream_data, |
| + uint32_t* out_crc32); |
| + |
| void Doom() const; |
| // Opens the sparse data file and scans it if it exists. |