OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/sync/engine/build_commit_command.h" | 5 #include "chrome/browser/sync/engine/build_commit_command.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 } | 50 } |
51 | 51 |
52 BuildCommitCommand::BuildCommitCommand() {} | 52 BuildCommitCommand::BuildCommitCommand() {} |
53 BuildCommitCommand::~BuildCommitCommand() {} | 53 BuildCommitCommand::~BuildCommitCommand() {} |
54 | 54 |
55 void BuildCommitCommand::AddExtensionsActivityToMessage( | 55 void BuildCommitCommand::AddExtensionsActivityToMessage( |
56 SyncSession* session, CommitMessage* message) { | 56 SyncSession* session, CommitMessage* message) { |
57 // We only send ExtensionsActivity to the server if bookmarks are being | 57 // We only send ExtensionsActivity to the server if bookmarks are being |
58 // committed. | 58 // committed. |
59 ExtensionsActivityMonitor* monitor = session->context()->extensions_monitor(); | 59 ExtensionsActivityMonitor* monitor = session->context()->extensions_monitor(); |
60 if (!session->status_controller()->HasBookmarkCommitActivity()) { | 60 if (!session->status_controller().HasBookmarkCommitActivity()) { |
61 // Return the records to the activity monitor. | 61 // Return the records to the activity monitor. |
62 monitor->PutRecords(session->extensions_activity()); | 62 monitor->PutRecords(session->extensions_activity()); |
63 session->mutable_extensions_activity()->clear(); | 63 session->mutable_extensions_activity()->clear(); |
64 return; | 64 return; |
65 } | 65 } |
66 const ExtensionsActivityMonitor::Records& records = | 66 const ExtensionsActivityMonitor::Records& records = |
67 session->extensions_activity(); | 67 session->extensions_activity(); |
68 for (ExtensionsActivityMonitor::Records::const_iterator it = records.begin(); | 68 for (ExtensionsActivityMonitor::Records::const_iterator it = records.begin(); |
69 it != records.end(); ++it) { | 69 it != records.end(); ++it) { |
70 sync_pb::ChromiumExtensionsActivity* activity_message = | 70 sync_pb::ChromiumExtensionsActivity* activity_message = |
(...skipping 27 matching lines...) Expand all Loading... |
98 session->write_transaction()->directory(), &message); | 98 session->write_transaction()->directory(), &message); |
99 | 99 |
100 // Cache previously computed position values. Because |commit_ids| | 100 // Cache previously computed position values. Because |commit_ids| |
101 // is already in sibling order, we should always hit this map after | 101 // is already in sibling order, we should always hit this map after |
102 // the first sibling in a consecutive run of commit items. The | 102 // the first sibling in a consecutive run of commit items. The |
103 // entries in this map are (low, high) values describing the | 103 // entries in this map are (low, high) values describing the |
104 // space of positions that are immediate successors of the item | 104 // space of positions that are immediate successors of the item |
105 // whose ID is the map's key. | 105 // whose ID is the map's key. |
106 std::map<Id, std::pair<int64, int64> > position_map; | 106 std::map<Id, std::pair<int64, int64> > position_map; |
107 | 107 |
108 const vector<Id>& commit_ids = session->status_controller()->commit_ids(); | 108 const vector<Id>& commit_ids = session->status_controller().commit_ids(); |
109 for (size_t i = 0; i < commit_ids.size(); i++) { | 109 for (size_t i = 0; i < commit_ids.size(); i++) { |
110 Id id = commit_ids[i]; | 110 Id id = commit_ids[i]; |
111 SyncEntity* sync_entry = | 111 SyncEntity* sync_entry = |
112 static_cast<SyncEntity*>(commit_message->add_entries()); | 112 static_cast<SyncEntity*>(commit_message->add_entries()); |
113 sync_entry->set_id(id); | 113 sync_entry->set_id(id); |
114 MutableEntry meta_entry(session->write_transaction(), | 114 MutableEntry meta_entry(session->write_transaction(), |
115 syncable::GET_BY_ID, | 115 syncable::GET_BY_ID, |
116 id); | 116 id); |
117 CHECK(meta_entry.good()); | 117 CHECK(meta_entry.good()); |
118 // This is the only change we make to the entry in this function. | 118 // This is the only change we make to the entry in this function. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 } | 201 } |
202 position_block.first = InterpolatePosition(position_block.first, | 202 position_block.first = InterpolatePosition(position_block.first, |
203 position_block.second); | 203 position_block.second); |
204 | 204 |
205 position_map[id] = position_block; | 205 position_map[id] = position_block; |
206 sync_entry->set_position_in_parent(position_block.first); | 206 sync_entry->set_position_in_parent(position_block.first); |
207 } | 207 } |
208 SetEntrySpecifics(&meta_entry, sync_entry); | 208 SetEntrySpecifics(&meta_entry, sync_entry); |
209 } | 209 } |
210 } | 210 } |
211 session->status_controller()->mutable_commit_message()->CopyFrom(message); | 211 session->mutable_status_controller()-> |
| 212 mutable_commit_message()->CopyFrom(message); |
212 } | 213 } |
213 | 214 |
214 int64 BuildCommitCommand::FindAnchorPosition(syncable::IdField direction, | 215 int64 BuildCommitCommand::FindAnchorPosition(syncable::IdField direction, |
215 const syncable::Entry& entry) { | 216 const syncable::Entry& entry) { |
216 Id next_id = entry.Get(direction); | 217 Id next_id = entry.Get(direction); |
217 while (!next_id.IsRoot()) { | 218 while (!next_id.IsRoot()) { |
218 Entry next_entry(entry.trans(), | 219 Entry next_entry(entry.trans(), |
219 syncable::GET_BY_ID, | 220 syncable::GET_BY_ID, |
220 next_id); | 221 next_id); |
221 if (!next_entry.Get(IS_UNSYNCED) && !next_entry.Get(IS_UNAPPLIED_UPDATE)) { | 222 if (!next_entry.Get(IS_UNSYNCED) && !next_entry.Get(IS_UNAPPLIED_UPDATE)) { |
(...skipping 21 matching lines...) Expand all Loading... |
243 if (delta <= static_cast<uint64>(GetGap()*2)) | 244 if (delta <= static_cast<uint64>(GetGap()*2)) |
244 return lo + (static_cast<int64>(delta) + 7) / 8; // Interpolate. | 245 return lo + (static_cast<int64>(delta) + 7) / 8; // Interpolate. |
245 else if (lo == GetFirstPosition()) | 246 else if (lo == GetFirstPosition()) |
246 return hi - GetGap(); // Extend range just before successor. | 247 return hi - GetGap(); // Extend range just before successor. |
247 else | 248 else |
248 return lo + GetGap(); // Use or extend range just after predecessor. | 249 return lo + GetGap(); // Use or extend range just after predecessor. |
249 } | 250 } |
250 | 251 |
251 | 252 |
252 } // namespace browser_sync | 253 } // namespace browser_sync |
OLD | NEW |