| Index: chrome/browser/sync/api/sync_data.cc
|
| diff --git a/chrome/browser/sync/api/sync_data.cc b/chrome/browser/sync/api/sync_data.cc
|
| index 1c2d4967423cc72cb69288fdb3a7fe96d807d96e..123f67dc497609e58f2b709b5cd243efb0692d60 100644
|
| --- a/chrome/browser/sync/api/sync_data.cc
|
| +++ b/chrome/browser/sync/api/sync_data.cc
|
| @@ -4,8 +4,16 @@
|
|
|
| #include "chrome/browser/sync/api/sync_data.h"
|
|
|
| +#include <ostream>
|
| +
|
| +#include "base/json/json_writer.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/string_number_conversions.h"
|
| +#include "base/values.h"
|
| #include "chrome/browser/sync/internal_api/base_node.h"
|
| +#include "chrome/browser/sync/protocol/proto_value_conversions.h"
|
| #include "chrome/browser/sync/protocol/sync.pb.h"
|
| +#include "chrome/browser/sync/syncable/model_type.h"
|
|
|
| void SyncData::ImmutableSyncEntityTraits::InitializeWrapper(
|
| Wrapper* wrapper) {
|
| @@ -102,3 +110,27 @@ int64 SyncData::GetRemoteId() const {
|
| bool SyncData::IsLocal() const {
|
| return id_ == sync_api::kInvalidId;
|
| }
|
| +
|
| +std::string SyncData::ToString() const {
|
| + if (!IsValid())
|
| + return "<Invalid SyncData>";
|
| +
|
| + std::string type = syncable::ModelTypeToString(GetDataType());
|
| + std::string specifics;
|
| + scoped_ptr<DictionaryValue> value(
|
| + browser_sync::EntitySpecificsToValue(GetSpecifics()));
|
| + base::JSONWriter::Write(value.get(), true, &specifics);
|
| +
|
| + if (IsLocal()) {
|
| + return "{ isLocal: true, type: " + type + ", tag: " + GetTag() +
|
| + ", title: " + GetTitle() + ", specifics: " + specifics + "}";
|
| + }
|
| +
|
| + std::string id = base::Int64ToString(GetRemoteId());
|
| + return "{ isLocal: false, type: " + type + ", specifics: " + specifics +
|
| + ", id: " + id + "}";
|
| +}
|
| +
|
| +void PrintTo(const SyncData& sync_data, std::ostream* os) {
|
| + *os << sync_data.ToString();
|
| +}
|
|
|