GRPC C++  1.26.0
Public Member Functions | Protected Attributes
grpc::ServerInterface::BaseAsyncRequest Class Reference

#include <server_interface.h>

Public Member Functions

 BaseAsyncRequest (ServerInterface *server, ::grpc_impl::ServerContext *context, internal::ServerAsyncStreamingInterface *stream, ::grpc_impl::CompletionQueue *call_cq, ::grpc_impl::ServerCompletionQueue *notification_cq, void *tag, bool delete_on_finalize)
virtual ~BaseAsyncRequest ()
bool FinalizeResult (void **tag, bool *status) override
 FinalizeResult must be called before informing user code that the operation bound to the underlying core completion queue tag has completed. More...
- Public Member Functions inherited from grpc::internal::CompletionQueueTag
virtual ~CompletionQueueTag ()

Protected Attributes

ServerInterface *const server_
::grpc_impl::ServerContext *const context_
internal::ServerAsyncStreamingInterface *const stream_
::grpc_impl::CompletionQueue *const call_cq_
::grpc_impl::ServerCompletionQueue *const notification_cq_
void *const tag_
const bool delete_on_finalize_
internal::Call call_wrapper_
internal::InterceptorBatchMethodsImpl interceptor_methods_
bool done_intercepting_

Constructor & Destructor Documentation

◆ BaseAsyncRequest()

grpc::ServerInterface::BaseAsyncRequest::BaseAsyncRequest ( ServerInterface server,
::grpc_impl::ServerContext context,
internal::ServerAsyncStreamingInterface stream,
::grpc_impl::CompletionQueue call_cq,
::grpc_impl::ServerCompletionQueue notification_cq,
void *  tag,
bool  delete_on_finalize 

◆ ~BaseAsyncRequest()

virtual grpc::ServerInterface::BaseAsyncRequest::~BaseAsyncRequest ( )

Member Function Documentation

◆ FinalizeResult()

bool grpc::ServerInterface::BaseAsyncRequest::FinalizeResult ( void **  tag,
bool *  status 

FinalizeResult must be called before informing user code that the operation bound to the underlying core completion queue tag has completed.

In practice, this means:

  1. For the sync API - before returning from Pluck
  2. For the CQ-based async API - before returning from Next
  3. For the callback-based API - before invoking the user callback

This is the method that translates from core-side tag/status to C++ API-observable tag/status.

The return value is the status of the operation (returning status is the general behavior of this function). If this function returns false, the tag is dropped and not returned from the completion queue: this concept is for events that are observed at core but not requested by the user application (e.g., server shutdown, for server unimplemented method responses, or for cases where a server-side RPC doesn't have a completion notification registered using AsyncNotifyWhenDone)

Implements grpc::internal::CompletionQueueTag.

Reimplemented in grpc::ServerInterface::GenericAsyncRequest, grpc::ServerInterface::PayloadAsyncRequest< Message >, and grpc::ServerInterface::RegisteredAsyncRequest.

Field Documentation

◆ call_

grpc_call* grpc::ServerInterface::BaseAsyncRequest::call_

◆ call_cq_

::grpc_impl::CompletionQueue* const grpc::ServerInterface::BaseAsyncRequest::call_cq_

◆ call_wrapper_

internal::Call grpc::ServerInterface::BaseAsyncRequest::call_wrapper_

◆ context_

::grpc_impl::ServerContext* const grpc::ServerInterface::BaseAsyncRequest::context_

◆ delete_on_finalize_

const bool grpc::ServerInterface::BaseAsyncRequest::delete_on_finalize_

◆ done_intercepting_

bool grpc::ServerInterface::BaseAsyncRequest::done_intercepting_

◆ interceptor_methods_

internal::InterceptorBatchMethodsImpl grpc::ServerInterface::BaseAsyncRequest::interceptor_methods_

◆ notification_cq_

::grpc_impl::ServerCompletionQueue* const grpc::ServerInterface::BaseAsyncRequest::notification_cq_

◆ server_

ServerInterface* const grpc::ServerInterface::BaseAsyncRequest::server_

◆ stream_

internal::ServerAsyncStreamingInterface* const grpc::ServerInterface::BaseAsyncRequest::stream_

◆ tag_

void* const grpc::ServerInterface::BaseAsyncRequest::tag_

The documentation for this class was generated from the following file: