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

Side by Side Diff: sync/notifier/fake_invalidation_state_tracker.cc

Issue 10911084: Implement Invalidator::Acknowledge (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Restart test + more cleanup Created 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/notifier/fake_invalidation_state_tracker.h" 5 #include "sync/notifier/fake_invalidation_state_tracker.h"
6 6
7 #include "base/bind.h"
8 #include "base/callback.h"
9 #include "base/location.h"
10 #include "base/task_runner.h"
7 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
8 12
9 namespace syncer { 13 namespace syncer {
10 14
15 namespace {
16
17 void GenerateAckHandlesReplyHelper(
18 base::Callback<void(const syncer::AckHandleMap&)> callback,
19 const syncer::AckHandleMap& ack_handles) {
20 callback.Run(ack_handles);
21 }
22
23 } // namespace
24
11 const int64 FakeInvalidationStateTracker::kMinVersion = kint64min; 25 const int64 FakeInvalidationStateTracker::kMinVersion = kint64min;
12 26
13 FakeInvalidationStateTracker::FakeInvalidationStateTracker() {} 27 FakeInvalidationStateTracker::FakeInvalidationStateTracker() {}
14 28
15 FakeInvalidationStateTracker::~FakeInvalidationStateTracker() {} 29 FakeInvalidationStateTracker::~FakeInvalidationStateTracker() {}
16 30
17 int64 FakeInvalidationStateTracker::GetMaxVersion( 31 int64 FakeInvalidationStateTracker::GetMaxVersion(
18 const invalidation::ObjectId& id) const { 32 const invalidation::ObjectId& id) const {
19 InvalidationVersionMap::const_iterator it = versions_.find(id); 33 InvalidationStateMap::const_iterator it = state_map_.find(id);
20 return (it == versions_.end()) ? kMinVersion : it->second; 34 return (it == state_map_.end()) ? kMinVersion : it->second.version;
21 } 35 }
22 36
23 InvalidationVersionMap 37 InvalidationStateMap FakeInvalidationStateTracker::GetStateMap() const {
24 FakeInvalidationStateTracker::GetAllMaxVersions() const { 38 return state_map_;
25 return versions_;
26 } 39 }
27 40
28 void FakeInvalidationStateTracker::SetMaxVersion( 41 void FakeInvalidationStateTracker::SetMaxVersion(
29 const invalidation::ObjectId& id, int64 max_version) { 42 const invalidation::ObjectId& id, int64 max_version) {
30 InvalidationVersionMap::const_iterator it = versions_.find(id); 43 InvalidationStateMap::const_iterator it = state_map_.find(id);
31 if ((it != versions_.end()) && (max_version <= it->second)) { 44 if ((it != state_map_.end()) && (max_version <= it->second.version)) {
32 ADD_FAILURE(); 45 ADD_FAILURE();
33 return; 46 return;
34 } 47 }
35 versions_[id] = max_version; 48 state_map_[id].version = max_version;
36 } 49 }
37 50
38 void FakeInvalidationStateTracker::Forget(const ObjectIdSet& ids) { 51 void FakeInvalidationStateTracker::Forget(const ObjectIdSet& ids) {
39 for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) { 52 for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
40 versions_.erase(*it); 53 state_map_.erase(*it);
41 } 54 }
42 } 55 }
43 56
44 void FakeInvalidationStateTracker::SetBootstrapData( 57 void FakeInvalidationStateTracker::SetBootstrapData(
45 const std::string& data) { 58 const std::string& data) {
46 bootstrap_data_ = data; 59 bootstrap_data_ = data;
47 } 60 }
48 61
49 std::string FakeInvalidationStateTracker::GetBootstrapData() const { 62 std::string FakeInvalidationStateTracker::GetBootstrapData() const {
50 return bootstrap_data_; 63 return bootstrap_data_;
51 } 64 }
52 65
66 void FakeInvalidationStateTracker::GenerateAckHandles(
67 const ObjectIdSet& ids,
68 const scoped_refptr<base::TaskRunner>& task_runner,
69 base::Callback<void(const AckHandleMap&)> callback) {
70 // TODO(dcheng): Properly implement. We probably want a CreateForTest()
71 // method.
72 AckHandleMap ack_handles;
73 for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
74 state_map_[*it].expected = AckHandle::CreateUnique();
75 ack_handles.insert(std::make_pair(*it, state_map_[*it].expected));
76 }
77 task_runner->PostTask(FROM_HERE,
78 base::Bind(&GenerateAckHandlesReplyHelper,
79 callback,
80 ack_handles));
81 }
82
83 void FakeInvalidationStateTracker::Acknowledge(const invalidation::ObjectId& id,
84 const AckHandle& ack_handle) {
85 InvalidationStateMap::iterator it = state_map_.find(id);
86 if (it == state_map_.end())
87 ADD_FAILURE();
88 it->second.current = ack_handle;
89 }
90
53 } // namespace syncer 91 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698