Chromium Code Reviews| 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 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 147 void GDataCacheMetadataMap::RemoveFromCache(const std::string& resource_id) { | 147 void GDataCacheMetadataMap::RemoveFromCache(const std::string& resource_id) { |
| 148 AssertOnSequencedWorkerPool(); | 148 AssertOnSequencedWorkerPool(); |
| 149 | 149 |
| 150 CacheMap::iterator iter = cache_map_.find(resource_id); | 150 CacheMap::iterator iter = cache_map_.find(resource_id); |
| 151 if (iter != cache_map_.end()) { | 151 if (iter != cache_map_.end()) { |
| 152 // Delete the CacheEntry and remove it from the map. | 152 // Delete the CacheEntry and remove it from the map. |
| 153 cache_map_.erase(iter); | 153 cache_map_.erase(iter); |
| 154 } | 154 } |
| 155 } | 155 } |
| 156 | 156 |
| 157 scoped_ptr<GDataCache::CacheEntry> GDataCacheMetadataMap::GetCacheEntry( | 157 bool GDataCacheMetadataMap::GetCacheEntry(const std::string& resource_id, |
| 158 const std::string& resource_id, | 158 const std::string& md5, |
| 159 const std::string& md5) { | 159 GDataCache::CacheEntry* entry) { |
|
satorux1
2012/06/20 15:29:23
add DCHECK(entry); ?
hashimoto
2012/07/11 12:01:56
Done.
| |
| 160 AssertOnSequencedWorkerPool(); | 160 AssertOnSequencedWorkerPool(); |
| 161 | 161 |
| 162 CacheMap::iterator iter = cache_map_.find(resource_id); | 162 CacheMap::iterator iter = cache_map_.find(resource_id); |
| 163 if (iter == cache_map_.end()) { | 163 if (iter == cache_map_.end()) { |
| 164 DVLOG(1) << "Can't find " << resource_id << " in cache map"; | 164 DVLOG(1) << "Can't find " << resource_id << " in cache map"; |
| 165 return scoped_ptr<GDataCache::CacheEntry>(); | 165 return false; |
| 166 } | 166 } |
| 167 | 167 |
| 168 scoped_ptr<GDataCache::CacheEntry> cache_entry( | 168 GDataCache::CacheEntry cache_entry(iter->second); |
|
satorux1
2012/06/20 15:29:23
*entry = iter->second ? then, you don't have to co
hashimoto
2012/06/20 15:38:35
I'd like to keep this copying code since I think i
satorux1
2012/06/20 15:41:20
Good point. Then, you might want to make it a cons
hashimoto
2012/06/20 15:45:30
Oh, I thought CacheEntry(iter->second) was doing s
hashimoto
2012/07/11 12:01:56
Done.
| |
| 169 new GDataCache::CacheEntry(iter->second)); | |
| 170 | 169 |
| 171 if (!CheckIfMd5Matches(md5, *cache_entry)) { | 170 if (!CheckIfMd5Matches(md5, cache_entry)) { |
| 172 DVLOG(1) << "Non-matching md5: want=" << md5 | 171 DVLOG(1) << "Non-matching md5: want=" << md5 |
| 173 << ", found=[res_id=" << resource_id | 172 << ", found=[res_id=" << resource_id |
| 174 << ", " << cache_entry->ToString() | 173 << ", " << cache_entry.ToString() |
| 175 << "]"; | 174 << "]"; |
| 176 return scoped_ptr<GDataCache::CacheEntry>(); | 175 return false; |
| 177 } | 176 } |
| 178 | 177 |
| 179 DVLOG(1) << "Found entry for res_id=" << resource_id | 178 DVLOG(1) << "Found entry for res_id=" << resource_id |
| 180 << ", " << cache_entry->ToString(); | 179 << ", " << cache_entry.ToString(); |
| 181 | 180 |
| 182 return cache_entry.Pass(); | 181 *entry = cache_entry; |
| 182 return true; | |
| 183 } | 183 } |
| 184 | 184 |
| 185 void GDataCacheMetadataMap::RemoveTemporaryFiles() { | 185 void GDataCacheMetadataMap::RemoveTemporaryFiles() { |
| 186 AssertOnSequencedWorkerPool(); | 186 AssertOnSequencedWorkerPool(); |
| 187 | 187 |
| 188 CacheMap::iterator iter = cache_map_.begin(); | 188 CacheMap::iterator iter = cache_map_.begin(); |
| 189 while (iter != cache_map_.end()) { | 189 while (iter != cache_map_.end()) { |
| 190 if (iter->second.sub_dir_type == GDataCache::CACHE_TYPE_TMP) { | 190 if (iter->second.sub_dir_type == GDataCache::CACHE_TYPE_TMP) { |
| 191 // Post-increment the iterator to avoid iterator invalidation. | 191 // Post-increment the iterator to avoid iterator invalidation. |
| 192 cache_map_.erase(iter++); | 192 cache_map_.erase(iter++); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 287 // If the MD5 matching is not requested, don't check MD5. | 287 // If the MD5 matching is not requested, don't check MD5. |
| 288 return true; | 288 return true; |
| 289 } else if (md5 == cache_entry.md5) { | 289 } else if (md5 == cache_entry.md5) { |
| 290 // Otherwise, compare the MD5. | 290 // Otherwise, compare the MD5. |
| 291 return true; | 291 return true; |
| 292 } | 292 } |
| 293 return false; | 293 return false; |
| 294 } | 294 } |
| 295 | 295 |
| 296 } // namespace gdata | 296 } // namespace gdata |
| OLD | NEW |