Index: sync/engine/store_timestamps_command.cc |
diff --git a/sync/engine/store_timestamps_command.cc b/sync/engine/store_timestamps_command.cc |
index 6f381b0d7a36510fdb1f0e64a658c5d001f47422..cbff68fec50df8a8344d596ae2cdadc4706a620c 100644 |
--- a/sync/engine/store_timestamps_command.cc |
+++ b/sync/engine/store_timestamps_command.cc |
@@ -4,39 +4,44 @@ |
#include "sync/engine/store_timestamps_command.h" |
-#include "sync/internal_api/public/base/model_type.h" |
+#include "base/logging.h" |
#include "sync/sessions/status_controller.h" |
#include "sync/sessions/sync_session.h" |
#include "sync/syncable/directory.h" |
namespace syncer { |
+ModelTypeSet ProcessNewProgressMarkers( |
+ const sync_pb::GetUpdatesResponse& response, |
+ syncable::Directory* dir) { |
+ ModelTypeSet forward_progress_types; |
+ // If a marker was omitted for any one type, that indicates no |
+ // change from the previous state. |
+ for (int i = 0; i < response.new_progress_marker_size(); ++i) { |
+ int field_number = response.new_progress_marker(i).data_type_id(); |
+ ModelType model_type = GetModelTypeFromSpecificsFieldNumber(field_number); |
+ if (!IsRealDataType(model_type)) { |
+ DLOG(WARNING) << "Unknown field number " << field_number; |
+ continue; |
+ } |
+ forward_progress_types.Put(model_type); |
+ dir->SetDownloadProgress(model_type, response.new_progress_marker(i)); |
+ } |
+ return forward_progress_types; |
+} |
+ |
StoreTimestampsCommand::StoreTimestampsCommand() {} |
StoreTimestampsCommand::~StoreTimestampsCommand() {} |
SyncerError StoreTimestampsCommand::ExecuteImpl( |
sessions::SyncSession* session) { |
- syncable::Directory* dir = session->context()->directory(); |
- |
const sync_pb::GetUpdatesResponse& updates = |
session->status_controller().updates_response().get_updates(); |
sessions::StatusController* status = session->mutable_status_controller(); |
- // Update the progress marker tokens from the server result. If a marker |
- // was omitted for any one type, that indicates no change from the previous |
- // state. |
- ModelTypeSet forward_progress_types; |
- for (int i = 0; i < updates.new_progress_marker_size(); ++i) { |
- int field_number = updates.new_progress_marker(i).data_type_id(); |
- ModelType model_type = GetModelTypeFromSpecificsFieldNumber(field_number); |
- if (!IsRealDataType(model_type)) { |
- NOTREACHED() << "Unknown field number " << field_number; |
- continue; |
- } |
- forward_progress_types.Put(model_type); |
- dir->SetDownloadProgress(model_type, updates.new_progress_marker(i)); |
- } |
+ ModelTypeSet forward_progress_types = |
+ ProcessNewProgressMarkers(updates, session->context()->directory()); |
DCHECK(!forward_progress_types.Empty() || |
updates.changes_remaining() == 0); |
if (VLOG_IS_ON(1)) { |