| 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 "base/metrics/histogram.h" | 5 #include "base/metrics/histogram.h" |
| 6 #include "chrome/browser/chromeos/gdata/gdata_files.h" | 6 #include "chrome/browser/chromeos/gdata/gdata_files.h" |
| 7 #include "chrome/browser/chromeos/gdata/gdata_wapi_feed_processor.h" | 7 #include "chrome/browser/chromeos/gdata/gdata_wapi_feed_processor.h" |
| 8 #include "content/public/browser/browser_thread.h" | 8 #include "content/public/browser/browser_thread.h" |
| 9 | 9 |
| 10 using content::BrowserThread; | 10 using content::BrowserThread; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 GDataWapiFeedProcessor::GDataWapiFeedProcessor( | 42 GDataWapiFeedProcessor::GDataWapiFeedProcessor( |
| 43 GDataDirectoryService* directory_service) | 43 GDataDirectoryService* directory_service) |
| 44 : directory_service_(directory_service) { | 44 : directory_service_(directory_service) { |
| 45 } | 45 } |
| 46 | 46 |
| 47 GDataWapiFeedProcessor::~GDataWapiFeedProcessor() { | 47 GDataWapiFeedProcessor::~GDataWapiFeedProcessor() { |
| 48 } | 48 } |
| 49 | 49 |
| 50 GDataFileError GDataWapiFeedProcessor::ApplyFeeds( | 50 GDataFileError GDataWapiFeedProcessor::ApplyFeeds( |
| 51 const std::vector<DocumentFeed*>& feed_list, | 51 const std::vector<DocumentFeed*>& feed_list, |
| 52 int start_changestamp, | 52 int64 start_changestamp, |
| 53 int root_feed_changestamp, | 53 int64 root_feed_changestamp, |
| 54 std::set<FilePath>* changed_dirs) { | 54 std::set<FilePath>* changed_dirs) { |
| 55 bool is_delta_feed = start_changestamp != 0; | 55 bool is_delta_feed = start_changestamp != 0; |
| 56 | 56 |
| 57 directory_service_->set_origin(FROM_SERVER); | 57 directory_service_->set_origin(FROM_SERVER); |
| 58 | 58 |
| 59 int delta_feed_changestamp = 0; | 59 int64 delta_feed_changestamp = 0; |
| 60 FeedToFileResourceMapUmaStats uma_stats; | 60 FeedToFileResourceMapUmaStats uma_stats; |
| 61 FileResourceIdMap file_map; | 61 FileResourceIdMap file_map; |
| 62 GDataFileError error = FeedToFileResourceMap(feed_list, | 62 GDataFileError error = FeedToFileResourceMap(feed_list, |
| 63 &file_map, | 63 &file_map, |
| 64 &delta_feed_changestamp, | 64 &delta_feed_changestamp, |
| 65 &uma_stats); | 65 &uma_stats); |
| 66 if (error != GDATA_FILE_OK) | 66 if (error != GDATA_FILE_OK) |
| 67 return error; | 67 return error; |
| 68 | 68 |
| 69 ApplyFeedFromFileUrlMap( | 69 ApplyFeedFromFileUrlMap( |
| (...skipping 27 matching lines...) Expand all Loading... |
| 97 const int count = iter->second; | 97 const int count = iter->second; |
| 98 for (int i = 0; i < count; ++i) { | 98 for (int i = 0; i < count; ++i) { |
| 99 UMA_HISTOGRAM_CUSTOM_ENUMERATION( | 99 UMA_HISTOGRAM_CUSTOM_ENUMERATION( |
| 100 "GData.EntryKind", kind, all_entry_kinds); | 100 "GData.EntryKind", kind, all_entry_kinds); |
| 101 } | 101 } |
| 102 } | 102 } |
| 103 } | 103 } |
| 104 | 104 |
| 105 void GDataWapiFeedProcessor::ApplyFeedFromFileUrlMap( | 105 void GDataWapiFeedProcessor::ApplyFeedFromFileUrlMap( |
| 106 bool is_delta_feed, | 106 bool is_delta_feed, |
| 107 int feed_changestamp, | 107 int64 feed_changestamp, |
| 108 FileResourceIdMap* file_map, | 108 FileResourceIdMap* file_map, |
| 109 std::set<FilePath>* changed_dirs) { | 109 std::set<FilePath>* changed_dirs) { |
| 110 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 110 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 111 DCHECK(changed_dirs); | 111 DCHECK(changed_dirs); |
| 112 | 112 |
| 113 if (!is_delta_feed) { // Full update. | 113 if (!is_delta_feed) { // Full update. |
| 114 directory_service_->root()->RemoveChildren(); | 114 directory_service_->root()->RemoveChildren(); |
| 115 changed_dirs->insert(directory_service_->root()->GetFilePath()); | 115 changed_dirs->insert(directory_service_->root()->GetFilePath()); |
| 116 } | 116 } |
| 117 directory_service_->set_largest_changestamp(feed_changestamp); | 117 directory_service_->set_largest_changestamp(feed_changestamp); |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 dir = orphaned_dir_service->root(); | 250 dir = orphaned_dir_service->root(); |
| 251 } | 251 } |
| 252 } | 252 } |
| 253 } | 253 } |
| 254 return dir; | 254 return dir; |
| 255 } | 255 } |
| 256 | 256 |
| 257 GDataFileError GDataWapiFeedProcessor::FeedToFileResourceMap( | 257 GDataFileError GDataWapiFeedProcessor::FeedToFileResourceMap( |
| 258 const std::vector<DocumentFeed*>& feed_list, | 258 const std::vector<DocumentFeed*>& feed_list, |
| 259 FileResourceIdMap* file_map, | 259 FileResourceIdMap* file_map, |
| 260 int* feed_changestamp, | 260 int64* feed_changestamp, |
| 261 FeedToFileResourceMapUmaStats* uma_stats) { | 261 FeedToFileResourceMapUmaStats* uma_stats) { |
| 262 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 262 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 263 DCHECK(uma_stats); | 263 DCHECK(uma_stats); |
| 264 | 264 |
| 265 GDataFileError error = GDATA_FILE_OK; | 265 GDataFileError error = GDATA_FILE_OK; |
| 266 uma_stats->num_regular_files = 0; | 266 uma_stats->num_regular_files = 0; |
| 267 uma_stats->num_hosted_documents = 0; | 267 uma_stats->num_hosted_documents = 0; |
| 268 uma_stats->num_files_with_entry_kind.clear(); | 268 uma_stats->num_files_with_entry_kind.clear(); |
| 269 for (size_t i = 0; i < feed_list.size(); ++i) { | 269 for (size_t i = 0; i < feed_list.size(); ++i) { |
| 270 const DocumentFeed* feed = feed_list[i]; | 270 const DocumentFeed* feed = feed_list[i]; |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 // If the code above fails to parse a feed, any GDataEntry instance | 322 // If the code above fails to parse a feed, any GDataEntry instance |
| 323 // added to |file_by_url| is not managed by a GDataDirectory instance, | 323 // added to |file_by_url| is not managed by a GDataDirectory instance, |
| 324 // so we need to explicitly release them here. | 324 // so we need to explicitly release them here. |
| 325 STLDeleteValues(file_map); | 325 STLDeleteValues(file_map); |
| 326 } | 326 } |
| 327 | 327 |
| 328 return error; | 328 return error; |
| 329 } | 329 } |
| 330 | 330 |
| 331 } // namespace gdata | 331 } // namespace gdata |
| OLD | NEW |