| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/sessions/nudge_tracker.h" | 5 #include "sync/sessions/nudge_tracker.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/memory/ptr_util.h" |
| 11 #include "sync/internal_api/public/engine/polling_constants.h" | 12 #include "sync/internal_api/public/engine/polling_constants.h" |
| 12 #include "sync/protocol/sync.pb.h" | 13 #include "sync/protocol/sync.pb.h" |
| 13 | 14 |
| 14 namespace syncer { | 15 namespace syncer { |
| 15 namespace sessions { | 16 namespace sessions { |
| 16 | 17 |
| 17 namespace { | 18 namespace { |
| 18 | 19 |
| 19 // Delays for syncer nudges. | 20 // Delays for syncer nudges. |
| 20 const int kDefaultNudgeDelayMilliseconds = 200; | 21 const int kDefaultNudgeDelayMilliseconds = 200; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 base::TimeDelta::FromMilliseconds(kDefaultNudgeDelayMilliseconds)), | 58 base::TimeDelta::FromMilliseconds(kDefaultNudgeDelayMilliseconds)), |
| 58 local_refresh_nudge_delay_( | 59 local_refresh_nudge_delay_( |
| 59 base::TimeDelta::FromMilliseconds(kSyncRefreshDelayMilliseconds)), | 60 base::TimeDelta::FromMilliseconds(kSyncRefreshDelayMilliseconds)), |
| 60 remote_invalidation_nudge_delay_( | 61 remote_invalidation_nudge_delay_( |
| 61 base::TimeDelta::FromMilliseconds(kSyncSchedulerDelayMilliseconds)) { | 62 base::TimeDelta::FromMilliseconds(kSyncSchedulerDelayMilliseconds)) { |
| 62 ModelTypeSet protocol_types = ProtocolTypes(); | 63 ModelTypeSet protocol_types = ProtocolTypes(); |
| 63 // Default initialize all the type trackers. | 64 // Default initialize all the type trackers. |
| 64 for (ModelTypeSet::Iterator it = protocol_types.First(); it.Good(); | 65 for (ModelTypeSet::Iterator it = protocol_types.First(); it.Good(); |
| 65 it.Inc()) { | 66 it.Inc()) { |
| 66 type_trackers_.insert( | 67 type_trackers_.insert( |
| 67 std::make_pair(it.Get(), make_scoped_ptr(new DataTypeTracker()))); | 68 std::make_pair(it.Get(), base::WrapUnique(new DataTypeTracker()))); |
| 68 } | 69 } |
| 69 } | 70 } |
| 70 | 71 |
| 71 NudgeTracker::~NudgeTracker() { } | 72 NudgeTracker::~NudgeTracker() { } |
| 72 | 73 |
| 73 bool NudgeTracker::IsSyncRequired() const { | 74 bool NudgeTracker::IsSyncRequired() const { |
| 74 if (IsRetryRequired()) | 75 if (IsRetryRequired()) |
| 75 return true; | 76 return true; |
| 76 | 77 |
| 77 for (TypeTrackerMap::const_iterator it = type_trackers_.begin(); | 78 for (TypeTrackerMap::const_iterator it = type_trackers_.begin(); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 for (ModelTypeSet::Iterator it = types.First(); it.Good(); it.Inc()) { | 152 for (ModelTypeSet::Iterator it = types.First(); it.Good(); it.Inc()) { |
| 152 TypeTrackerMap::const_iterator tracker_it = type_trackers_.find(it.Get()); | 153 TypeTrackerMap::const_iterator tracker_it = type_trackers_.find(it.Get()); |
| 153 DCHECK(tracker_it != type_trackers_.end()); | 154 DCHECK(tracker_it != type_trackers_.end()); |
| 154 tracker_it->second->RecordLocalRefreshRequest(); | 155 tracker_it->second->RecordLocalRefreshRequest(); |
| 155 } | 156 } |
| 156 return local_refresh_nudge_delay_; | 157 return local_refresh_nudge_delay_; |
| 157 } | 158 } |
| 158 | 159 |
| 159 base::TimeDelta NudgeTracker::RecordRemoteInvalidation( | 160 base::TimeDelta NudgeTracker::RecordRemoteInvalidation( |
| 160 syncer::ModelType type, | 161 syncer::ModelType type, |
| 161 scoped_ptr<InvalidationInterface> invalidation) { | 162 std::unique_ptr<InvalidationInterface> invalidation) { |
| 162 // Forward the invalidations to the proper recipient. | 163 // Forward the invalidations to the proper recipient. |
| 163 TypeTrackerMap::const_iterator tracker_it = type_trackers_.find(type); | 164 TypeTrackerMap::const_iterator tracker_it = type_trackers_.find(type); |
| 164 DCHECK(tracker_it != type_trackers_.end()); | 165 DCHECK(tracker_it != type_trackers_.end()); |
| 165 tracker_it->second->RecordRemoteInvalidation(std::move(invalidation)); | 166 tracker_it->second->RecordRemoteInvalidation(std::move(invalidation)); |
| 166 return remote_invalidation_nudge_delay_; | 167 return remote_invalidation_nudge_delay_; |
| 167 } | 168 } |
| 168 | 169 |
| 169 void NudgeTracker::RecordInitialSyncRequired(syncer::ModelType type) { | 170 void NudgeTracker::RecordInitialSyncRequired(syncer::ModelType type) { |
| 170 TypeTrackerMap::const_iterator tracker_it = type_trackers_.find(type); | 171 TypeTrackerMap::const_iterator tracker_it = type_trackers_.find(type); |
| 171 DCHECK(tracker_it != type_trackers_.end()); | 172 DCHECK(tracker_it != type_trackers_.end()); |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 } | 405 } |
| 405 } | 406 } |
| 406 } | 407 } |
| 407 | 408 |
| 408 void NudgeTracker::SetDefaultNudgeDelay(base::TimeDelta nudge_delay) { | 409 void NudgeTracker::SetDefaultNudgeDelay(base::TimeDelta nudge_delay) { |
| 409 minimum_local_nudge_delay_ = nudge_delay; | 410 minimum_local_nudge_delay_ = nudge_delay; |
| 410 } | 411 } |
| 411 | 412 |
| 412 } // namespace sessions | 413 } // namespace sessions |
| 413 } // namespace syncer | 414 } // namespace syncer |
| OLD | NEW |