19 #ifndef GRPCPP_IMPL_CODEGEN_CLIENT_UNARY_CALL_H 20 #define GRPCPP_IMPL_CODEGEN_CLIENT_UNARY_CALL_H 32 class CompletionQueue;
37 template <
class InputMessage,
class OutputMessage>
40 OutputMessage* result) {
42 channel, method, context, request, result)
46 template <
class InputMessage,
class OutputMessage>
51 OutputMessage* result) {
55 Call call(channel->CreateCall(method, context, &cq));
60 status_ = ops.SendMessage(request);
64 ops.SendInitialMetadata(context->send_initial_metadata_,
65 context->initial_metadata_flags());
66 ops.RecvInitialMetadata(context);
67 ops.RecvMessage(result);
69 ops.ClientSendClose();
70 ops.ClientRecvStatus(context, &status_);
71 call.PerformOps(&ops);
73 if (!ops.got_message && status_.
ok()) {
75 "No message returned for unary request");
90 #endif // GRPCPP_IMPL_CODEGEN_CLIENT_UNARY_CALL_H
#define GPR_CODEGEN_ASSERT(x)
Codegen specific version of GPR_ASSERT.
Definition: core_codegen_interface.h:138
Status status()
Definition: client_unary_call.h:81
Primary implementation of CallOpSetInterface.
Definition: call.h:619
#define GRPC_CQ_CURRENT_VERSION
Definition: grpc_types.h:651
Definition: grpc_types.h:652
A ClientContext allows the person implementing a service client to:
Definition: client_context.h:162
Descriptor of an RPC method.
Definition: rpc_method.h:29
Events are popped out by calling grpc_completion_queue_pluck() API ONLY.
Definition: grpc_types.h:648
An Alarm posts the user provided tag to its associated completion queue upon expiry or cancellation...
Definition: alarm.h:31
Codegen interface for grpc::Channel.
Definition: channel_interface.h:55
The completion queue will have an associated pollset and there is no restriction on the type of file ...
Definition: grpc_types.h:628
Definition: byte_buffer.h:41
Status BlockingUnaryCall(ChannelInterface *channel, const RpcMethod &method, ClientContext *context, const InputMessage &request, OutputMessage *result)
Wrapper that performs a blocking unary call.
Definition: client_unary_call.h:38
A thin wrapper around grpc_completion_queue (see src/core/lib/surface/completion_queue.h).
Definition: completion_queue.h:94
BlockingUnaryCallImpl(ChannelInterface *channel, const RpcMethod &method, ClientContext *context, const InputMessage &request, OutputMessage *result)
Definition: client_unary_call.h:49
bool ok() const
Is the status OK?
Definition: status.h:118
Definition: channel_interface.h:43
Did it work? If it didn't, why?
Definition: status.h:31
Operation is not implemented or not supported/enabled in this service.
Definition: status_code_enum.h:115
Straightforward wrapping of the C call object.
Definition: call.h:660