| Index: net/disk_cache/block_files.h
|
| ===================================================================
|
| --- net/disk_cache/block_files.h (revision 232523)
|
| +++ net/disk_cache/block_files.h (working copy)
|
| @@ -74,9 +74,6 @@
|
| int FileId() const;
|
| int NextFileId() const;
|
|
|
| - // Returns the size of the wrapped structure (BlockFileHeader).
|
| - int Size() const;
|
| -
|
| // Returns a pointer to the underlying BlockFileHeader.
|
| // TODO(rvargas): This may be removed with the support for V2.
|
| BlockFileHeader* Header();
|
| @@ -95,8 +92,11 @@
|
|
|
| // Performs the object initialization. create_files indicates if the backing
|
| // files should be created or just open.
|
| - bool Init(bool create_files);
|
| + bool Init(bool create_files, int num_files);
|
|
|
| + // Returns the allocation bitmaps for all the files managed by this object.
|
| + void GetBitmaps(int num_files, BlockFilesBitmaps* bitmaps);
|
| +
|
| // Returns the file that stores a given address.
|
| MappedFile* GetFile(Addr address);
|
|
|
| @@ -121,13 +121,16 @@
|
| // This method is only intended for debugging.
|
| bool IsValid(Addr address);
|
|
|
| + // Increments the size of files very slowly.
|
| + void UseSmallSizeIncrementsForTest() { small_steps_ = true; }
|
| +
|
| private:
|
| // Set force to true to overwrite the file if it exists.
|
| bool CreateBlockFile(int index, FileType file_type, bool force);
|
| bool OpenBlockFile(int index);
|
|
|
| // Attemp to grow this file. Fails if the file cannot be extended anymore.
|
| - bool GrowBlockFile(MappedFile* file, BlockFileHeader* header);
|
| + bool GrowBlockFile(BlockFileHeader* header);
|
|
|
| // Returns the appropriate file to use for a new block.
|
| MappedFile* FileForNewBlock(FileType block_type, int block_count);
|
| @@ -135,25 +138,40 @@
|
| // Returns the next block file on this chain, creating new files if needed.
|
| MappedFile* NextFile(MappedFile* file);
|
|
|
| + // Returns the file index that stores a given address, or -1 on failure.
|
| + int GetFileIndex(Addr address);
|
| +
|
| + // Returns the header file that stores a given address.
|
| + MappedFile* GetFileHeader(Addr address);
|
| +
|
| // Creates an empty block file and returns its index.
|
| int CreateNextBlockFile(FileType block_type);
|
|
|
| // Removes a chained block file that is now empty.
|
| bool RemoveEmptyFile(FileType block_type);
|
|
|
| + bool PreallocateSpace(FileType block_type);
|
| +
|
| // Restores the header of a potentially inconsistent file.
|
| - bool FixBlockFileHeader(MappedFile* file);
|
| + bool FixBlockFileHeader(int index);//pass BlockHeader instead.
|
|
|
| // Retrieves stats for the given file index.
|
| void GetFileStats(int index, int* used_count, int* load);
|
|
|
| - // Returns the filename for a given file index.
|
| - base::FilePath Name(int index);
|
| + // Returns the filename for the header section, given a file index.
|
| + base::FilePath HeaderName(int index);
|
|
|
| + // Returns the filename for the data portion, given a file index.
|
| + base::FilePath DataName(int index);
|
| +
|
| bool init_;
|
| + bool small_steps_;
|
| + int data_offset_; // Zero for V3.
|
| char* zero_buffer_; // Buffer to speed-up cleaning deleted entries.
|
| base::FilePath path_; // Path to the backing folder.
|
| - std::vector<MappedFile*> block_files_; // The actual files.
|
| + std::vector<MappedFile*> block_headers_; // The block file headers.
|
| + std::vector<MappedFile*> block_data_; // The user data (if not stored with
|
| + // the header).
|
| scoped_ptr<base::ThreadChecker> thread_checker_;
|
|
|
| FRIEND_TEST_ALL_PREFIXES(DiskCacheTest, BlockFiles_ZeroSizeFile);
|
|
|