@@ -331,6 +331,49 @@ ::grpc::Status ToGrpcStatus(const Status& arrow_status, ::grpc::ServerContext* c
331331 return status;
332332}
333333
334+ #if GRPC_CPP_VERSION_CHECK(1, 80, 0)
335+ Status FromAbslStatus (const ::absl::Status& absl_status) {
336+ switch (absl_status.code ()) {
337+ case ::absl::StatusCode::kOk :
338+ return Status::OK ();
339+ case ::absl::StatusCode::kCancelled :
340+ return Status::Cancelled (absl_status.ToString ());
341+ case ::absl::StatusCode::kUnknown :
342+ return Status::UnknownError (absl_status.ToString ());
343+ case ::absl::StatusCode::kInvalidArgument :
344+ return Status::Invalid (absl_status.ToString ());
345+ case ::absl::StatusCode::kDeadlineExceeded :
346+ return Status::IOError (absl_status.ToString ());
347+ case ::absl::StatusCode::kNotFound :
348+ return Status::KeyError (absl_status.ToString ());
349+ case ::absl::StatusCode::kAlreadyExists :
350+ return Status::AlreadyExists (absl_status.ToString ());
351+ case ::absl::StatusCode::kPermissionDenied :
352+ return Status::IOError (absl_status.ToString ());
353+ case ::absl::StatusCode::kResourceExhausted :
354+ return Status::IOError (absl_status.ToString ());
355+ case ::absl::StatusCode::kFailedPrecondition :
356+ return Status::IOError (absl_status.ToString ());
357+ case ::absl::StatusCode::kAborted :
358+ return Status::IOError (absl_status.ToString ());
359+ case ::absl::StatusCode::kOutOfRange :
360+ return Status::Invalid (absl_status.ToString ());
361+ case ::absl::StatusCode::kUnimplemented :
362+ return Status::NotImplemented (absl_status.ToString ());
363+ case ::absl::StatusCode::kInternal :
364+ return Status::IOError (absl_status.ToString ());
365+ case ::absl::StatusCode::kUnavailable :
366+ return Status::IOError (absl_status.ToString ());
367+ case ::absl::StatusCode::kDataLoss :
368+ return Status::IOError (absl_status.ToString ());
369+ case ::absl::StatusCode::kUnauthenticated :
370+ return Status::IOError (absl_status.ToString ());
371+ default :
372+ return Status::UnknownError (absl_status.ToString ());
373+ }
374+ }
375+ #endif
376+
334377} // namespace grpc
335378} // namespace transport
336379} // namespace flight
0 commit comments