| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "sync/engine/get_updates_delegate.h" | 5 #include "components/sync/engine_impl/get_updates_delegate.h" |
| 6 | 6 |
| 7 #include "sync/engine/directory_update_handler.h" | 7 #include "components/sync/engine/events/configure_get_updates_request_event.h" |
| 8 #include "sync/engine/get_updates_processor.h" | 8 #include "components/sync/engine/events/normal_get_updates_request_event.h" |
| 9 #include "sync/internal_api/public/events/configure_get_updates_request_event.h" | 9 #include "components/sync/engine/events/poll_get_updates_request_event.h" |
| 10 #include "sync/internal_api/public/events/normal_get_updates_request_event.h" | 10 #include "components/sync/engine_impl/directory_update_handler.h" |
| 11 #include "sync/internal_api/public/events/poll_get_updates_request_event.h" | 11 #include "components/sync/engine_impl/get_updates_processor.h" |
| 12 | 12 |
| 13 namespace syncer { | 13 namespace syncer { |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 | 16 |
| 17 void NonPassiveApplyUpdates( | 17 void NonPassiveApplyUpdates(ModelTypeSet gu_types, |
| 18 ModelTypeSet gu_types, | 18 sessions::StatusController* status_controller, |
| 19 sessions::StatusController* status_controller, | 19 UpdateHandlerMap* update_handler_map) { |
| 20 UpdateHandlerMap* update_handler_map) { | |
| 21 for (UpdateHandlerMap::iterator it = update_handler_map->begin(); | 20 for (UpdateHandlerMap::iterator it = update_handler_map->begin(); |
| 22 it != update_handler_map->end(); ++it) { | 21 it != update_handler_map->end(); ++it) { |
| 23 if (gu_types.Has(it->first)) | 22 if (gu_types.Has(it->first)) |
| 24 it->second->ApplyUpdates(status_controller); | 23 it->second->ApplyUpdates(status_controller); |
| 25 } | 24 } |
| 26 } | 25 } |
| 27 | 26 |
| 28 void PassiveApplyUpdates( | 27 void PassiveApplyUpdates(ModelTypeSet gu_types, |
| 29 ModelTypeSet gu_types, | 28 sessions::StatusController* status_controller, |
| 30 sessions::StatusController* status_controller, | 29 UpdateHandlerMap* update_handler_map) { |
| 31 UpdateHandlerMap* update_handler_map) { | |
| 32 for (UpdateHandlerMap::iterator it = update_handler_map->begin(); | 30 for (UpdateHandlerMap::iterator it = update_handler_map->begin(); |
| 33 it != update_handler_map->end(); ++it) { | 31 it != update_handler_map->end(); ++it) { |
| 34 if (gu_types.Has(it->first)) | 32 if (gu_types.Has(it->first)) |
| 35 it->second->PassiveApplyUpdates(status_controller); | 33 it->second->PassiveApplyUpdates(status_controller); |
| 36 } | 34 } |
| 37 } | 35 } |
| 38 | 36 |
| 39 } // namespace | 37 } // namespace |
| 40 | 38 |
| 41 GetUpdatesDelegate::GetUpdatesDelegate() {} | 39 GetUpdatesDelegate::GetUpdatesDelegate() {} |
| 42 | 40 |
| 43 GetUpdatesDelegate::~GetUpdatesDelegate() {} | 41 GetUpdatesDelegate::~GetUpdatesDelegate() {} |
| 44 | 42 |
| 45 NormalGetUpdatesDelegate::NormalGetUpdatesDelegate( | 43 NormalGetUpdatesDelegate::NormalGetUpdatesDelegate( |
| 46 const sessions::NudgeTracker& nudge_tracker) | 44 const sessions::NudgeTracker& nudge_tracker) |
| 47 : nudge_tracker_(nudge_tracker) {} | 45 : nudge_tracker_(nudge_tracker) {} |
| 48 | 46 |
| 49 NormalGetUpdatesDelegate::~NormalGetUpdatesDelegate() {} | 47 NormalGetUpdatesDelegate::~NormalGetUpdatesDelegate() {} |
| 50 | 48 |
| 51 // This function assumes the progress markers have already been populated. | 49 // This function assumes the progress markers have already been populated. |
| 52 void NormalGetUpdatesDelegate::HelpPopulateGuMessage( | 50 void NormalGetUpdatesDelegate::HelpPopulateGuMessage( |
| 53 sync_pb::GetUpdatesMessage* get_updates) const { | 51 sync_pb::GetUpdatesMessage* get_updates) const { |
| 54 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. | 52 // Set legacy GetUpdatesMessage.GetUpdatesCallerInfo information. |
| 55 get_updates->mutable_caller_info()->set_source( | 53 get_updates->mutable_caller_info()->set_source( |
| 56 nudge_tracker_.GetLegacySource()); | 54 nudge_tracker_.GetLegacySource()); |
| 57 | 55 |
| 58 // Set the new and improved version of source, too. | 56 // Set the new and improved version of source, too. |
| 59 get_updates->set_get_updates_origin(sync_pb::SyncEnums::GU_TRIGGER); | 57 get_updates->set_get_updates_origin(sync_pb::SyncEnums::GU_TRIGGER); |
| 60 get_updates->set_is_retry(nudge_tracker_.IsRetryRequired()); | 58 get_updates->set_is_retry(nudge_tracker_.IsRetryRequired()); |
| 61 | 59 |
| 62 // Special case: A GU performed for no other reason than retry will have its | 60 // Special case: A GU performed for no other reason than retry will have its |
| 63 // origin set to RETRY. | 61 // origin set to RETRY. |
| 64 if (nudge_tracker_.GetLegacySource() == sync_pb::GetUpdatesCallerInfo::RETRY) | 62 if (nudge_tracker_.GetLegacySource() == sync_pb::GetUpdatesCallerInfo::RETRY) |
| 65 get_updates->set_get_updates_origin(sync_pb::SyncEnums::RETRY); | 63 get_updates->set_get_updates_origin(sync_pb::SyncEnums::RETRY); |
| 66 | 64 |
| 67 // Fill in the notification hints. | 65 // Fill in the notification hints. |
| 68 for (int i = 0; i < get_updates->from_progress_marker_size(); ++i) { | 66 for (int i = 0; i < get_updates->from_progress_marker_size(); ++i) { |
| 69 sync_pb::DataTypeProgressMarker* progress_marker = | 67 sync_pb::DataTypeProgressMarker* progress_marker = |
| 70 get_updates->mutable_from_progress_marker(i); | 68 get_updates->mutable_from_progress_marker(i); |
| 71 ModelType type = GetModelTypeFromSpecificsFieldNumber( | 69 ModelType type = |
| 72 progress_marker->data_type_id()); | 70 GetModelTypeFromSpecificsFieldNumber(progress_marker->data_type_id()); |
| 73 | 71 |
| 74 DCHECK(!nudge_tracker_.IsTypeThrottled(type)) | 72 DCHECK(!nudge_tracker_.IsTypeThrottled(type)) |
| 75 << "Throttled types should have been removed from the request_types."; | 73 << "Throttled types should have been removed from the request_types."; |
| 76 | 74 |
| 77 nudge_tracker_.SetLegacyNotificationHint(type, progress_marker); | 75 nudge_tracker_.SetLegacyNotificationHint(type, progress_marker); |
| 78 nudge_tracker_.FillProtoMessage( | 76 nudge_tracker_.FillProtoMessage( |
| 79 type, | 77 type, progress_marker->mutable_get_update_triggers()); |
| 80 progress_marker->mutable_get_update_triggers()); | |
| 81 } | 78 } |
| 82 } | 79 } |
| 83 | 80 |
| 84 void NormalGetUpdatesDelegate::ApplyUpdates( | 81 void NormalGetUpdatesDelegate::ApplyUpdates( |
| 85 ModelTypeSet gu_types, | 82 ModelTypeSet gu_types, |
| 86 sessions::StatusController* status_controller, | 83 sessions::StatusController* status_controller, |
| 87 UpdateHandlerMap* update_handler_map) const { | 84 UpdateHandlerMap* update_handler_map) const { |
| 88 NonPassiveApplyUpdates(gu_types, status_controller, update_handler_map); | 85 NonPassiveApplyUpdates(gu_types, status_controller, update_handler_map); |
| 89 } | 86 } |
| 90 | 87 |
| 91 std::unique_ptr<ProtocolEvent> NormalGetUpdatesDelegate::GetNetworkRequestEvent( | 88 std::unique_ptr<ProtocolEvent> NormalGetUpdatesDelegate::GetNetworkRequestEvent( |
| 92 base::Time timestamp, | 89 base::Time timestamp, |
| 93 const sync_pb::ClientToServerMessage& request) const { | 90 const sync_pb::ClientToServerMessage& request) const { |
| 94 return std::unique_ptr<ProtocolEvent>( | 91 return std::unique_ptr<ProtocolEvent>( |
| 95 new NormalGetUpdatesRequestEvent(timestamp, nudge_tracker_, request)); | 92 new NormalGetUpdatesRequestEvent(timestamp, nudge_tracker_, request)); |
| 96 } | 93 } |
| 97 | 94 |
| 98 ConfigureGetUpdatesDelegate::ConfigureGetUpdatesDelegate( | 95 ConfigureGetUpdatesDelegate::ConfigureGetUpdatesDelegate( |
| 99 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source) : source_(source) {} | 96 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source) |
| 97 : source_(source) {} |
| 100 | 98 |
| 101 ConfigureGetUpdatesDelegate::~ConfigureGetUpdatesDelegate() {} | 99 ConfigureGetUpdatesDelegate::~ConfigureGetUpdatesDelegate() {} |
| 102 | 100 |
| 103 void ConfigureGetUpdatesDelegate::HelpPopulateGuMessage( | 101 void ConfigureGetUpdatesDelegate::HelpPopulateGuMessage( |
| 104 sync_pb::GetUpdatesMessage* get_updates) const { | 102 sync_pb::GetUpdatesMessage* get_updates) const { |
| 105 get_updates->mutable_caller_info()->set_source(source_); | 103 get_updates->mutable_caller_info()->set_source(source_); |
| 106 get_updates->set_get_updates_origin(ConvertConfigureSourceToOrigin(source_)); | 104 get_updates->set_get_updates_origin(ConvertConfigureSourceToOrigin(source_)); |
| 107 } | 105 } |
| 108 | 106 |
| 109 void ConfigureGetUpdatesDelegate::ApplyUpdates( | 107 void ConfigureGetUpdatesDelegate::ApplyUpdates( |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 } | 162 } |
| 165 | 163 |
| 166 std::unique_ptr<ProtocolEvent> PollGetUpdatesDelegate::GetNetworkRequestEvent( | 164 std::unique_ptr<ProtocolEvent> PollGetUpdatesDelegate::GetNetworkRequestEvent( |
| 167 base::Time timestamp, | 165 base::Time timestamp, |
| 168 const sync_pb::ClientToServerMessage& request) const { | 166 const sync_pb::ClientToServerMessage& request) const { |
| 169 return std::unique_ptr<ProtocolEvent>( | 167 return std::unique_ptr<ProtocolEvent>( |
| 170 new PollGetUpdatesRequestEvent(timestamp, request)); | 168 new PollGetUpdatesRequestEvent(timestamp, request)); |
| 171 } | 169 } |
| 172 | 170 |
| 173 } // namespace syncer | 171 } // namespace syncer |
| OLD | NEW |