OLD | NEW |
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 "chrome/browser/sync/glue/generic_change_processor.h" | 5 #include "chrome/browser/sync/glue/generic_change_processor.h" |
6 | 6 |
7 #include "base/location.h" | 7 #include "base/location.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "content/public/browser/browser_thread.h" | 10 #include "content/public/browser/browser_thread.h" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 syncer::SyncError error(FROM_HERE, | 109 syncer::SyncError error(FROM_HERE, |
110 "Server did not create the top-level " + type_name + | 110 "Server did not create the top-level " + type_name + |
111 " node. We might be running against an out-of-date server.", | 111 " node. We might be running against an out-of-date server.", |
112 type); | 112 type); |
113 return error; | 113 return error; |
114 } | 114 } |
115 | 115 |
116 // TODO(akalin): We'll have to do a tree traversal for bookmarks. | 116 // TODO(akalin): We'll have to do a tree traversal for bookmarks. |
117 DCHECK_NE(type, syncer::BOOKMARKS); | 117 DCHECK_NE(type, syncer::BOOKMARKS); |
118 | 118 |
119 int64 sync_child_id = root.GetFirstChildId(); | 119 std::vector<int64> child_ids; |
120 while (sync_child_id != syncer::kInvalidId) { | 120 root.GetChildIds(&child_ids); |
| 121 |
| 122 for (std::vector<int64>::iterator it = child_ids.begin(); |
| 123 it != child_ids.end(); ++it) { |
121 syncer::ReadNode sync_child_node(&trans); | 124 syncer::ReadNode sync_child_node(&trans); |
122 if (sync_child_node.InitByIdLookup(sync_child_id) != | 125 if (sync_child_node.InitByIdLookup(*it) != |
123 syncer::BaseNode::INIT_OK) { | 126 syncer::BaseNode::INIT_OK) { |
124 syncer::SyncError error(FROM_HERE, | 127 syncer::SyncError error(FROM_HERE, |
125 "Failed to fetch child node for type " + type_name + ".", | 128 "Failed to fetch child node for type " + type_name + ".", |
126 type); | 129 type); |
127 return error; | 130 return error; |
128 } | 131 } |
129 current_sync_data->push_back(syncer::SyncData::CreateRemoteData( | 132 current_sync_data->push_back(syncer::SyncData::CreateRemoteData( |
130 sync_child_node.GetId(), sync_child_node.GetEntitySpecifics())); | 133 sync_child_node.GetId(), sync_child_node.GetEntitySpecifics())); |
131 sync_child_id = sync_child_node.GetSuccessorId(); | |
132 } | 134 } |
133 return syncer::SyncError(); | 135 return syncer::SyncError(); |
134 } | 136 } |
135 | 137 |
136 int GenericChangeProcessor::GetSyncCountForType(syncer::ModelType type) { | 138 int GenericChangeProcessor::GetSyncCountForType(syncer::ModelType type) { |
137 syncer::ReadTransaction trans(FROM_HERE, share_handle()); | 139 syncer::ReadTransaction trans(FROM_HERE, share_handle()); |
138 syncer::ReadNode root(&trans); | 140 syncer::ReadNode root(&trans); |
139 if (root.InitByTagLookup(syncer::ModelTypeToRootTag(type)) != | 141 if (root.InitByTagLookup(syncer::ModelTypeToRootTag(type)) != |
140 syncer::BaseNode::INIT_OK) | 142 syncer::BaseNode::INIT_OK) |
141 return 0; | 143 return 0; |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
509 void GenericChangeProcessor::StartImpl(Profile* profile) { | 511 void GenericChangeProcessor::StartImpl(Profile* profile) { |
510 DCHECK(CalledOnValidThread()); | 512 DCHECK(CalledOnValidThread()); |
511 } | 513 } |
512 | 514 |
513 syncer::UserShare* GenericChangeProcessor::share_handle() const { | 515 syncer::UserShare* GenericChangeProcessor::share_handle() const { |
514 DCHECK(CalledOnValidThread()); | 516 DCHECK(CalledOnValidThread()); |
515 return share_handle_; | 517 return share_handle_; |
516 } | 518 } |
517 | 519 |
518 } // namespace browser_sync | 520 } // namespace browser_sync |
OLD | NEW |