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

Side by Side Diff: net/disk_cache/simple/simple_index_file.h

Issue 1149113006: Move Pickle to base namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months 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_index.h ('k') | net/http/http_response_headers.h » ('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 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_ 5 #ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_
6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_ 6 #define NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 // work is done in the static methods, which are run on the cache thread 50 // work is done in the static methods, which are run on the cache thread
51 // or in worker threads. Synchronization between methods is the 51 // or in worker threads. Synchronization between methods is the
52 // responsibility of the caller. 52 // responsibility of the caller.
53 class NET_EXPORT_PRIVATE SimpleIndexFile { 53 class NET_EXPORT_PRIVATE SimpleIndexFile {
54 public: 54 public:
55 class NET_EXPORT_PRIVATE IndexMetadata { 55 class NET_EXPORT_PRIVATE IndexMetadata {
56 public: 56 public:
57 IndexMetadata(); 57 IndexMetadata();
58 IndexMetadata(uint64 number_of_entries, uint64 cache_size); 58 IndexMetadata(uint64 number_of_entries, uint64 cache_size);
59 59
60 void Serialize(Pickle* pickle) const; 60 void Serialize(base::Pickle* pickle) const;
61 bool Deserialize(PickleIterator* it); 61 bool Deserialize(base::PickleIterator* it);
62 62
63 bool CheckIndexMetadata(); 63 bool CheckIndexMetadata();
64 64
65 uint64 GetNumberOfEntries() { return number_of_entries_; } 65 uint64 GetNumberOfEntries() { return number_of_entries_; }
66 66
67 private: 67 private:
68 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Basics); 68 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Basics);
69 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Serialize); 69 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Serialize);
70 70
71 uint64 magic_number_; 71 uint64 magic_number_;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 112
113 // Load the index file from disk returning an EntrySet. 113 // Load the index file from disk returning an EntrySet.
114 static void SyncLoadFromDisk(const base::FilePath& index_filename, 114 static void SyncLoadFromDisk(const base::FilePath& index_filename,
115 base::Time* out_last_cache_seen_by_index, 115 base::Time* out_last_cache_seen_by_index,
116 SimpleIndexLoadResult* out_result); 116 SimpleIndexLoadResult* out_result);
117 117
118 // Returns a scoped_ptr for a newly allocated Pickle containing the serialized 118 // Returns a scoped_ptr for a newly allocated Pickle containing the serialized
119 // data to be written to a file. Note: the pickle is not in a consistent state 119 // data to be written to a file. Note: the pickle is not in a consistent state
120 // immediately after calling this menthod, one needs to call 120 // immediately after calling this menthod, one needs to call
121 // SerializeFinalData to make it ready to write to a file. 121 // SerializeFinalData to make it ready to write to a file.
122 static scoped_ptr<Pickle> Serialize( 122 static scoped_ptr<base::Pickle> Serialize(
123 const SimpleIndexFile::IndexMetadata& index_metadata, 123 const SimpleIndexFile::IndexMetadata& index_metadata,
124 const SimpleIndex::EntrySet& entries); 124 const SimpleIndex::EntrySet& entries);
125 125
126 // Appends cache modification time data to the serialized format. This is 126 // Appends cache modification time data to the serialized format. This is
127 // performed on a thread accessing the disk. It is not combined with the main 127 // performed on a thread accessing the disk. It is not combined with the main
128 // serialization path to avoid extra thread hops or copying the pickle to the 128 // serialization path to avoid extra thread hops or copying the pickle to the
129 // worker thread. 129 // worker thread.
130 static bool SerializeFinalData(base::Time cache_modified, Pickle* pickle); 130 static bool SerializeFinalData(base::Time cache_modified,
131 base::Pickle* pickle);
131 132
132 // Given the contents of an index file |data| of length |data_len|, returns 133 // Given the contents of an index file |data| of length |data_len|, returns
133 // the corresponding EntrySet. Returns NULL on error. 134 // the corresponding EntrySet. Returns NULL on error.
134 static void Deserialize(const char* data, int data_len, 135 static void Deserialize(const char* data, int data_len,
135 base::Time* out_cache_last_modified, 136 base::Time* out_cache_last_modified,
136 SimpleIndexLoadResult* out_result); 137 SimpleIndexLoadResult* out_result);
137 138
138 // Implemented either in simple_index_file_posix.cc or 139 // Implemented either in simple_index_file_posix.cc or
139 // simple_index_file_win.cc. base::FileEnumerator turned out to be very 140 // simple_index_file_win.cc. base::FileEnumerator turned out to be very
140 // expensive in terms of memory usage therefore it's used only on non-POSIX 141 // expensive in terms of memory usage therefore it's used only on non-POSIX
141 // environments for convenience (for now). Returns whether the traversal 142 // environments for convenience (for now). Returns whether the traversal
142 // succeeded. 143 // succeeded.
143 static bool TraverseCacheDirectory( 144 static bool TraverseCacheDirectory(
144 const base::FilePath& cache_path, 145 const base::FilePath& cache_path,
145 const EntryFileCallback& entry_file_callback); 146 const EntryFileCallback& entry_file_callback);
146 147
147 // Writes the index file to disk atomically. 148 // Writes the index file to disk atomically.
148 static void SyncWriteToDisk(net::CacheType cache_type, 149 static void SyncWriteToDisk(net::CacheType cache_type,
149 const base::FilePath& cache_directory, 150 const base::FilePath& cache_directory,
150 const base::FilePath& index_filename, 151 const base::FilePath& index_filename,
151 const base::FilePath& temp_index_filename, 152 const base::FilePath& temp_index_filename,
152 scoped_ptr<Pickle> pickle, 153 scoped_ptr<base::Pickle> pickle,
153 const base::TimeTicks& start_time, 154 const base::TimeTicks& start_time,
154 bool app_on_background); 155 bool app_on_background);
155 156
156 // Scan the index directory for entries, returning an EntrySet of all entries 157 // Scan the index directory for entries, returning an EntrySet of all entries
157 // found. 158 // found.
158 static void SyncRestoreFromDisk(const base::FilePath& cache_directory, 159 static void SyncRestoreFromDisk(const base::FilePath& cache_directory,
159 const base::FilePath& index_file_path, 160 const base::FilePath& index_file_path,
160 SimpleIndexLoadResult* out_result); 161 SimpleIndexLoadResult* out_result);
161 162
162 // Determines if an index file is stale relative to the time of last 163 // Determines if an index file is stale relative to the time of last
163 // modification of the cache directory. Obsolete, used only for a histogram to 164 // modification of the cache directory. Obsolete, used only for a histogram to
164 // compare with the new method. 165 // compare with the new method.
165 // TODO(pasko): remove this method after getting enough data. 166 // TODO(pasko): remove this method after getting enough data.
166 static bool LegacyIsIndexFileStale(base::Time cache_last_modified, 167 static bool LegacyIsIndexFileStale(base::Time cache_last_modified,
167 const base::FilePath& index_file_path); 168 const base::FilePath& index_file_path);
168 169
169 struct PickleHeader : public Pickle::Header { 170 struct PickleHeader : public base::Pickle::Header {
170 uint32 crc; 171 uint32 crc;
171 }; 172 };
172 173
173 const scoped_refptr<base::SingleThreadTaskRunner> cache_thread_; 174 const scoped_refptr<base::SingleThreadTaskRunner> cache_thread_;
174 const scoped_refptr<base::TaskRunner> worker_pool_; 175 const scoped_refptr<base::TaskRunner> worker_pool_;
175 const net::CacheType cache_type_; 176 const net::CacheType cache_type_;
176 const base::FilePath cache_directory_; 177 const base::FilePath cache_directory_;
177 const base::FilePath index_file_; 178 const base::FilePath index_file_;
178 const base::FilePath temp_index_file_; 179 const base::FilePath temp_index_file_;
179 180
180 static const char kIndexDirectory[]; 181 static const char kIndexDirectory[];
181 static const char kIndexFileName[]; 182 static const char kIndexFileName[];
182 static const char kTempIndexFileName[]; 183 static const char kTempIndexFileName[];
183 184
184 DISALLOW_COPY_AND_ASSIGN(SimpleIndexFile); 185 DISALLOW_COPY_AND_ASSIGN(SimpleIndexFile);
185 }; 186 };
186 187
187 188
188 } // namespace disk_cache 189 } // namespace disk_cache
189 190
190 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_ 191 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_
OLDNEW
« no previous file with comments | « net/disk_cache/simple/simple_index.h ('k') | net/http/http_response_headers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698