| 750 | } |
| 751 | |
| 752 | ::arrow::Result<CloseSessionResult> FlightClient::CloseSession( |
| 753 | const FlightCallOptions& options, const CloseSessionRequest& request) { |
| 754 | RETURN_NOT_OK(CheckOpen()); |
| 755 | ARROW_ASSIGN_OR_RAISE(auto body, request.SerializeToBuffer()); |
| 756 | Action action{ActionType::kCloseSession.type, std::move(body)}; |
| 757 | ARROW_ASSIGN_OR_RAISE(auto stream, DoAction(options, action)); |
| 758 | ARROW_ASSIGN_OR_RAISE(auto result, stream->Next()); |
| 759 | ARROW_ASSIGN_OR_RAISE(auto close_session_result, |
| 760 | CloseSessionResult::Deserialize(std::string_view(*result->body))); |
| 761 | ARROW_RETURN_NOT_OK(stream->Drain()); |
| 762 | return close_session_result; |
| 763 | } |
| 764 | |
| 765 | Status FlightClient::Close() { |
| 766 | if (!closed_) { |