OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/internal_api/public/base/invalidation.h" | 5 #include "sync/internal_api/public/base/invalidation.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 | 8 |
9 #include "base/json/json_string_value_serializer.h" | 9 #include "base/json/json_string_value_serializer.h" |
10 #include "base/rand_util.h" | 10 #include "base/rand_util.h" |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 | 104 |
105 const std::string& Invalidation::payload() const { | 105 const std::string& Invalidation::payload() const { |
106 DCHECK(!is_unknown_version_); | 106 DCHECK(!is_unknown_version_); |
107 return payload_; | 107 return payload_; |
108 } | 108 } |
109 | 109 |
110 const AckHandle& Invalidation::ack_handle() const { | 110 const AckHandle& Invalidation::ack_handle() const { |
111 return ack_handle_; | 111 return ack_handle_; |
112 } | 112 } |
113 | 113 |
114 void Invalidation::set_ack_handle(const AckHandle& ack_handle) { | 114 void Invalidation::InitAckHandler(syncer::WeakHandle<AckHandler> handler) { |
115 ack_handle_ = ack_handle; | 115 DCHECK(!ack_handler_.IsInitialized()); |
116 } | |
117 | |
118 void Invalidation::set_ack_handler(syncer::WeakHandle<AckHandler> handler) { | |
119 ack_handler_ = handler; | 116 ack_handler_ = handler; |
120 } | 117 } |
121 | 118 |
122 bool Invalidation::SupportsAcknowledgement() const { | 119 bool Invalidation::SupportsAcknowledgement() const { |
123 return ack_handler_.IsInitialized(); | 120 return ack_handler_.IsInitialized(); |
124 } | 121 } |
125 | 122 |
126 void Invalidation::Acknowledge() const { | 123 void Invalidation::Acknowledge() const { |
127 if (SupportsAcknowledgement()) { | 124 if (SupportsAcknowledgement()) { |
128 ack_handler_.Call(FROM_HERE, | 125 ack_handler_.Call(FROM_HERE, |
129 &AckHandler::Acknowledge, | 126 &AckHandler::Acknowledge, |
130 id_, | 127 id_, |
131 ack_handle_); | 128 ack_handle_); |
132 } | 129 } |
133 } | 130 } |
134 | 131 |
135 void Invalidation::Drop(DroppedInvalidationTracker* tracker) const { | 132 void Invalidation::Drop(DroppedInvalidationTracker* tracker) const { |
136 DCHECK(tracker->object_id() == object_id()); | 133 DCHECK(tracker->object_id() == object_id()); |
137 tracker->RecordDropEvent(ack_handler_, ack_handle_); | 134 tracker->RecordDropEvent(ack_handler_, ack_handle_); |
138 ack_handler_.Call(FROM_HERE, | 135 if (SupportsAcknowledgement()) { |
139 &AckHandler::Drop, | 136 ack_handler_.Call(FROM_HERE, |
140 id_, | 137 &AckHandler::Drop, |
141 ack_handle_); | 138 id_, |
| 139 ack_handle_); |
| 140 } |
142 } | 141 } |
143 | 142 |
144 bool Invalidation::Equals(const Invalidation& other) const { | 143 bool Invalidation::Equals(const Invalidation& other) const { |
145 return id_ == other.id_ | 144 return id_ == other.id_ |
146 && is_unknown_version_ == other.is_unknown_version_ | 145 && is_unknown_version_ == other.is_unknown_version_ |
147 && version_ == other.version_ | 146 && version_ == other.version_ |
148 && payload_ == other.payload_; | 147 && payload_ == other.payload_; |
149 } | 148 } |
150 | 149 |
151 scoped_ptr<base::DictionaryValue> Invalidation::ToValue() const { | 150 scoped_ptr<base::DictionaryValue> Invalidation::ToValue() const { |
(...skipping 23 matching lines...) Expand all Loading... |
175 int64 version, | 174 int64 version, |
176 const std::string& payload, | 175 const std::string& payload, |
177 AckHandle ack_handle) | 176 AckHandle ack_handle) |
178 : id_(id), | 177 : id_(id), |
179 is_unknown_version_(is_unknown_version), | 178 is_unknown_version_(is_unknown_version), |
180 version_(version), | 179 version_(version), |
181 payload_(payload), | 180 payload_(payload), |
182 ack_handle_(ack_handle) {} | 181 ack_handle_(ack_handle) {} |
183 | 182 |
184 } // namespace syncer | 183 } // namespace syncer |
OLD | NEW |