15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "sync/internal_api/public/sessions/update_counters.h" 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/json/json_string_value_serializer.h" 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/values.h" 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace syncer { 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuUpdateCounters::UpdateCounters() 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : num_updates_received(0), 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_reflected_updates_received(0), 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_tombstone_updates_received(0), 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_updates_applied(0), 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_hierarchy_conflict_application_failures(0), 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_encryption_conflict_application_failures(0), 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_server_overwrites(0), 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_local_overwrites(0) {} 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuUpdateCounters::~UpdateCounters() {} 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuscoped_ptr<base::DictionaryValue> UpdateCounters::ToValue() const { 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numUpdatesReceived", num_updates_received); 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numReflectedUpdatesReceived", 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_reflected_updates_received); 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numTombstoneUpdatesReceived", 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_tombstone_updates_received); 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numUpdatesApplied", num_updates_applied); 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numHierarchyConflictApplicationFailures", 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_hierarchy_conflict_application_failures); 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numEncryptionConflictApplicationFailures", 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_encryption_conflict_application_failures); 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numServerOverwrites", num_server_overwrites); 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numLocalOverwrites", num_local_overwrites); 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return value.Pass(); 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liustd::string UpdateCounters::ToString() const { 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string result; 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu scoped_ptr<base::DictionaryValue> value = ToValue(); 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu JSONStringValueSerializer serializer(&result); 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu serializer.Serialize(*value); 505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return result; 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace syncer 54