Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: sync/sessions/data_type_tracker.cc

Issue 23441042: Refactor common invalidation framework types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move DEPS rule Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sync/sessions/data_type_tracker.h ('k') | sync/sessions/nudge_tracker.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/data_type_tracker.h" 5 #include "sync/sessions/data_type_tracker.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "sync/internal_api/public/base/invalidation.h"
9 #include "sync/notifier/single_object_invalidation_set.h"
8 #include "sync/sessions/nudge_tracker.h" 10 #include "sync/sessions/nudge_tracker.h"
9 11
10 namespace syncer { 12 namespace syncer {
11 namespace sessions { 13 namespace sessions {
12 14
13 DataTypeTracker::DataTypeTracker() 15 DataTypeTracker::DataTypeTracker()
14 : local_nudge_count_(0), 16 : local_nudge_count_(0),
15 local_refresh_request_count_(0), 17 local_refresh_request_count_(0),
16 local_payload_overflow_(false), 18 local_payload_overflow_(false),
17 server_payload_overflow_(false), 19 server_payload_overflow_(false),
18 payload_buffer_size_(NudgeTracker::kDefaultMaxPayloadsPerType) { } 20 payload_buffer_size_(NudgeTracker::kDefaultMaxPayloadsPerType) { }
19 21
20 DataTypeTracker::~DataTypeTracker() { } 22 DataTypeTracker::~DataTypeTracker() { }
21 23
22 void DataTypeTracker::RecordLocalChange() { 24 void DataTypeTracker::RecordLocalChange() {
23 local_nudge_count_++; 25 local_nudge_count_++;
24 } 26 }
25 27
26 void DataTypeTracker::RecordLocalRefreshRequest() { 28 void DataTypeTracker::RecordLocalRefreshRequest() {
27 local_refresh_request_count_++; 29 local_refresh_request_count_++;
28 } 30 }
29 31
30 void DataTypeTracker::RecordRemoteInvalidation( 32 void DataTypeTracker::RecordRemoteInvalidations(
31 const std::string& payload) { 33 const SingleObjectInvalidationSet& invalidations) {
32 pending_payloads_.push_back(payload); 34 for (SingleObjectInvalidationSet::const_iterator it =
33 if (pending_payloads_.size() > payload_buffer_size_) { 35 invalidations.begin(); it != invalidations.end(); ++it) {
34 // Drop the oldest payload if we've overflowed. 36 if (it->is_unknown_version()) {
35 pending_payloads_.pop_front(); 37 server_payload_overflow_ = true;
36 local_payload_overflow_ = true; 38 } else {
39 pending_payloads_.push_back(it->payload());
40 if (pending_payloads_.size() > payload_buffer_size_) {
41 // Drop the oldest payload if we've overflowed.
42 pending_payloads_.pop_front();
43 local_payload_overflow_ = true;
44 }
45 }
37 } 46 }
38 } 47 }
39 48
40 void DataTypeTracker::RecordSuccessfulSyncCycle() { 49 void DataTypeTracker::RecordSuccessfulSyncCycle() {
41 // If we were throttled, then we would have been excluded from this cycle's 50 // If we were throttled, then we would have been excluded from this cycle's
42 // GetUpdates and Commit actions. Our state remains unchanged. 51 // GetUpdates and Commit actions. Our state remains unchanged.
43 if (IsThrottled()) 52 if (IsThrottled())
44 return; 53 return;
45 54
46 local_nudge_count_ = 0; 55 local_nudge_count_ = 0;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 148 }
140 149
141 void DataTypeTracker::UpdateThrottleState(base::TimeTicks now) { 150 void DataTypeTracker::UpdateThrottleState(base::TimeTicks now) {
142 if (now >= unthrottle_time_) { 151 if (now >= unthrottle_time_) {
143 unthrottle_time_ = base::TimeTicks(); 152 unthrottle_time_ = base::TimeTicks();
144 } 153 }
145 } 154 }
146 155
147 } // namespace sessions 156 } // namespace sessions
148 } // namespace syncer 157 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/sessions/data_type_tracker.h ('k') | sync/sessions/nudge_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698