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

Side by Side Diff: sync/sessions/session_state.cc

Issue 10197004: [Sync] Convert SyncSessionSnapshot to a copy-able class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: lint Created 8 years, 8 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/sessions/session_state.h" 5 #include "sync/sessions/session_state.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 num_updates_downloaded_total); 68 num_updates_downloaded_total);
69 value->SetInteger("numTombstoneUpdatesDownloadedTotal", 69 value->SetInteger("numTombstoneUpdatesDownloadedTotal",
70 num_tombstone_updates_downloaded_total); 70 num_tombstone_updates_downloaded_total);
71 value->SetInteger("numReflectedUpdatesDownloadedTotal", 71 value->SetInteger("numReflectedUpdatesDownloadedTotal",
72 num_reflected_updates_downloaded_total); 72 num_reflected_updates_downloaded_total);
73 value->SetInteger("numLocalOverwrites", num_local_overwrites); 73 value->SetInteger("numLocalOverwrites", num_local_overwrites);
74 value->SetInteger("numServerOverwrites", num_server_overwrites); 74 value->SetInteger("numServerOverwrites", num_server_overwrites);
75 return value; 75 return value;
76 } 76 }
77 77
78 DictionaryValue* DownloadProgressMarkersToValue(
79 const std::string
80 (&download_progress_markers)[syncable::MODEL_TYPE_COUNT]) {
81 DictionaryValue* value = new DictionaryValue();
82 for (int i = syncable::FIRST_REAL_MODEL_TYPE;
83 i < syncable::MODEL_TYPE_COUNT; ++i) {
84 // TODO(akalin): Unpack the value into a protobuf.
85 std::string base64_marker;
86 bool encoded =
87 base::Base64Encode(download_progress_markers[i], &base64_marker);
88 DCHECK(encoded);
89 value->SetString(
90 syncable::ModelTypeToString(syncable::ModelTypeFromInt(i)),
91 base64_marker);
92 }
93 return value;
94 }
95
96 ErrorCounters::ErrorCounters() 78 ErrorCounters::ErrorCounters()
97 : last_download_updates_result(UNSET), 79 : last_download_updates_result(UNSET),
98 last_post_commit_result(UNSET), 80 last_post_commit_result(UNSET),
99 last_process_commit_response_result(UNSET) { 81 last_process_commit_response_result(UNSET) {
100 } 82 }
101 83
84 SyncSessionSnapshot::SyncSessionSnapshot()
85 : num_server_changes_remaining_(0),
86 is_share_usable_(false),
87 has_more_to_sync_(false),
88 is_silenced_(false),
89 unsynced_count_(0),
90 num_encryption_conflicts_(0),
91 num_hierarchy_conflicts_(0),
92 num_simple_conflicts_(0),
93 num_server_conflicts_(0),
94 did_commit_items_(false),
95 notifications_enabled_(false),
96 num_entries_(0),
97 retry_scheduled_(false) {
98 }
99
102 SyncSessionSnapshot::SyncSessionSnapshot( 100 SyncSessionSnapshot::SyncSessionSnapshot(
103 const SyncerStatus& syncer_status, 101 const SyncerStatus& syncer_status,
104 const ErrorCounters& errors, 102 const ErrorCounters& errors,
105 int64 num_server_changes_remaining, 103 int64 num_server_changes_remaining,
106 bool is_share_usable, 104 bool is_share_usable,
107 syncable::ModelTypeSet initial_sync_ended, 105 syncable::ModelTypeSet initial_sync_ended,
108 const std::string 106 const syncable::ModelTypePayloadMap& download_progress_markers,
109 (&download_progress_markers)[syncable::MODEL_TYPE_COUNT],
110 bool more_to_sync, 107 bool more_to_sync,
111 bool is_silenced, 108 bool is_silenced,
112 int64 unsynced_count, 109 int64 unsynced_count,
113 int num_encryption_conflicts, 110 int num_encryption_conflicts,
114 int num_hierarchy_conflicts, 111 int num_hierarchy_conflicts,
115 int num_simple_conflicts, 112 int num_simple_conflicts,
116 int num_server_conflicts, 113 int num_server_conflicts,
117 bool did_commit_items, 114 bool did_commit_items,
118 const SyncSourceInfo& source, 115 const SyncSourceInfo& source,
119 bool notifications_enabled, 116 bool notifications_enabled,
120 size_t num_entries, 117 size_t num_entries,
121 base::Time sync_start_time, 118 base::Time sync_start_time,
122 bool retry_scheduled) 119 bool retry_scheduled)
123 : syncer_status(syncer_status), 120 : syncer_status_(syncer_status),
124 errors(errors), 121 errors_(errors),
125 num_server_changes_remaining(num_server_changes_remaining), 122 num_server_changes_remaining_(num_server_changes_remaining),
126 is_share_usable(is_share_usable), 123 is_share_usable_(is_share_usable),
127 initial_sync_ended(initial_sync_ended), 124 initial_sync_ended_(initial_sync_ended),
128 download_progress_markers(), 125 download_progress_markers_(download_progress_markers),
129 has_more_to_sync(more_to_sync), 126 has_more_to_sync_(more_to_sync),
130 is_silenced(is_silenced), 127 is_silenced_(is_silenced),
131 unsynced_count(unsynced_count), 128 unsynced_count_(unsynced_count),
132 num_encryption_conflicts(num_encryption_conflicts), 129 num_encryption_conflicts_(num_encryption_conflicts),
133 num_hierarchy_conflicts(num_hierarchy_conflicts), 130 num_hierarchy_conflicts_(num_hierarchy_conflicts),
134 num_simple_conflicts(num_simple_conflicts), 131 num_simple_conflicts_(num_simple_conflicts),
135 num_server_conflicts(num_server_conflicts), 132 num_server_conflicts_(num_server_conflicts),
136 did_commit_items(did_commit_items), 133 did_commit_items_(did_commit_items),
137 source(source), 134 source_(source),
138 notifications_enabled(notifications_enabled), 135 notifications_enabled_(notifications_enabled),
139 num_entries(num_entries), 136 num_entries_(num_entries),
140 sync_start_time(sync_start_time), 137 sync_start_time_(sync_start_time),
141 retry_scheduled(retry_scheduled) { 138 retry_scheduled_(retry_scheduled) {
142 for (int i = syncable::FIRST_REAL_MODEL_TYPE;
143 i < syncable::MODEL_TYPE_COUNT; ++i) {
144 const_cast<std::string&>(this->download_progress_markers[i]).assign(
145 download_progress_markers[i]);
146 }
147 } 139 }
148 140
149 SyncSessionSnapshot::~SyncSessionSnapshot() {} 141 SyncSessionSnapshot::~SyncSessionSnapshot() {}
150 142
151 DictionaryValue* SyncSessionSnapshot::ToValue() const { 143 DictionaryValue* SyncSessionSnapshot::ToValue() const {
152 DictionaryValue* value = new DictionaryValue(); 144 DictionaryValue* value = new DictionaryValue();
153 value->Set("syncerStatus", syncer_status.ToValue()); 145 value->Set("syncerStatus", syncer_status_.ToValue());
154 // We don't care too much if we lose precision here. 146 // We don't care too much if we lose precision here.
155 value->SetInteger("numServerChangesRemaining", 147 value->SetInteger("numServerChangesRemaining",
156 static_cast<int>(num_server_changes_remaining)); 148 static_cast<int>(num_server_changes_remaining_));
157 value->SetBoolean("isShareUsable", is_share_usable); 149 value->SetBoolean("isShareUsable", is_share_usable_);
158 value->Set("initialSyncEnded", 150 value->Set("initialSyncEnded",
159 syncable::ModelTypeSetToValue(initial_sync_ended)); 151 syncable::ModelTypeSetToValue(initial_sync_ended_));
160 value->Set("downloadProgressMarkers", 152 value->Set("downloadProgressMarkers",
161 DownloadProgressMarkersToValue(download_progress_markers)); 153 syncable::ModelTypePayloadMapToValue(download_progress_markers_));
162 value->SetBoolean("hasMoreToSync", has_more_to_sync); 154 value->SetBoolean("hasMoreToSync", has_more_to_sync_);
163 value->SetBoolean("isSilenced", is_silenced); 155 value->SetBoolean("isSilenced", is_silenced_);
164 // We don't care too much if we lose precision here, also. 156 // We don't care too much if we lose precision here, also.
165 value->SetInteger("unsyncedCount", 157 value->SetInteger("unsyncedCount",
166 static_cast<int>(unsynced_count)); 158 static_cast<int>(unsynced_count_));
167 value->SetInteger("numEncryptionConflicts", 159 value->SetInteger("numEncryptionConflicts",
168 num_encryption_conflicts); 160 num_encryption_conflicts_);
169 value->SetInteger("numHierarchyConflicts", 161 value->SetInteger("numHierarchyConflicts",
170 num_hierarchy_conflicts); 162 num_hierarchy_conflicts_);
171 value->SetInteger("numSimpleConflicts", 163 value->SetInteger("numSimpleConflicts",
172 num_simple_conflicts); 164 num_simple_conflicts_);
173 value->SetInteger("numServerConflicts", 165 value->SetInteger("numServerConflicts",
174 num_server_conflicts); 166 num_server_conflicts_);
175 value->SetBoolean("didCommitItems", did_commit_items); 167 value->SetBoolean("didCommitItems", did_commit_items_);
176 value->SetInteger("numEntries", num_entries); 168 value->SetInteger("numEntries", num_entries_);
177 value->Set("source", source.ToValue()); 169 value->Set("source", source_.ToValue());
178 value->SetBoolean("notificationsEnabled", notifications_enabled); 170 value->SetBoolean("notificationsEnabled", notifications_enabled_);
179 return value; 171 return value;
180 } 172 }
181 173
182 std::string SyncSessionSnapshot::ToString() const { 174 std::string SyncSessionSnapshot::ToString() const {
183 scoped_ptr<DictionaryValue> value(ToValue()); 175 scoped_ptr<DictionaryValue> value(ToValue());
184 std::string json; 176 std::string json;
185 base::JSONWriter::WriteWithOptions(value.get(), 177 base::JSONWriter::WriteWithOptions(value.get(),
186 base::JSONWriter::OPTIONS_PRETTY_PRINT, 178 base::JSONWriter::OPTIONS_PRETTY_PRINT,
187 &json); 179 &json);
188 return json; 180 return json;
189 } 181 }
190 182
183 SyncerStatus SyncSessionSnapshot::syncer_status() const {
184 return syncer_status_;
185 }
186
187 ErrorCounters SyncSessionSnapshot::errors() const {
188 return errors_;
189 }
190
191 int64 SyncSessionSnapshot::num_server_changes_remaining() const {
192 return num_server_changes_remaining_;
193 }
194
195 bool SyncSessionSnapshot::is_share_usable() const {
196 return is_share_usable_;
197 }
198
199 syncable::ModelTypeSet SyncSessionSnapshot::initial_sync_ended() const {
200 return initial_sync_ended_;
201 }
202
203 syncable::ModelTypePayloadMap
204 SyncSessionSnapshot::download_progress_markers() const {
205 return download_progress_markers_;
206 }
207
208 bool SyncSessionSnapshot::has_more_to_sync() const {
209 return has_more_to_sync_;
210 }
211
212 bool SyncSessionSnapshot::is_silenced() const {
213 return is_silenced_;
214 }
215
216 int64 SyncSessionSnapshot::unsynced_count() const {
217 return unsynced_count_;
218 }
219
220 int SyncSessionSnapshot::num_encryption_conflicts() const {
221 return num_encryption_conflicts_;
222 }
223
224 int SyncSessionSnapshot::num_hierarchy_conflicts() const {
225 return num_hierarchy_conflicts_;
226 }
227
228 int SyncSessionSnapshot::num_simple_conflicts() const {
229 return num_simple_conflicts_;
230 }
231
232 int SyncSessionSnapshot::num_server_conflicts() const {
233 return num_server_conflicts_;
234 }
235
236 bool SyncSessionSnapshot::did_commit_items() const {
237 return did_commit_items_;
238 }
239
240 SyncSourceInfo SyncSessionSnapshot::source() const {
241 return source_;
242 }
243
244 bool SyncSessionSnapshot::notifications_enabled() const {
245 return notifications_enabled_;
246 }
247
248 size_t SyncSessionSnapshot::num_entries() const {
249 return num_entries_;
250 }
251
252 base::Time SyncSessionSnapshot::sync_start_time() const {
253 return sync_start_time_;
254 }
255
256 bool SyncSessionSnapshot::retry_scheduled() const {
257 return retry_scheduled_;
258 }
259
191 ConflictProgress::ConflictProgress(bool* dirty_flag) 260 ConflictProgress::ConflictProgress(bool* dirty_flag)
192 : num_server_conflicting_items(0), num_hierarchy_conflicting_items(0), 261 : num_server_conflicting_items(0), num_hierarchy_conflicting_items(0),
193 num_encryption_conflicting_items(0), dirty_(dirty_flag) { 262 num_encryption_conflicting_items(0), dirty_(dirty_flag) {
194 } 263 }
195 264
196 ConflictProgress::~ConflictProgress() { 265 ConflictProgress::~ConflictProgress() {
197 } 266 }
198 267
199 bool ConflictProgress::HasSimpleConflictItem(const syncable::Id& id) const { 268 bool ConflictProgress::HasSimpleConflictItem(const syncable::Id& id) const {
200 return simple_conflicting_item_ids_.count(id) > 0; 269 return simple_conflicting_item_ids_.count(id) > 0;
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 392
324 PerModelSafeGroupState::PerModelSafeGroupState(bool* dirty_flag) 393 PerModelSafeGroupState::PerModelSafeGroupState(bool* dirty_flag)
325 : conflict_progress(dirty_flag) { 394 : conflict_progress(dirty_flag) {
326 } 395 }
327 396
328 PerModelSafeGroupState::~PerModelSafeGroupState() { 397 PerModelSafeGroupState::~PerModelSafeGroupState() {
329 } 398 }
330 399
331 } // namespace sessions 400 } // namespace sessions
332 } // namespace browser_sync 401 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698