diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:17 +0300 |
commit | d3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch) | |
tree | dd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/yson/parser.cpp | |
parent | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff) | |
download | ydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/yson/parser.cpp')
-rw-r--r-- | library/cpp/yson/parser.cpp | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/library/cpp/yson/parser.cpp b/library/cpp/yson/parser.cpp index 45f8d87014..783f9b9047 100644 --- a/library/cpp/yson/parser.cpp +++ b/library/cpp/yson/parser.cpp @@ -7,173 +7,173 @@ #include <util/generic/buffer.h> namespace NYson { - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// - class TYsonParser::TImpl { - public: - TImpl( + class TYsonParser::TImpl { + public: + TImpl( NYT::NYson::IYsonConsumer* consumer, - IInputStream* stream, - EYsonType type, - bool enableLinePositionInfo, - TMaybe<ui64> memoryLimit = Nothing()) - : Consumer_(consumer) - , Stream_(stream) - , Type_(type) - , EnableLinePositionInfo_(enableLinePositionInfo) - , MemoryLimit_(memoryLimit) - { - } - - void Parse() { - TBuffer buffer(64 << 10); + IInputStream* stream, + EYsonType type, + bool enableLinePositionInfo, + TMaybe<ui64> memoryLimit = Nothing()) + : Consumer_(consumer) + , Stream_(stream) + , Type_(type) + , EnableLinePositionInfo_(enableLinePositionInfo) + , MemoryLimit_(memoryLimit) + { + } + + void Parse() { + TBuffer buffer(64 << 10); ParseYsonStreamImpl<NYT::NYson::IYsonConsumer, TStreamReader>( - TStreamReader(Stream_, buffer.Data(), buffer.Capacity()), - Consumer_, - Type_, - EnableLinePositionInfo_, - MemoryLimit_); - } - - private: + TStreamReader(Stream_, buffer.Data(), buffer.Capacity()), + Consumer_, + Type_, + EnableLinePositionInfo_, + MemoryLimit_); + } + + private: NYT::NYson::IYsonConsumer* Consumer_; - IInputStream* Stream_; - EYsonType Type_; - bool EnableLinePositionInfo_; - TMaybe<ui64> MemoryLimit_; - }; - - //////////////////////////////////////////////////////////////////////////////// - - TYsonParser::TYsonParser( + IInputStream* Stream_; + EYsonType Type_; + bool EnableLinePositionInfo_; + TMaybe<ui64> MemoryLimit_; + }; + + //////////////////////////////////////////////////////////////////////////////// + + TYsonParser::TYsonParser( NYT::NYson::IYsonConsumer* consumer, IInputStream* stream, EYsonType type, bool enableLinePositionInfo, - TMaybe<ui64> memoryLimit) - : Impl(new TImpl(consumer, stream, type, enableLinePositionInfo, memoryLimit)) + TMaybe<ui64> memoryLimit) + : Impl(new TImpl(consumer, stream, type, enableLinePositionInfo, memoryLimit)) { } - TYsonParser::~TYsonParser() { - } + TYsonParser::~TYsonParser() { + } - void TYsonParser::Parse() { - Impl->Parse(); - } + void TYsonParser::Parse() { + Impl->Parse(); + } - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// - class TStatelessYsonParser::TImpl { - private: - THolder<TStatelessYsonParserImplBase> Impl; + class TStatelessYsonParser::TImpl { + private: + THolder<TStatelessYsonParserImplBase> Impl; - public: - TImpl( + public: + TImpl( NYT::NYson::IYsonConsumer* consumer, - bool enableLinePositionInfo, - TMaybe<ui64> memoryLimit) - : Impl( - enableLinePositionInfo + bool enableLinePositionInfo, + TMaybe<ui64> memoryLimit) + : Impl( + enableLinePositionInfo ? static_cast<TStatelessYsonParserImplBase*>(new TStatelessYsonParserImpl<NYT::NYson::IYsonConsumer, true>(consumer, memoryLimit)) : static_cast<TStatelessYsonParserImplBase*>(new TStatelessYsonParserImpl<NYT::NYson::IYsonConsumer, false>(consumer, memoryLimit))) - { - } + { + } void Parse(const TStringBuf& data, EYsonType type = ::NYson::EYsonType::Node) { - Impl->Parse(data, type); - } - }; + Impl->Parse(data, type); + } + }; - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// - TStatelessYsonParser::TStatelessYsonParser( + TStatelessYsonParser::TStatelessYsonParser( NYT::NYson::IYsonConsumer* consumer, bool enableLinePositionInfo, TMaybe<ui64> memoryLimit) - : Impl(new TImpl(consumer, enableLinePositionInfo, memoryLimit)) - { - } - - TStatelessYsonParser::~TStatelessYsonParser() { - } - - void TStatelessYsonParser::Parse(const TStringBuf& data, EYsonType type) { + : Impl(new TImpl(consumer, enableLinePositionInfo, memoryLimit)) + { + } + + TStatelessYsonParser::~TStatelessYsonParser() { + } + + void TStatelessYsonParser::Parse(const TStringBuf& data, EYsonType type) { Impl->Parse(data, type); } - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// - void ParseYsonStringBuffer( - const TStringBuf& buffer, + void ParseYsonStringBuffer( + const TStringBuf& buffer, NYT::NYson::IYsonConsumer* consumer, - EYsonType type, - bool enableLinePositionInfo, - TMaybe<ui64> memoryLimit) { + EYsonType type, + bool enableLinePositionInfo, + TMaybe<ui64> memoryLimit) { ParseYsonStreamImpl<NYT::NYson::IYsonConsumer, TStringReader>( - TStringReader(buffer.begin(), buffer.end()), - consumer, - type, - enableLinePositionInfo, - memoryLimit); - } - - //////////////////////////////////////////////////////////////////////////////// - - class TYsonListParser::TImpl { - public: - TImpl( + TStringReader(buffer.begin(), buffer.end()), + consumer, + type, + enableLinePositionInfo, + memoryLimit); + } + + //////////////////////////////////////////////////////////////////////////////// + + class TYsonListParser::TImpl { + public: + TImpl( NYT::NYson::IYsonConsumer* consumer, - IInputStream* stream, - bool enableLinePositionInfo, - TMaybe<ui64> memoryLimit = Nothing()) - : Consumer_(consumer) - , Stream_(stream) - , EnableLinePositionInfo_(enableLinePositionInfo) - , MemoryLimit_(memoryLimit) - , Buffer_(64 << 10) - , Reader_(Stream_, Buffer_.Data(), Buffer_.Capacity()) - { - } - - bool Parse() { - if (!Impl_) { - Impl_.Reset( - EnableLinePositionInfo_ + IInputStream* stream, + bool enableLinePositionInfo, + TMaybe<ui64> memoryLimit = Nothing()) + : Consumer_(consumer) + , Stream_(stream) + , EnableLinePositionInfo_(enableLinePositionInfo) + , MemoryLimit_(memoryLimit) + , Buffer_(64 << 10) + , Reader_(Stream_, Buffer_.Data(), Buffer_.Capacity()) + { + } + + bool Parse() { + if (!Impl_) { + Impl_.Reset( + EnableLinePositionInfo_ ? static_cast<TYsonListParserImplBase*>(new TYsonListParserImpl<NYT::NYson::IYsonConsumer, TStreamReader, true>(Reader_, Consumer_, MemoryLimit_)) : static_cast<TYsonListParserImplBase*>(new TYsonListParserImpl<NYT::NYson::IYsonConsumer, TStreamReader, false>(Reader_, Consumer_, MemoryLimit_))); - } - return Impl_->Parse(); - } + } + return Impl_->Parse(); + } - private: + private: NYT::NYson::IYsonConsumer* Consumer_; - IInputStream* Stream_; - bool EnableLinePositionInfo_; - TMaybe<ui64> MemoryLimit_; - TBuffer Buffer_; - TStreamReader Reader_; - THolder<TYsonListParserImplBase> Impl_; - }; + IInputStream* Stream_; + bool EnableLinePositionInfo_; + TMaybe<ui64> MemoryLimit_; + TBuffer Buffer_; + TStreamReader Reader_; + THolder<TYsonListParserImplBase> Impl_; + }; - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// - TYsonListParser::TYsonListParser( + TYsonListParser::TYsonListParser( NYT::NYson::IYsonConsumer* consumer, IInputStream* stream, bool enableLinePositionInfo, - TMaybe<ui64> memoryLimit) - : Impl(new TImpl(consumer, stream, enableLinePositionInfo, memoryLimit)) + TMaybe<ui64> memoryLimit) + : Impl(new TImpl(consumer, stream, enableLinePositionInfo, memoryLimit)) { } - TYsonListParser::~TYsonListParser() { - } + TYsonListParser::~TYsonListParser() { + } - bool TYsonListParser::Parse() { - return Impl->Parse(); - } + bool TYsonListParser::Parse() { + return Impl->Parse(); + } - //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// } // namespace NYson |