client_writer.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <yt/cpp/mapreduce/common/fwd.h>
  3. #include <yt/cpp/mapreduce/http/requests.h>
  4. #include <yt/cpp/mapreduce/interface/io.h>
  5. namespace NYT {
  6. struct TTableWriterOptions;
  7. ////////////////////////////////////////////////////////////////////////////////
  8. class TClientWriter
  9. : public IProxyOutput
  10. {
  11. public:
  12. TClientWriter(
  13. const TRichYPath& path,
  14. IClientRetryPolicyPtr clientRetryPolicy,
  15. ITransactionPingerPtr transactionPinger,
  16. const TClientContext& context,
  17. const TTransactionId& transactionId,
  18. const TMaybe<TFormat>& format,
  19. const TTableWriterOptions& options);
  20. size_t GetStreamCount() const override;
  21. IOutputStream* GetStream(size_t tableIndex) const override;
  22. void OnRowFinished(size_t tableIndex) override;
  23. void Abort() override;
  24. size_t GetBufferMemoryUsage() const override;
  25. private:
  26. const size_t BufferSize_ = 64 << 20;
  27. ::TIntrusivePtr<TRawTableWriter> RawWriter_;
  28. };
  29. ////////////////////////////////////////////////////////////////////////////////
  30. } // namespace NYT