1 /* 2 * 3 * Copyright 2017 gRPC authors. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 19 #ifndef GRPCPP_SUPPORT_ERROR_DETAILS_H 20 #define GRPCPP_SUPPORT_ERROR_DETAILS_H 21 22 #include <grpcpp/support/status.h> 23 24 namespace google { 25 namespace rpc { 26 class Status; 27 } // namespace rpc 28 } // namespace google 29 30 namespace grpc { 31 32 /// Map a \a grpc::Status to a \a google::rpc::Status. 33 /// The given \a to object will be cleared. 34 /// On success, returns status with OK. 35 /// Returns status with \a INVALID_ARGUMENT, if failed to deserialize. 36 /// Returns status with \a FAILED_PRECONDITION, if \a to is nullptr. 37 Status ExtractErrorDetails(const Status& from, ::google::rpc::Status* to); 38 39 /// Map \a google::rpc::Status to a \a grpc::Status. 40 /// Returns OK on success. 41 /// Returns status with \a FAILED_PRECONDITION if \a to is nullptr. 42 Status SetErrorDetails(const ::google::rpc::Status& from, Status* to); 43 44 } // namespace grpc 45 46 #endif // GRPCPP_SUPPORT_ERROR_DETAILS_H 47