OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_STORE_FILE_H_ | 5 #ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_STORE_FILE_H_ |
6 #define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_STORE_FILE_H_ | 6 #define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_STORE_FILE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 public: | 117 public: |
118 SafeBrowsingStoreFile(); | 118 SafeBrowsingStoreFile(); |
119 virtual ~SafeBrowsingStoreFile(); | 119 virtual ~SafeBrowsingStoreFile(); |
120 | 120 |
121 virtual void Init(const FilePath& filename, | 121 virtual void Init(const FilePath& filename, |
122 Callback0::Type* corruption_callback); | 122 Callback0::Type* corruption_callback); |
123 | 123 |
124 // Delete any on-disk files, including the permanent storage. | 124 // Delete any on-disk files, including the permanent storage. |
125 virtual bool Delete(); | 125 virtual bool Delete(); |
126 | 126 |
127 virtual bool BeginChunk() { | 127 virtual bool BeginChunk(); |
128 return ClearChunkBuffers(); | 128 virtual bool WriteAddPrefix(int32 chunk_id, SBPrefix prefix); |
129 } | |
130 virtual bool WriteAddPrefix(int32 chunk_id, SBPrefix prefix) { | |
131 add_prefixes_.push_back(SBAddPrefix(chunk_id, prefix)); | |
132 return true; | |
133 } | |
134 virtual bool WriteAddHash(int32 chunk_id, | 129 virtual bool WriteAddHash(int32 chunk_id, |
135 base::Time receive_time, SBFullHash full_hash) { | 130 base::Time receive_time, SBFullHash full_hash); |
136 add_hashes_.push_back(SBAddFullHash(chunk_id, receive_time, full_hash)); | |
137 return true; | |
138 } | |
139 virtual bool WriteSubPrefix(int32 chunk_id, | 131 virtual bool WriteSubPrefix(int32 chunk_id, |
140 int32 add_chunk_id, SBPrefix prefix) { | 132 int32 add_chunk_id, SBPrefix prefix); |
141 sub_prefixes_.push_back(SBSubPrefix(chunk_id, add_chunk_id, prefix)); | |
142 return true; | |
143 } | |
144 virtual bool WriteSubHash(int32 chunk_id, int32 add_chunk_id, | 133 virtual bool WriteSubHash(int32 chunk_id, int32 add_chunk_id, |
145 SBFullHash full_hash) { | 134 SBFullHash full_hash); |
146 sub_hashes_.push_back(SBSubFullHash(chunk_id, add_chunk_id, full_hash)); | |
147 return true; | |
148 } | |
149 virtual bool FinishChunk(); | 135 virtual bool FinishChunk(); |
150 | 136 |
151 virtual bool BeginUpdate(); | 137 virtual bool BeginUpdate(); |
152 virtual bool DoUpdate(const std::vector<SBAddFullHash>& pending_adds, | 138 virtual bool DoUpdate(const std::vector<SBAddFullHash>& pending_adds, |
153 std::vector<SBAddPrefix>* add_prefixes_result, | 139 std::vector<SBAddPrefix>* add_prefixes_result, |
154 std::vector<SBAddFullHash>* add_full_hashes_result); | 140 std::vector<SBAddFullHash>* add_full_hashes_result); |
155 virtual bool FinishUpdate(const std::vector<SBAddFullHash>& pending_adds, | 141 virtual bool FinishUpdate(const std::vector<SBAddFullHash>& pending_adds, |
156 std::vector<SBAddPrefix>* add_prefixes_result, | 142 std::vector<SBAddPrefix>* add_prefixes_result, |
157 std::vector<SBAddFullHash>* add_full_hashes_result); | 143 std::vector<SBAddFullHash>* add_full_hashes_result); |
158 virtual bool CancelUpdate(); | 144 virtual bool CancelUpdate(); |
159 | 145 |
160 virtual void SetAddChunk(int32 chunk_id) { | 146 virtual void SetAddChunk(int32 chunk_id); |
161 add_chunks_cache_.insert(chunk_id); | 147 virtual bool CheckAddChunk(int32 chunk_id); |
162 } | 148 virtual void GetAddChunks(std::vector<int32>* out); |
163 virtual bool CheckAddChunk(int32 chunk_id) { | 149 virtual void SetSubChunk(int32 chunk_id); |
164 return add_chunks_cache_.count(chunk_id) > 0; | 150 virtual bool CheckSubChunk(int32 chunk_id); |
165 } | 151 virtual void GetSubChunks(std::vector<int32>* out); |
166 virtual void GetAddChunks(std::vector<int32>* out) { | |
167 out->clear(); | |
168 out->insert(out->end(), add_chunks_cache_.begin(), add_chunks_cache_.end()); | |
169 } | |
170 virtual void SetSubChunk(int32 chunk_id) { | |
171 sub_chunks_cache_.insert(chunk_id); | |
172 } | |
173 virtual bool CheckSubChunk(int32 chunk_id) { | |
174 return sub_chunks_cache_.count(chunk_id) > 0; | |
175 } | |
176 virtual void GetSubChunks(std::vector<int32>* out) { | |
177 out->clear(); | |
178 out->insert(out->end(), sub_chunks_cache_.begin(), sub_chunks_cache_.end()); | |
179 } | |
180 | 152 |
181 virtual void DeleteAddChunk(int32 chunk_id) { | 153 virtual void DeleteAddChunk(int32 chunk_id); |
182 add_del_cache_.insert(chunk_id); | 154 virtual void DeleteSubChunk(int32 chunk_id); |
183 } | |
184 virtual void DeleteSubChunk(int32 chunk_id) { | |
185 sub_del_cache_.insert(chunk_id); | |
186 } | |
187 | 155 |
188 // Returns the name of the temporary file used to buffer data for | 156 // Returns the name of the temporary file used to buffer data for |
189 // |filename|. Exported for unit tests. | 157 // |filename|. Exported for unit tests. |
190 static const FilePath TemporaryFileForFilename(const FilePath& filename) { | 158 static const FilePath TemporaryFileForFilename(const FilePath& filename) { |
191 return FilePath(filename.value() + FILE_PATH_LITERAL("_new")); | 159 return FilePath(filename.value() + FILE_PATH_LITERAL("_new")); |
192 } | 160 } |
193 | 161 |
194 private: | 162 private: |
195 // Close all files and clear all buffers. | 163 // Close all files and clear all buffers. |
196 bool Close(); | 164 bool Close(); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 // slower than plain set<>. | 232 // slower than plain set<>. |
265 base::hash_set<int32> add_del_cache_; | 233 base::hash_set<int32> add_del_cache_; |
266 base::hash_set<int32> sub_del_cache_; | 234 base::hash_set<int32> sub_del_cache_; |
267 | 235 |
268 scoped_ptr<Callback0::Type> corruption_callback_; | 236 scoped_ptr<Callback0::Type> corruption_callback_; |
269 | 237 |
270 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingStoreFile); | 238 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingStoreFile); |
271 }; | 239 }; |
272 | 240 |
273 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_STORE_FILE_H_ | 241 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_STORE_FILE_H_ |
OLD | NEW |