job_reader.h 925 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <yt/cpp/mapreduce/interface/io.h>
  3. #include <util/stream/buffered.h>
  4. #include <util/stream/file.h>
  5. #include <util/system/file.h>
  6. namespace NYT {
  7. ////////////////////////////////////////////////////////////////////////////////
  8. class TJobReader
  9. : public TRawTableReader
  10. {
  11. public:
  12. explicit TJobReader(int fd);
  13. explicit TJobReader(const TFile& file);
  14. bool Retry(
  15. const TMaybe<ui32>& rangeIndex,
  16. const TMaybe<ui64>& rowIndex,
  17. const std::exception_ptr& error) override;
  18. void ResetRetries() override;
  19. bool HasRangeIndices() const override;
  20. protected:
  21. size_t DoRead(void* buf, size_t len) override;
  22. private:
  23. TFile FdFile_;
  24. TUnbufferedFileInput FdInput_;
  25. TBufferedInput BufferedInput_;
  26. static const size_t BUFFER_SIZE = 64 << 10;
  27. };
  28. ////////////////////////////////////////////////////////////////////////////////
  29. } // namespace NYT