| Index: sync/sessions/data_type_tracker.cc
|
| diff --git a/sync/sessions/data_type_tracker.cc b/sync/sessions/data_type_tracker.cc
|
| index a061679839f174b182925b7e1f22f2a24e44fe25..b0b464923ce049d70d1964c4cd3bf0bbe482177d 100644
|
| --- a/sync/sessions/data_type_tracker.cc
|
| +++ b/sync/sessions/data_type_tracker.cc
|
| @@ -5,6 +5,8 @@
|
| #include "sync/sessions/data_type_tracker.h"
|
|
|
| #include "base/logging.h"
|
| +#include "sync/internal_api/public/base/invalidation.h"
|
| +#include "sync/notifier/single_object_invalidation_set.h"
|
| #include "sync/sessions/nudge_tracker.h"
|
|
|
| namespace syncer {
|
| @@ -27,13 +29,20 @@ void DataTypeTracker::RecordLocalRefreshRequest() {
|
| local_refresh_request_count_++;
|
| }
|
|
|
| -void DataTypeTracker::RecordRemoteInvalidation(
|
| - const std::string& payload) {
|
| - pending_payloads_.push_back(payload);
|
| - if (pending_payloads_.size() > payload_buffer_size_) {
|
| - // Drop the oldest payload if we've overflowed.
|
| - pending_payloads_.pop_front();
|
| - local_payload_overflow_ = true;
|
| +void DataTypeTracker::RecordRemoteInvalidations(
|
| + const SingleObjectInvalidationSet& invalidations) {
|
| + for (SingleObjectInvalidationSet::const_iterator it =
|
| + invalidations.begin(); it != invalidations.end(); ++it) {
|
| + if (it->is_unknown_version()) {
|
| + server_payload_overflow_ = true;
|
| + } else {
|
| + pending_payloads_.push_back(it->payload());
|
| + if (pending_payloads_.size() > payload_buffer_size_) {
|
| + // Drop the oldest payload if we've overflowed.
|
| + pending_payloads_.pop_front();
|
| + local_payload_overflow_ = true;
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|