diff options
author | gangwu <gangwu@chromium.org> | 2015-08-07 13:58:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-07 20:58:55 +0000 |
commit | 81f85526af97a9e160aa839c9460b535694a0e04 (patch) | |
tree | 82c8394e13a3749d279848d406acb39444a7864b /sync/syncable/entry_kernel.cc | |
parent | 46a37de67fddcbab4d9adc7b5ade79f582af8b93 (diff) | |
download | chromium_src-81f85526af97a9e160aa839c9460b535694a0e04.zip chromium_src-81f85526af97a9e160aa839c9460b535694a0e04.tar.gz chromium_src-81f85526af97a9e160aa839c9460b535694a0e04.tar.bz2 |
Add more info for invalid position check.
BUG=332371
Review URL: https://codereview.chromium.org/1258863007
Cr-Commit-Position: refs/heads/master@{#342437}
Diffstat (limited to 'sync/syncable/entry_kernel.cc')
-rw-r--r-- | sync/syncable/entry_kernel.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/sync/syncable/entry_kernel.cc b/sync/syncable/entry_kernel.cc index d73acaf..8fb611f 100644 --- a/sync/syncable/entry_kernel.cc +++ b/sync/syncable/entry_kernel.cc @@ -4,8 +4,10 @@ #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_columns.h" #include "sync/syncable/syncable_enum_conversions.h" #include "sync/util/cryptographer.h" @@ -236,5 +238,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 |