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 |