diff options
Diffstat (limited to 'include/grpc++/impl/codegen/client_unary_call.h')
-rw-r--r-- | include/grpc++/impl/codegen/client_unary_call.h | 74 |
1 files changed, 6 insertions, 68 deletions
diff --git a/include/grpc++/impl/codegen/client_unary_call.h b/include/grpc++/impl/codegen/client_unary_call.h index 543e54b972..f7dff1f1f0 100644 --- a/include/grpc++/impl/codegen/client_unary_call.h +++ b/include/grpc++/impl/codegen/client_unary_call.h @@ -1,6 +1,6 @@ /* * - * Copyright 2015 gRPC authors. + * Copyright 2018 gRPC authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,75 +16,13 @@ * */ +// DEPRECATED: The headers in include/grpc++ are deprecated. Please include the +// headers in include/grpcpp instead. This header exists only for backwards +// compatibility. + #ifndef GRPCXX_IMPL_CODEGEN_CLIENT_UNARY_CALL_H #define GRPCXX_IMPL_CODEGEN_CLIENT_UNARY_CALL_H -#include <grpc++/impl/codegen/call.h> -#include <grpc++/impl/codegen/channel_interface.h> -#include <grpc++/impl/codegen/config.h> -#include <grpc++/impl/codegen/core_codegen_interface.h> -#include <grpc++/impl/codegen/status.h> - -namespace grpc { - -class Channel; -class ClientContext; -class CompletionQueue; - -namespace internal { -class RpcMethod; -/// Wrapper that performs a blocking unary call -template <class InputMessage, class OutputMessage> -Status BlockingUnaryCall(ChannelInterface* channel, const RpcMethod& method, - ClientContext* context, const InputMessage& request, - OutputMessage* result) { - return BlockingUnaryCallImpl<InputMessage, OutputMessage>( - channel, method, context, request, result) - .status(); -} - -template <class InputMessage, class OutputMessage> -class BlockingUnaryCallImpl { - public: - BlockingUnaryCallImpl(ChannelInterface* channel, const RpcMethod& method, - ClientContext* context, const InputMessage& request, - OutputMessage* result) { - CompletionQueue cq(grpc_completion_queue_attributes{ - GRPC_CQ_CURRENT_VERSION, GRPC_CQ_PLUCK, - GRPC_CQ_DEFAULT_POLLING}); // Pluckable completion queue - Call call(channel->CreateCall(method, context, &cq)); - CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage, - CallOpRecvInitialMetadata, CallOpRecvMessage<OutputMessage>, - CallOpClientSendClose, CallOpClientRecvStatus> - ops; - status_ = ops.SendMessage(request); - if (!status_.ok()) { - return; - } - ops.SendInitialMetadata(context->send_initial_metadata_, - context->initial_metadata_flags()); - ops.RecvInitialMetadata(context); - ops.RecvMessage(result); - ops.AllowNoMessage(); - ops.ClientSendClose(); - ops.ClientRecvStatus(context, &status_); - call.PerformOps(&ops); - if (cq.Pluck(&ops)) { - if (!ops.got_message && status_.ok()) { - status_ = Status(StatusCode::UNIMPLEMENTED, - "No message returned for unary request"); - } - } else { - GPR_CODEGEN_ASSERT(!status_.ok()); - } - } - Status status() { return status_; } - - private: - Status status_; -}; - -} // namespace internal -} // namespace grpc +#include <grpcpp/impl/codegen/client_unary_call.h> #endif // GRPCXX_IMPL_CODEGEN_CLIENT_UNARY_CALL_H |