yamr_table_reader.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include "lenval_table_reader.h"
  3. #include <yt/cpp/mapreduce/interface/io.h>
  4. namespace NYT {
  5. class TRawTableReader;
  6. struct TClientContext;
  7. ////////////////////////////////////////////////////////////////////////////////
  8. class TYaMRTableReader
  9. : public IYaMRReaderImpl
  10. , public TLenvalTableReader
  11. {
  12. public:
  13. explicit TYaMRTableReader(::TIntrusivePtr<TRawTableReader> input);
  14. ~TYaMRTableReader() override;
  15. const TYaMRRow& GetRow() const override;
  16. bool IsValid() const override;
  17. void Next() override;
  18. ui32 GetTableIndex() const override;
  19. ui32 GetRangeIndex() const override;
  20. ui64 GetRowIndex() const override;
  21. void NextKey() override;
  22. TMaybe<size_t> GetReadByteCount() const override;
  23. bool IsEndOfStream() const override;
  24. bool IsRawReaderExhausted() const override;
  25. private:
  26. void ReadField(TString* result, i32 length);
  27. void ReadRow();
  28. void SkipRow() override;
  29. TYaMRRow Row_;
  30. TString Key_;
  31. TString SubKey_;
  32. TString Value_;
  33. };
  34. ////////////////////////////////////////////////////////////////////////////////
  35. } // namespace NYT