retryless_writer.cpp 938 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "retryless_writer.h"
  2. #include <yt/cpp/mapreduce/interface/logging/yt_log.h>
  3. namespace NYT {
  4. ////////////////////////////////////////////////////////////////////////////////
  5. TRetrylessWriter::~TRetrylessWriter()
  6. {
  7. NDetail::FinishOrDie(this, AutoFinish_, "TRetrylessWriter");
  8. }
  9. void TRetrylessWriter::DoFinish()
  10. {
  11. if (!Running_) {
  12. return;
  13. }
  14. Running_ = false;
  15. BufferedOutput_->Finish();
  16. Request_->Finish()->GetResponse();
  17. }
  18. void TRetrylessWriter::DoWrite(const void* buf, size_t len)
  19. {
  20. try {
  21. BufferedOutput_->Write(buf, len);
  22. } catch (...) {
  23. Running_ = false;
  24. throw;
  25. }
  26. }
  27. void TRetrylessWriter::NotifyRowEnd()
  28. { }
  29. void TRetrylessWriter::Abort()
  30. {
  31. Running_ = false;
  32. }
  33. size_t TRetrylessWriter::GetBufferMemoryUsage() const
  34. {
  35. return BufferSize_;
  36. }
  37. ////////////////////////////////////////////////////////////////////////////////
  38. } // namespace NYT