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

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

Issue 1535363003: Switch to standard integer types in net/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: stddef Created 5 years 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
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 <stdint.h> 8 #include <stdint.h>
9
9 #include <string> 10 #include <string>
10 #include <vector> 11 #include <vector>
11 12
12 #include "base/basictypes.h"
13 #include "base/containers/hash_tables.h" 13 #include "base/containers/hash_tables.h"
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/gtest_prod_util.h" 15 #include "base/gtest_prod_util.h"
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "base/macros.h"
17 #include "base/memory/scoped_ptr.h" 18 #include "base/memory/scoped_ptr.h"
18 #include "base/pickle.h" 19 #include "base/pickle.h"
19 #include "net/base/cache_type.h" 20 #include "net/base/cache_type.h"
20 #include "net/base/net_export.h" 21 #include "net/base/net_export.h"
21 #include "net/disk_cache/simple/simple_index.h" 22 #include "net/disk_cache/simple/simple_index.h"
22 23
23 namespace base { 24 namespace base {
24 class SingleThreadTaskRunner; 25 class SingleThreadTaskRunner;
25 class TaskRunner; 26 class TaskRunner;
26 } 27 }
27 28
28 namespace disk_cache { 29 namespace disk_cache {
29 30
30 const uint64 kSimpleIndexMagicNumber = UINT64_C(0x656e74657220796f); 31 const uint64_t kSimpleIndexMagicNumber = UINT64_C(0x656e74657220796f);
31 32
32 struct NET_EXPORT_PRIVATE SimpleIndexLoadResult { 33 struct NET_EXPORT_PRIVATE SimpleIndexLoadResult {
33 SimpleIndexLoadResult(); 34 SimpleIndexLoadResult();
34 ~SimpleIndexLoadResult(); 35 ~SimpleIndexLoadResult();
35 void Reset(); 36 void Reset();
36 37
37 bool did_load; 38 bool did_load;
38 SimpleIndex::EntrySet entries; 39 SimpleIndex::EntrySet entries;
39 bool flush_required; 40 bool flush_required;
40 }; 41 };
41 42
42 // Simple Index File format is a pickle serialized data of IndexMetadata and 43 // Simple Index File format is a pickle serialized data of IndexMetadata and
43 // EntryMetadata objects. The file format is as follows: one instance of 44 // EntryMetadata objects. The file format is as follows: one instance of
44 // serialized |IndexMetadata| followed serialized |EntryMetadata| entries 45 // serialized |IndexMetadata| followed serialized |EntryMetadata| entries
45 // repeated |number_of_entries| amount of times. To know more about the format, 46 // repeated |number_of_entries| amount of times. To know more about the format,
46 // see SimpleIndexFile::Serialize() and SeeSimpleIndexFile::LoadFromDisk() 47 // see SimpleIndexFile::Serialize() and SeeSimpleIndexFile::LoadFromDisk()
47 // methods. 48 // methods.
48 // 49 //
49 // The non-static methods must run on the IO thread. All the real 50 // The non-static methods must run on the IO thread. All the real
50 // work is done in the static methods, which are run on the cache thread 51 // work is done in the static methods, which are run on the cache thread
51 // or in worker threads. Synchronization between methods is the 52 // or in worker threads. Synchronization between methods is the
52 // responsibility of the caller. 53 // responsibility of the caller.
53 class NET_EXPORT_PRIVATE SimpleIndexFile { 54 class NET_EXPORT_PRIVATE SimpleIndexFile {
54 public: 55 public:
55 class NET_EXPORT_PRIVATE IndexMetadata { 56 class NET_EXPORT_PRIVATE IndexMetadata {
56 public: 57 public:
57 IndexMetadata(); 58 IndexMetadata();
58 IndexMetadata(uint64 number_of_entries, uint64 cache_size); 59 IndexMetadata(uint64_t number_of_entries, uint64_t cache_size);
59 60
60 void Serialize(base::Pickle* pickle) const; 61 void Serialize(base::Pickle* pickle) const;
61 bool Deserialize(base::PickleIterator* it); 62 bool Deserialize(base::PickleIterator* it);
62 63
63 bool CheckIndexMetadata(); 64 bool CheckIndexMetadata();
64 65
65 uint64 GetNumberOfEntries() { return number_of_entries_; } 66 uint64_t GetNumberOfEntries() { return number_of_entries_; }
66 67
67 private: 68 private:
68 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Basics); 69 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Basics);
69 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Serialize); 70 FRIEND_TEST_ALL_PREFIXES(IndexMetadataTest, Serialize);
70 71
71 uint64 magic_number_; 72 uint64_t magic_number_;
72 uint32 version_; 73 uint32_t version_;
73 uint64 number_of_entries_; 74 uint64_t number_of_entries_;
74 uint64 cache_size_; // Total cache storage size in bytes. 75 uint64_t cache_size_; // Total cache storage size in bytes.
75 }; 76 };
76 77
77 SimpleIndexFile( 78 SimpleIndexFile(
78 const scoped_refptr<base::SingleThreadTaskRunner>& cache_thread, 79 const scoped_refptr<base::SingleThreadTaskRunner>& cache_thread,
79 const scoped_refptr<base::TaskRunner>& worker_pool, 80 const scoped_refptr<base::TaskRunner>& worker_pool,
80 net::CacheType cache_type, 81 net::CacheType cache_type,
81 const base::FilePath& cache_directory); 82 const base::FilePath& cache_directory);
82 virtual ~SimpleIndexFile(); 83 virtual ~SimpleIndexFile();
83 84
84 // Get index entries based on current disk context. 85 // Get index entries based on current disk context.
85 virtual void LoadIndexEntries(base::Time cache_last_modified, 86 virtual void LoadIndexEntries(base::Time cache_last_modified,
86 const base::Closure& callback, 87 const base::Closure& callback,
87 SimpleIndexLoadResult* out_result); 88 SimpleIndexLoadResult* out_result);
88 89
89 // Write the specified set of entries to disk. 90 // Write the specified set of entries to disk.
90 virtual void WriteToDisk(const SimpleIndex::EntrySet& entry_set, 91 virtual void WriteToDisk(const SimpleIndex::EntrySet& entry_set,
91 uint64 cache_size, 92 uint64_t cache_size,
92 const base::TimeTicks& start, 93 const base::TimeTicks& start,
93 bool app_on_background, 94 bool app_on_background,
94 const base::Closure& callback); 95 const base::Closure& callback);
95 96
96 private: 97 private:
97 friend class WrappedSimpleIndexFile; 98 friend class WrappedSimpleIndexFile;
98 99
99 // Used for cache directory traversal. 100 // Used for cache directory traversal.
100 typedef base::Callback<void (const base::FilePath&)> EntryFileCallback; 101 typedef base::Callback<void (const base::FilePath&)> EntryFileCallback;
101 102
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 SimpleIndexLoadResult* out_result); 163 SimpleIndexLoadResult* out_result);
163 164
164 // Determines if an index file is stale relative to the time of last 165 // Determines if an index file is stale relative to the time of last
165 // modification of the cache directory. Obsolete, used only for a histogram to 166 // modification of the cache directory. Obsolete, used only for a histogram to
166 // compare with the new method. 167 // compare with the new method.
167 // TODO(pasko): remove this method after getting enough data. 168 // TODO(pasko): remove this method after getting enough data.
168 static bool LegacyIsIndexFileStale(base::Time cache_last_modified, 169 static bool LegacyIsIndexFileStale(base::Time cache_last_modified,
169 const base::FilePath& index_file_path); 170 const base::FilePath& index_file_path);
170 171
171 struct PickleHeader : public base::Pickle::Header { 172 struct PickleHeader : public base::Pickle::Header {
172 uint32 crc; 173 uint32_t crc;
173 }; 174 };
174 175
175 const scoped_refptr<base::SingleThreadTaskRunner> cache_thread_; 176 const scoped_refptr<base::SingleThreadTaskRunner> cache_thread_;
176 const scoped_refptr<base::TaskRunner> worker_pool_; 177 const scoped_refptr<base::TaskRunner> worker_pool_;
177 const net::CacheType cache_type_; 178 const net::CacheType cache_type_;
178 const base::FilePath cache_directory_; 179 const base::FilePath cache_directory_;
179 const base::FilePath index_file_; 180 const base::FilePath index_file_;
180 const base::FilePath temp_index_file_; 181 const base::FilePath temp_index_file_;
181 182
182 static const char kIndexDirectory[]; 183 static const char kIndexDirectory[];
183 static const char kIndexFileName[]; 184 static const char kIndexFileName[];
184 static const char kTempIndexFileName[]; 185 static const char kTempIndexFileName[];
185 186
186 DISALLOW_COPY_AND_ASSIGN(SimpleIndexFile); 187 DISALLOW_COPY_AND_ASSIGN(SimpleIndexFile);
187 }; 188 };
188 189
189 190
190 } // namespace disk_cache 191 } // namespace disk_cache
191 192
192 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_ 193 #endif // NET_DISK_CACHE_SIMPLE_SIMPLE_INDEX_FILE_H_
OLDNEW
« no previous file with comments | « net/disk_cache/simple/simple_index_delegate.h ('k') | net/disk_cache/simple/simple_index_file.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698