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/commit_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 LiuCommitCounters::CommitCounters() 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : num_commits_attempted(0), 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_commits_success(0), 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_commits_conflict(0), 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu num_commits_error(0) {} 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuCommitCounters::~CommitCounters() {} 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuscoped_ptr<base::DictionaryValue> CommitCounters::ToValue() const { 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue()); 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numCommitsAttempted", num_commits_attempted); 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numCommitsSuccess", num_commits_success); 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numCommitsConflict", num_commits_conflict); 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu value->SetInteger("numCommitsError", num_commits_error); 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return value.Pass(); 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liustd::string CommitCounters::ToString() const { 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu std::string result; 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu scoped_ptr<base::DictionaryValue> value = ToValue(); 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu JSONStringValueSerializer serializer(&result); 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu serializer.Serialize(*value); 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return result; 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace syncer 38