client_writer.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. const IRawClientPtr& rawClient,
  15. IClientRetryPolicyPtr clientRetryPolicy,
  16. ITransactionPingerPtr transactionPinger,
  17. const TClientContext& context,
  18. const TTransactionId& transactionId,
  19. const TMaybe<TFormat>& format,
  20. const TTableWriterOptions& options);
  21. ~TClientWriter();
  22. size_t GetStreamCount() const override;
  23. IOutputStream* GetStream(size_t tableIndex) const override;
  24. void OnRowFinished(size_t tableIndex) override;
  25. void Abort() override;
  26. size_t GetBufferMemoryUsage() const override;
  27. void Finish();
  28. private:
  29. const size_t BufferSize_ = 64 << 20;
  30. const bool AutoFinish_;
  31. ::TIntrusivePtr<TRawTableWriter> RawWriter_;
  32. };
  33. ////////////////////////////////////////////////////////////////////////////////
  34. } // namespace NYT