| 472 | } |
| 473 | |
| 474 | Status WriteWithMetadata(const RecordBatch& batch, |
| 475 | std::shared_ptr<Buffer> app_metadata) override { |
| 476 | RETURN_NOT_OK(CheckStarted()); |
| 477 | app_metadata_ = app_metadata; |
| 478 | auto status = batch_writer_->WriteRecordBatch(batch); |
| 479 | if (!status.ok() && |
| 480 | // Only want to Close() if server error, not for client error |
| 481 | ServerErrorTagStatusDetail::UnwrapStatus(status)) { |
| 482 | return Close(); |
| 483 | } |
| 484 | return status; |
| 485 | } |
| 486 | |
| 487 | Status DoneWriting() override { |
| 488 | // Do not CheckStarted - DoneWriting applies to data and metadata |