job_reader.h 900 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. virtual bool Retry( const TMaybe<ui32>& /*rangeIndex*/, const TMaybe<ui64>& /*rowIndex*/) override;
  15. virtual void ResetRetries() override;
  16. virtual bool HasRangeIndices() const override;
  17. protected:
  18. size_t DoRead(void* buf, size_t len) override;
  19. private:
  20. TFile FdFile_;
  21. TUnbufferedFileInput FdInput_;
  22. TBufferedInput BufferedInput_;
  23. static const size_t BUFFER_SIZE = 64 << 10;
  24. };
  25. ////////////////////////////////////////////////////////////////////////////////
  26. } // namespace NYT