xref: /aosp_15_r20/external/federated-compute/fcp/tensorflow/status.cc (revision 14675a029014e728ec732f129a32e299b2da0601)
1 /*
2  * Copyright 2019 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "fcp/tensorflow/status.h"
18 
19 #include "tensorflow/core/public/version.h"
20 
21 namespace fcp {
22 
ConvertToTensorFlowStatus(Status const & status)23 tensorflow::Status ConvertToTensorFlowStatus(Status const& status) {
24   absl::StatusCode code = status.code();
25   if (code == absl::StatusCode::kOk) {
26     return tensorflow::Status();
27   } else {
28     // tensorflow::Status constructor asserts that code != OK if a message is
29     // provided.
30     // Remove the cast after TF 2.12 is released and used in FCP.
31     return tensorflow::Status(static_cast<tensorflow::errors::Code>(code),
32                               status.message());
33   }
34 }
35 
ConvertFromTensorFlowStatus(tensorflow::Status const & tf_status)36 Status ConvertFromTensorFlowStatus(tensorflow::Status const& tf_status) {
37   return Status(static_cast<absl::StatusCode>(tf_status.code()),
38 #if TF_GRAPH_DEF_VERSION < 1467
39                 tf_status.error_message());
40 #else
41                 tf_status.message());
42 #endif
43 }
44 
45 }  // namespace fcp
46