| 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;
|
| 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.
|
|
|