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 #include "chrome/browser/chromeos/gdata/gdata_cache_metadata.h" | 5 #include "chrome/browser/chromeos/gdata/gdata_cache_metadata.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "chrome/browser/chromeos/gdata/gdata_util.h" | 8 #include "chrome/browser/chromeos/gdata/gdata_util.h" |
9 | 9 |
10 namespace gdata { | 10 namespace gdata { |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 GDataCache::CACHE_TYPE_OUTGOING, | 176 GDataCache::CACHE_TYPE_OUTGOING, |
177 &cache_map_, | 177 &cache_map_, |
178 &outgoing_file_map); | 178 &outgoing_file_map); |
179 | 179 |
180 RemoveInvalidFilesFromPersistentDirectory(persistent_file_map, | 180 RemoveInvalidFilesFromPersistentDirectory(persistent_file_map, |
181 outgoing_file_map, | 181 outgoing_file_map, |
182 &cache_map_); | 182 &cache_map_); |
183 DVLOG(1) << "Directory scan finished"; | 183 DVLOG(1) << "Directory scan finished"; |
184 } | 184 } |
185 | 185 |
186 void GDataCacheMetadataMap::UpdateCache(const std::string& resource_id, | 186 void GDataCacheMetadataMap::UpdateCache( |
187 const std::string& md5, | 187 const std::string& resource_id, |
188 int cache_state) { | 188 const GDataCache::CacheEntry& cache_entry) { |
189 AssertOnSequencedWorkerPool(); | 189 AssertOnSequencedWorkerPool(); |
190 | 190 |
191 CacheMap::iterator iter = cache_map_.find(resource_id); | 191 CacheMap::iterator iter = cache_map_.find(resource_id); |
192 if (iter == cache_map_.end()) { // New resource, create new entry. | 192 if (iter == cache_map_.end()) { // New resource, create new entry. |
193 // Makes no sense to create new entry if cache state is NONE. | 193 // Makes no sense to create new entry if cache state is NONE. |
194 DCHECK(cache_state != GDataCache::CACHE_STATE_NONE); | 194 DCHECK(cache_entry.cache_state != GDataCache::CACHE_STATE_NONE); |
195 if (cache_state != GDataCache::CACHE_STATE_NONE) { | 195 if (cache_entry.cache_state != GDataCache::CACHE_STATE_NONE) { |
196 GDataCache::CacheEntry cache_entry(md5, cache_state); | |
197 cache_map_.insert(std::make_pair(resource_id, cache_entry)); | 196 cache_map_.insert(std::make_pair(resource_id, cache_entry)); |
198 DVLOG(1) << "Added res_id=" << resource_id | 197 DVLOG(1) << "Added res_id=" << resource_id |
199 << ", " << cache_entry.ToString(); | 198 << ", " << cache_entry.ToString(); |
200 } | 199 } |
201 } else { // Resource exists. | 200 } else { // Resource exists. |
202 // If cache state is NONE, delete entry from cache map. | 201 // If cache state is NONE, delete entry from cache map. |
203 if (cache_state == GDataCache::CACHE_STATE_NONE) { | 202 if (cache_entry.cache_state == GDataCache::CACHE_STATE_NONE) { |
204 DVLOG(1) << "Deleting res_id=" << resource_id | 203 DVLOG(1) << "Deleting res_id=" << resource_id |
205 << ", " << iter->second.ToString(); | 204 << ", " << iter->second.ToString(); |
206 cache_map_.erase(iter); | 205 cache_map_.erase(iter); |
207 } else { // Otherwise, update entry in cache map. | 206 } else { // Otherwise, update entry in cache map. |
208 iter->second.md5 = md5; | 207 iter->second.md5 = cache_entry.md5; |
209 iter->second.cache_state = cache_state; | 208 iter->second.cache_state = cache_entry.cache_state; |
210 DVLOG(1) << "Updated res_id=" << resource_id | 209 DVLOG(1) << "Updated res_id=" << resource_id |
211 << ", " << iter->second.ToString(); | 210 << ", " << iter->second.ToString(); |
212 } | 211 } |
213 } | 212 } |
214 } | 213 } |
215 | 214 |
216 void GDataCacheMetadataMap::RemoveFromCache(const std::string& resource_id) { | 215 void GDataCacheMetadataMap::RemoveFromCache(const std::string& resource_id) { |
217 AssertOnSequencedWorkerPool(); | 216 AssertOnSequencedWorkerPool(); |
218 | 217 |
219 CacheMap::iterator iter = cache_map_.find(resource_id); | 218 CacheMap::iterator iter = cache_map_.find(resource_id); |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 // If the MD5 matching is not requested, don't check MD5. | 407 // If the MD5 matching is not requested, don't check MD5. |
409 return true; | 408 return true; |
410 } else if (md5 == cache_entry.md5) { | 409 } else if (md5 == cache_entry.md5) { |
411 // Otherwise, compare the MD5. | 410 // Otherwise, compare the MD5. |
412 return true; | 411 return true; |
413 } | 412 } |
414 return false; | 413 return false; |
415 } | 414 } |
416 | 415 |
417 } // namespace gdata | 416 } // namespace gdata |
OLD | NEW |