diff options
author | ulanovgeorgiy <ulanovgeorgiy@yandex-team.com> | 2023-01-13 13:20:30 +0300 |
---|---|---|
committer | ulanovgeorgiy <ulanovgeorgiy@yandex-team.com> | 2023-01-13 13:20:30 +0300 |
commit | 29cc6da1f546541c9ccce57bf06114f2faca8ee8 (patch) | |
tree | fa13d26ba6125260101ced2aa7aaf25e0d82ddc6 /library/cpp/protobuf/util/pb_io.h | |
parent | 25a3b914f4b23ba191c68979412cb09dd9bedc90 (diff) | |
download | ydb-29cc6da1f546541c9ccce57bf06114f2faca8ee8.tar.gz |
flag for write protobuf error to exception message instead of cerr
Diffstat (limited to 'library/cpp/protobuf/util/pb_io.h')
-rw-r--r-- | library/cpp/protobuf/util/pb_io.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/library/cpp/protobuf/util/pb_io.h b/library/cpp/protobuf/util/pb_io.h index 493c84cb5f..04c6ebb305 100644 --- a/library/cpp/protobuf/util/pb_io.h +++ b/library/cpp/protobuf/util/pb_io.h @@ -58,44 +58,46 @@ void SerializeToTextFormatWithEnumId(const NProtoBuf::Message& m, IOutputStream& enum class EParseFromTextFormatOption : ui64 { // Unknown fields will be ignored by the parser - AllowUnknownField = 1 + AllowUnknownField = 1, + // Error message will be writen to exception message instead of cerr + WriteErrorMessageToException = 2 }; Y_DECLARE_FLAGS(EParseFromTextFormatOptions, EParseFromTextFormatOption); // Parse a text-format protocol message from the given file into message object. void ParseFromTextFormat(const TString& fileName, NProtoBuf::Message& m, - const EParseFromTextFormatOptions options = {}); + const EParseFromTextFormatOptions options = {}, IOutputStream* warningStream = nullptr); // NOTE: will read `in` till the end. void ParseFromTextFormat(IInputStream& in, NProtoBuf::Message& m, - const EParseFromTextFormatOptions options = {}); + const EParseFromTextFormatOptions options = {}, IOutputStream* warningStream = nullptr); /* @return `true` if parsing was successfull and `false` otherwise. * * @see `ParseFromTextFormat` */ bool TryParseFromTextFormat(const TString& fileName, NProtoBuf::Message& m, - const EParseFromTextFormatOptions options = {}); + const EParseFromTextFormatOptions options = {}, IOutputStream* warningStream = nullptr); // NOTE: will read `in` till the end. bool TryParseFromTextFormat(IInputStream& in, NProtoBuf::Message& m, - const EParseFromTextFormatOptions options = {}); + const EParseFromTextFormatOptions options = {}, IOutputStream* warningStream = nullptr); // @see `ParseFromTextFormat` template <typename T> static T ParseFromTextFormat(const TString& fileName, - const EParseFromTextFormatOptions options = {}) { + const EParseFromTextFormatOptions options = {}, IOutputStream* warningStream = nullptr) { T message; - ParseFromTextFormat(fileName, message, options); + ParseFromTextFormat(fileName, message, options, warningStream); return message; } // @see `ParseFromTextFormat` // NOTE: will read `in` till the end. template <typename T> -static T ParseFromTextFormat(IInputStream& in, - const EParseFromTextFormatOptions options = {}) { +static T ParseFromTextFormat(IInputStream& in, const EParseFromTextFormatOptions options = {}, + IOutputStream* warningStream = nullptr) { T message; - ParseFromTextFormat(in, message, options); + ParseFromTextFormat(in, message, options, warningStream); return message; } |