file_writer.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "retryful_writer.h"
  3. #include <yt/cpp/mapreduce/common/fwd.h>
  4. #include <yt/cpp/mapreduce/interface/io.h>
  5. namespace NYT {
  6. ////////////////////////////////////////////////////////////////////////////////
  7. class TFileWriter
  8. : public IFileWriter
  9. {
  10. public:
  11. TFileWriter(
  12. const TRichYPath& path,
  13. const IRawClientPtr& rawClient,
  14. IClientRetryPolicyPtr clientRetryPolicy,
  15. ITransactionPingerPtr transactionPinger,
  16. const TClientContext& context,
  17. const TTransactionId& transactionId,
  18. const TFileWriterOptions& options = TFileWriterOptions());
  19. ~TFileWriter() override;
  20. protected:
  21. void DoWrite(const void* buf, size_t len) override;
  22. void DoFinish() override;
  23. size_t GetBufferMemoryUsage() const override;
  24. private:
  25. const bool AutoFinish_;
  26. TRetryfulWriter RetryfulWriter_;
  27. static const size_t BUFFER_SIZE = 64 << 20;
  28. };
  29. ////////////////////////////////////////////////////////////////////////////////
  30. } // namespace NYT