stream_table_reader.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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(const TMaybe<ui32>& /* rangeIndex */, const TMaybe<ui64>& /* rowIndex */) override
  14. {
  15. return false;
  16. }
  17. void ResetRetries() override
  18. { }
  19. bool HasRangeIndices() const override
  20. {
  21. return false;
  22. }
  23. protected:
  24. size_t DoRead(void* buf, size_t len) override
  25. {
  26. return Stream_->Read(buf, len);
  27. }
  28. private:
  29. IInputStream* Stream_;
  30. };
  31. ////////////////////////////////////////////////////////////////////////////////
  32. ::TIntrusivePtr<IProtoReaderImpl> CreateProtoReader(
  33. IInputStream* stream,
  34. const TTableReaderOptions& /* options */,
  35. const ::google::protobuf::Descriptor* descriptor);
  36. ::TIntrusivePtr<IProtoReaderImpl> CreateProtoReader(
  37. IInputStream* stream,
  38. const TTableReaderOptions& /* options */,
  39. TVector<const ::google::protobuf::Descriptor*> descriptors);
  40. ////////////////////////////////////////////////////////////////////////////////
  41. } // namespace NDetail
  42. template <>
  43. TTableReaderPtr<TNode> CreateTableReader<TNode>(
  44. IInputStream* stream, const TTableReaderOptions& options);
  45. template <>
  46. TTableReaderPtr<TYaMRRow> CreateTableReader<TYaMRRow>(
  47. IInputStream* stream, const TTableReaderOptions& /*options*/);
  48. } // namespace NYT