Go to the documentation of this file.
19 #ifndef GRPCPP_IMPL_CODEGEN_ASYNC_UNARY_CALL_H
20 #define GRPCPP_IMPL_CODEGEN_ASYNC_UNARY_CALL_H
92 template <
class R,
class W,
class BaseR = R,
class BaseW = W>
102 SetupRequest<BaseR, BaseW>(
111 template <
class R,
class W>
117 read_initial_metadata,
123 using SingleBufType =
130 SingleBufType* single_buf =
132 call,
sizeof(SingleBufType))) SingleBufType;
133 *single_buf_ptr = single_buf;
136 single_buf->ClientSendClose();
143 *read_initial_metadata =
146 auto* single_buf =
static_cast<SingleBufType*
>(single_buf_view);
147 single_buf->set_output_tag(
tag);
148 single_buf->RecvInitialMetadata(
context);
149 call->PerformOps(single_buf);
160 bool initial_metadata_read,
164 if (initial_metadata_read) {
165 using FinishBufType =
168 FinishBufType* finish_buf =
170 call->call(),
sizeof(FinishBufType))) FinishBufType;
171 *finish_buf_ptr = finish_buf;
172 finish_buf->set_output_tag(
tag);
173 finish_buf->RecvMessage(
static_cast<R*
>(
msg));
174 finish_buf->AllowNoMessage();
176 call->PerformOps(finish_buf);
178 auto* single_buf =
static_cast<SingleBufType*
>(single_buf_view);
179 single_buf->set_output_tag(
tag);
180 single_buf->RecvInitialMetadata(
context);
181 single_buf->RecvMessage(
static_cast<R*
>(
msg));
182 single_buf->AllowNoMessage();
184 call->PerformOps(single_buf);
206 auto*
result = ClientAsyncResponseReaderHelper::Create<R>(
220 class ClientAsyncResponseReader final
221 :
public ClientAsyncResponseReaderInterface<R> {
224 static void operator delete(
void* , std::size_t
size) {
277 static void*
operator new(std::size_t
size);
278 static void*
operator new(std::size_t ,
void* p) {
return p; }
286 bool initial_metadata_read,
409 class default_delete<
grpc::ClientAsyncResponseReader<R>> {
414 class default_delete<
grpc::ClientAsyncResponseReaderInterface<R>> {
420 #endif // GRPCPP_IMPL_CODEGEN_ASYNC_UNARY_CALL_H
std::multimap< std::string, std::string > send_initial_metadata_
void ClientRecvStatus(grpc::ClientContext *context, Status *status)
static int finish(struct hexdump_ctx *ctx)
static void StartCall(grpc::ClientContext *context, grpc::internal::CallOpSendInitialMetadata *single_buf)
std::multimap< std::string, std::string > trailing_metadata_
void Finish(R *msg, grpc::Status *status, void *tag) override
void set_output_tag(void *return_tag)
void set_core_cq_tag(void *core_cq_tag)
virtual void * grpc_call_arena_alloc(grpc_call *call, size_t length)=0
std::function< void(ClientContext *, internal::Call *, internal::CallOpSendInitialMetadata *, void *)> read_initial_metadata_
static ClientAsyncResponseReader< R > * Create(grpc::ChannelInterface *channel, grpc::CompletionQueue *cq, const grpc::internal::RpcMethod &method, grpc::ClientContext *context, const W &request, bool start)
virtual void Finish(R *msg, grpc::Status *status, void *tag)=0
internal::CallOpSendInitialMetadata * single_buf_
CoreCodegenInterface * g_core_codegen_interface
internal::CallOpSetInterface * finish_buf_
grpc::internal::Call call_
Codegen interface for grpc::Channel.
wrapped_grpc_channel * channel
virtual void ReadInitialMetadata(void *tag)=0
uint32_t initial_metadata_flags() const
Descriptor of an RPC method.
static void * tag(intptr_t t)
std::function< void(ClientContext *, internal::Call *, bool initial_metadata_read, internal::CallOpSendInitialMetadata *, internal::CallOpSetInterface **, void *, Status *, void *)> finish_
void ReadInitialMetadata(void *tag) override
struct grpc_call grpc_call
std::multimap< std::string, std::string > initial_metadata_
void PerformOps(CallOpSetInterface *ops)
static void SetupRequest(grpc_call *call, grpc::internal::CallOpSendInitialMetadata **single_buf_ptr, std::function< void(ClientContext *, internal::Call *, internal::CallOpSendInitialMetadata *, void *)> *read_initial_metadata, std::function< void(ClientContext *, internal::Call *, bool initial_metadata_read, internal::CallOpSendInitialMetadata *, internal::CallOpSetInterface **, void *, Status *, void *)> *finish, const W &request)
bool initial_metadata_received_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpServerSendStatus > finish_buf_
grpc_compression_level compression_level() const
Return the compression algorithm to be used by the server call.
void BindCall(grpc::internal::Call *call) override
ClientAsyncResponseReader(grpc::internal::Call call, grpc::ClientContext *context)
virtual void StartCall()=0
Straightforward wrapping of the C call object.
uint32_t initial_metadata_flags() const
void Finish(const W &msg, const grpc::Status &status, void *tag)
bool sent_initial_metadata_
virtual ~ClientAsyncResponseReaderInterface()
void FinishWithError(const grpc::Status &status, void *tag)
ServerAsyncResponseWriter(grpc::ServerContext *ctx)
void StartCall() override
static ClientAsyncResponseReader< R > * Create(grpc::ChannelInterface *channel, grpc::CompletionQueue *cq, const grpc::internal::RpcMethod &method, grpc::ClientContext *context, const W &request)
void SendInitialMetadata(void *tag) override
grpc::internal::Call call_
grpc::ClientContext *const context_
#define GPR_CODEGEN_ASSERT(x)
Codegen specific version of GPR_ASSERT.
grpc::ServerContext * ctx_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata > meta_buf_
grpc::ClientContext context
bool initial_metadata_read_
bool compression_level_set() const
static grpc_completion_queue * cq
#define GPR_CODEGEN_DEBUG_ASSERT(x)
Codegen specific version of GPR_DEBUG_ASSERT.
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:35