| Index: sync/syncable/entry_kernel.cc
|
| diff --git a/sync/syncable/entry_kernel.cc b/sync/syncable/entry_kernel.cc
|
| index d73acafd850f76d58590ed2a70cb17fe976b0fb9..a60dead16926b060b5ecca9e550441e1711fed80 100644
|
| --- a/sync/syncable/entry_kernel.cc
|
| +++ b/sync/syncable/entry_kernel.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "sync/syncable/entry_kernel.h"
|
|
|
| +#include "base/json/string_escape.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "sync/protocol/proto_value_conversions.h"
|
| #include "sync/syncable/syncable_enum_conversions.h"
|
| @@ -236,5 +237,54 @@ base::DictionaryValue* EntryKernelMutationToValue(
|
| return dict;
|
| }
|
|
|
| +std::ostream& operator<<(std::ostream& os, const EntryKernel& entry_kernel) {
|
| + int i;
|
| + EntryKernel* const kernel = const_cast<EntryKernel*>(&entry_kernel);
|
| + for (i = BEGIN_FIELDS; i < INT64_FIELDS_END; ++i) {
|
| + os << g_metas_columns[i].name << ": "
|
| + << kernel->ref(static_cast<Int64Field>(i)) << ", ";
|
| + }
|
| + for (; i < TIME_FIELDS_END; ++i) {
|
| + os << g_metas_columns[i].name << ": "
|
| + << GetTimeDebugString(kernel->ref(static_cast<TimeField>(i))) << ", ";
|
| + }
|
| + for (; i < ID_FIELDS_END; ++i) {
|
| + os << g_metas_columns[i].name << ": "
|
| + << kernel->ref(static_cast<IdField>(i)) << ", ";
|
| + }
|
| + os << "Flags: ";
|
| + for (; i < BIT_FIELDS_END; ++i) {
|
| + if (kernel->ref(static_cast<BitField>(i)))
|
| + os << g_metas_columns[i].name << ", ";
|
| + }
|
| + for (; i < STRING_FIELDS_END; ++i) {
|
| + const std::string& field = kernel->ref(static_cast<StringField>(i));
|
| + os << g_metas_columns[i].name << ": " << field << ", ";
|
| + }
|
| + for (; i < PROTO_FIELDS_END; ++i) {
|
| + std::string escaped_str = base::EscapeBytesAsInvalidJSONString(
|
| + kernel->ref(static_cast<ProtoField>(i)).SerializeAsString(), false);
|
| + os << g_metas_columns[i].name << ": " << escaped_str << ", ";
|
| + }
|
| + for (; i < UNIQUE_POSITION_FIELDS_END; ++i) {
|
| + os << g_metas_columns[i].name << ": "
|
| + << kernel->ref(static_cast<UniquePositionField>(i)).ToDebugString()
|
| + << ", ";
|
| + }
|
| + for (; i < ATTACHMENT_METADATA_FIELDS_END; ++i) {
|
| + std::string escaped_str = base::EscapeBytesAsInvalidJSONString(
|
| + kernel->ref(static_cast<AttachmentMetadataField>(i))
|
| + .SerializeAsString(),
|
| + false);
|
| + os << g_metas_columns[i].name << ": " << escaped_str << ", ";
|
| + }
|
| + os << "TempFlags: ";
|
| + for (; i < BIT_TEMPS_END; ++i) {
|
| + if (kernel->ref(static_cast<BitTemp>(i)))
|
| + os << "#" << i - BIT_TEMPS_BEGIN << ", ";
|
| + }
|
| + return os;
|
| +}
|
| +
|
| } // namespace syncer
|
| } // namespace syncable
|
|
|