stream_table_reader.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include <yt/cpp/mapreduce/interface/io.h>
  3. namespace NYT {
  4. namespace NDetail {
  5. ////////////////////////////////////////////////////////////////////////////////
  6. class TInputStreamProxy
  7. : public TRawTableReader
  8. {
  9. public:
  10. TInputStreamProxy(IInputStream* stream)
  11. : Stream_(stream)
  12. { }
  13. bool Retry(
  14. const TMaybe<ui32>& /*rangeIndex*/,
  15. const TMaybe<ui64>& /*rowIndex*/,
  16. const std::exception_ptr& /*error*/) override
  17. {
  18. return false;
  19. }
  20. void ResetRetries() override
  21. { }
  22. bool HasRangeIndices() const override
  23. {
  24. return false;
  25. }
  26. protected:
  27. size_t DoRead(void* buf, size_t len) override
  28. {
  29. return Stream_->Read(buf, len);
  30. }
  31. private:
  32. IInputStream* Stream_;
  33. };
  34. ////////////////////////////////////////////////////////////////////////////////
  35. ::TIntrusivePtr<IProtoReaderImpl> CreateProtoReader(
  36. IInputStream* stream,
  37. const TTableReaderOptions& /* options */,
  38. const ::google::protobuf::Descriptor* descriptor);
  39. ::TIntrusivePtr<IProtoReaderImpl> CreateProtoReader(
  40. IInputStream* stream,
  41. const TTableReaderOptions& /* options */,
  42. TVector<const ::google::protobuf::Descriptor*> descriptors);
  43. ////////////////////////////////////////////////////////////////////////////////
  44. } // namespace NDetail
  45. template <>
  46. TTableReaderPtr<TNode> CreateTableReader<TNode>(
  47. IInputStream* stream, const TTableReaderOptions& options);
  48. template <>
  49. TTableReaderPtr<TYaMRRow> CreateTableReader<TYaMRRow>(
  50. IInputStream* stream, const TTableReaderOptions& /*options*/);
  51. } // namespace NYT