|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "sync/syncable/write_transaction_info.h" | 
|  |  | 
|  | #include "base/strings/string_number_conversions.h" | 
|  |  | 
|  | namespace syncer { | 
|  | namespace syncable { | 
|  |  | 
|  | WriteTransactionInfo::WriteTransactionInfo( | 
|  | int64 id, | 
|  | tracked_objects::Location location, | 
|  | WriterTag writer, | 
|  | ImmutableEntryKernelMutationMap mutations) | 
|  | : id(id), | 
|  | location_string(location.ToString()), | 
|  | writer(writer), | 
|  | mutations(mutations) {} | 
|  |  | 
|  | WriteTransactionInfo::WriteTransactionInfo() | 
|  | : id(-1), writer(INVALID) {} | 
|  |  | 
|  | WriteTransactionInfo::~WriteTransactionInfo() {} | 
|  |  | 
|  | base::DictionaryValue* WriteTransactionInfo::ToValue( | 
|  | size_t max_mutations_size) const { | 
|  | base::DictionaryValue* dict = new base::DictionaryValue(); | 
|  | dict->SetString("id", base::Int64ToString(id)); | 
|  | dict->SetString("location", location_string); | 
|  | dict->SetString("writer", WriterTagToString(writer)); | 
|  | base::Value* mutations_value = NULL; | 
|  | const size_t mutations_size = mutations.Get().size(); | 
|  | if (mutations_size <= max_mutations_size) { | 
|  | mutations_value = EntryKernelMutationMapToValue(mutations.Get()); | 
|  | } else { | 
|  | mutations_value = | 
|  | new base::StringValue( | 
|  | base::SizeTToString(mutations_size) + " mutations"); | 
|  | } | 
|  | dict->Set("mutations", mutations_value); | 
|  | return dict; | 
|  | } | 
|  |  | 
|  | }  // namespace syncable | 
|  | }  // namespace syncer |