| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef NET_DISK_CACHE_BLOCKFILE_ENTRY_IMPL_V3_H_ | 5 #ifndef NET_DISK_CACHE_BLOCKFILE_ENTRY_IMPL_V3_H_ |
| 6 #define NET_DISK_CACHE_BLOCKFILE_ENTRY_IMPL_V3_H_ | 6 #define NET_DISK_CACHE_BLOCKFILE_ENTRY_IMPL_V3_H_ |
| 7 | 7 |
| 8 #include <stdint.h> |
| 9 |
| 8 #include <string> | 10 #include <string> |
| 9 | 11 |
| 10 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 11 #include "net/disk_cache/blockfile/disk_format_v3.h" | 13 #include "net/disk_cache/blockfile/disk_format_v3.h" |
| 12 #include "net/disk_cache/blockfile/storage_block.h" | 14 #include "net/disk_cache/blockfile/storage_block.h" |
| 13 #include "net/disk_cache/disk_cache.h" | 15 #include "net/disk_cache/disk_cache.h" |
| 14 #include "net/log/net_log.h" | 16 #include "net/log/net_log.h" |
| 15 | 17 |
| 16 namespace disk_cache { | 18 namespace disk_cache { |
| 17 | 19 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 33 kSparseWrite, | 35 kSparseWrite, |
| 34 kAsyncIO, | 36 kAsyncIO, |
| 35 kReadAsync1, | 37 kReadAsync1, |
| 36 kWriteAsync1 | 38 kWriteAsync1 |
| 37 }; | 39 }; |
| 38 | 40 |
| 39 EntryImplV3(BackendImplV3* backend, Addr address, bool read_only); | 41 EntryImplV3(BackendImplV3* backend, Addr address, bool read_only); |
| 40 | 42 |
| 41 // Performs the initialization of a EntryImplV3 that will be added to the | 43 // Performs the initialization of a EntryImplV3 that will be added to the |
| 42 // cache. | 44 // cache. |
| 43 bool CreateEntry(Addr node_address, const std::string& key, uint32 hash); | 45 bool CreateEntry(Addr node_address, const std::string& key, uint32_t hash); |
| 44 | 46 |
| 45 uint32 GetHash(); | 47 uint32_t GetHash(); |
| 46 | 48 |
| 47 uint32 GetHash() const; | 49 uint32_t GetHash() const; |
| 48 Addr GetAddress() const; | 50 Addr GetAddress() const; |
| 49 int GetReuseCounter() const; | 51 int GetReuseCounter() const; |
| 50 void SetReuseCounter(int count); | 52 void SetReuseCounter(int count); |
| 51 int GetRefetchCounter() const; | 53 int GetRefetchCounter() const; |
| 52 void SetRefetchCounter(int count); | 54 void SetRefetchCounter(int count); |
| 53 | 55 |
| 54 // Returns true if this entry matches the lookup arguments. | 56 // Returns true if this entry matches the lookup arguments. |
| 55 bool IsSameEntry(const std::string& key, uint32 hash); | 57 bool IsSameEntry(const std::string& key, uint32_t hash); |
| 56 | 58 |
| 57 // Permamently destroys this entry. | 59 // Permamently destroys this entry. |
| 58 void InternalDoom(); | 60 void InternalDoom(); |
| 59 | 61 |
| 60 // Returns false if the entry is clearly invalid. | 62 // Returns false if the entry is clearly invalid. |
| 61 bool SanityCheck(); | 63 bool SanityCheck(); |
| 62 bool DataSanityCheck(); | 64 bool DataSanityCheck(); |
| 63 | 65 |
| 64 // Attempts to make this entry reachable though the key. | 66 // Attempts to make this entry reachable though the key. |
| 65 void FixForDelete(); | 67 void FixForDelete(); |
| 66 | 68 |
| 67 // Set the access times for this entry. This method provides support for | 69 // Set the access times for this entry. This method provides support for |
| 68 // the upgrade tool. | 70 // the upgrade tool. |
| 69 void SetTimes(base::Time last_used, base::Time last_modified); | 71 void SetTimes(base::Time last_used, base::Time last_modified); |
| 70 | 72 |
| 71 // Logs a begin event and enables logging for the EntryImplV3. Will also cause | 73 // Logs a begin event and enables logging for the EntryImplV3. Will also cause |
| 72 // an end event to be logged on destruction. The EntryImplV3 must have its key | 74 // an end event to be logged on destruction. The EntryImplV3 must have its key |
| 73 // initialized before this is called. |created| is true if the Entry was | 75 // initialized before this is called. |created| is true if the Entry was |
| 74 // created rather than opened. | 76 // created rather than opened. |
| 75 void BeginLogging(net::NetLog* net_log, bool created); | 77 void BeginLogging(net::NetLog* net_log, bool created); |
| 76 | 78 |
| 77 const net::BoundNetLog& net_log() const; | 79 const net::BoundNetLog& net_log() const; |
| 78 | 80 |
| 79 // Entry interface. | 81 // Entry interface. |
| 80 void Doom() override; | 82 void Doom() override; |
| 81 void Close() override; | 83 void Close() override; |
| 82 std::string GetKey() const override; | 84 std::string GetKey() const override; |
| 83 base::Time GetLastUsed() const override; | 85 base::Time GetLastUsed() const override; |
| 84 base::Time GetLastModified() const override; | 86 base::Time GetLastModified() const override; |
| 85 int32 GetDataSize(int index) const override; | 87 int32_t GetDataSize(int index) const override; |
| 86 int ReadData(int index, | 88 int ReadData(int index, |
| 87 int offset, | 89 int offset, |
| 88 IOBuffer* buf, | 90 IOBuffer* buf, |
| 89 int buf_len, | 91 int buf_len, |
| 90 const CompletionCallback& callback) override; | 92 const CompletionCallback& callback) override; |
| 91 int WriteData(int index, | 93 int WriteData(int index, |
| 92 int offset, | 94 int offset, |
| 93 IOBuffer* buf, | 95 IOBuffer* buf, |
| 94 int buf_len, | 96 int buf_len, |
| 95 const CompletionCallback& callback, | 97 const CompletionCallback& callback, |
| 96 bool truncate) override; | 98 bool truncate) override; |
| 97 int ReadSparseData(int64 offset, | 99 int ReadSparseData(int64_t offset, |
| 98 IOBuffer* buf, | 100 IOBuffer* buf, |
| 99 int buf_len, | 101 int buf_len, |
| 100 const CompletionCallback& callback) override; | 102 const CompletionCallback& callback) override; |
| 101 int WriteSparseData(int64 offset, | 103 int WriteSparseData(int64_t offset, |
| 102 IOBuffer* buf, | 104 IOBuffer* buf, |
| 103 int buf_len, | 105 int buf_len, |
| 104 const CompletionCallback& callback) override; | 106 const CompletionCallback& callback) override; |
| 105 int GetAvailableRange(int64 offset, | 107 int GetAvailableRange(int64_t offset, |
| 106 int len, | 108 int len, |
| 107 int64* start, | 109 int64_t* start, |
| 108 const CompletionCallback& callback) override; | 110 const CompletionCallback& callback) override; |
| 109 bool CouldBeSparse() const override; | 111 bool CouldBeSparse() const override; |
| 110 void CancelSparseIO() override; | 112 void CancelSparseIO() override; |
| 111 int ReadyForSparseIO(const CompletionCallback& callback) override; | 113 int ReadyForSparseIO(const CompletionCallback& callback) override; |
| 112 | 114 |
| 113 private: | 115 private: |
| 114 enum { | 116 enum { |
| 115 kNumStreams = 3 | 117 kNumStreams = 3 |
| 116 }; | 118 }; |
| 117 class UserBuffer; | 119 class UserBuffer; |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 // is determined based on the current data length and |min_len|. | 171 // is determined based on the current data length and |min_len|. |
| 170 bool Flush(int index, int min_len); | 172 bool Flush(int index, int min_len); |
| 171 | 173 |
| 172 // Updates the size of a given data stream. | 174 // Updates the size of a given data stream. |
| 173 void UpdateSize(int index, int old_size, int new_size); | 175 void UpdateSize(int index, int old_size, int new_size); |
| 174 | 176 |
| 175 // Initializes the sparse control object. Returns a net error code. | 177 // Initializes the sparse control object. Returns a net error code. |
| 176 int InitSparseData(); | 178 int InitSparseData(); |
| 177 | 179 |
| 178 // Adds the provided |flags| to the current EntryFlags for this entry. | 180 // Adds the provided |flags| to the current EntryFlags for this entry. |
| 179 void SetEntryFlags(uint32 flags); | 181 void SetEntryFlags(uint32_t flags); |
| 180 | 182 |
| 181 // Returns the current EntryFlags for this entry. | 183 // Returns the current EntryFlags for this entry. |
| 182 uint32 GetEntryFlags(); | 184 uint32_t GetEntryFlags(); |
| 183 | 185 |
| 184 // Gets the data stored at the given index. If the information is in memory, | 186 // Gets the data stored at the given index. If the information is in memory, |
| 185 // a buffer will be allocated and the data will be copied to it (the caller | 187 // a buffer will be allocated and the data will be copied to it (the caller |
| 186 // can find out the size of the buffer before making this call). Otherwise, | 188 // can find out the size of the buffer before making this call). Otherwise, |
| 187 // the cache address of the data will be returned, and that address will be | 189 // the cache address of the data will be returned, and that address will be |
| 188 // removed from the regular book keeping of this entry so the caller is | 190 // removed from the regular book keeping of this entry so the caller is |
| 189 // responsible for deleting the block (or file) from the backing store at some | 191 // responsible for deleting the block (or file) from the backing store at some |
| 190 // point; there is no need to report any storage-size change, only to do the | 192 // point; there is no need to report any storage-size change, only to do the |
| 191 // actual cleanup. | 193 // actual cleanup. |
| 192 void GetData(int index, char** buffer, Addr* address); | 194 void GetData(int index, char** buffer, Addr* address); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 211 // scoped_ptr<SparseControlV3> sparse_; // Support for sparse entries. | 213 // scoped_ptr<SparseControlV3> sparse_; // Support for sparse entries. |
| 212 | 214 |
| 213 net::BoundNetLog net_log_; | 215 net::BoundNetLog net_log_; |
| 214 | 216 |
| 215 DISALLOW_COPY_AND_ASSIGN(EntryImplV3); | 217 DISALLOW_COPY_AND_ASSIGN(EntryImplV3); |
| 216 }; | 218 }; |
| 217 | 219 |
| 218 } // namespace disk_cache | 220 } // namespace disk_cache |
| 219 | 221 |
| 220 #endif // NET_DISK_CACHE_BLOCKFILE_ENTRY_IMPL_V3_H_ | 222 #endif // NET_DISK_CACHE_BLOCKFILE_ENTRY_IMPL_V3_H_ |
| OLD | NEW |