#pragma once #include "event.h" #include "input.h" #include "stream_type.h" #include #include namespace NYsonPull { namespace NDetail { class reader_impl; } //! \brief YSON reader facade class. //! //! Owns an input stream. class TReader { THolder Stream_; THolder Impl_; public: TReader(THolder stream, EStreamType mode); TReader(TReader&&) noexcept; ~TReader(); //! \brief Advance stream to next event and return it. //! //! Any event data is invalidated by a call to NextEvent(); const TEvent& NextEvent(); //! \brief Get last returned event. const TEvent& LastEvent() const noexcept; }; }