GRPC C++  1.66.0
Public Member Functions
grpc::ServerInterface::PayloadAsyncRequest< Message > Class Template Referencefinal

#include <server_interface.h>

Public Member Functions

 PayloadAsyncRequest (internal::RpcServiceMethod *registered_method, ServerInterface *server, grpc::ServerContext *context, internal::ServerAsyncStreamingInterface *stream, grpc::CompletionQueue *call_cq, grpc::ServerCompletionQueue *notification_cq, void *tag, Message *request)
 
 ~PayloadAsyncRequest () override
 
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::ServerInterface::RegisteredAsyncRequest
 RegisteredAsyncRequest (ServerInterface *server, grpc::ServerContext *context, internal::ServerAsyncStreamingInterface *stream, grpc::CompletionQueue *call_cq, grpc::ServerCompletionQueue *notification_cq, void *tag, const char *name, internal::RpcMethod::RpcType type)
 
- Public Member Functions inherited from grpc::ServerInterface::BaseAsyncRequest
 BaseAsyncRequest (ServerInterface *server, grpc::ServerContext *context, internal::ServerAsyncStreamingInterface *stream, grpc::CompletionQueue *call_cq, grpc::ServerCompletionQueue *notification_cq, void *tag, bool delete_on_finalize)
 
 ~BaseAsyncRequest () override
 
- Public Member Functions inherited from grpc::internal::CompletionQueueTag
virtual ~CompletionQueueTag ()
 

Additional Inherited Members

- Protected Member Functions inherited from grpc::ServerInterface::RegisteredAsyncRequest
void IssueRequest (void *registered_method, grpc_byte_buffer **payload, grpc::ServerCompletionQueue *notification_cq)
 
- Protected Attributes inherited from grpc::ServerInterface::RegisteredAsyncRequest
const char * name_
 
const internal::RpcMethod::RpcType type_
 
- Protected Attributes inherited from grpc::ServerInterface::BaseAsyncRequest
ServerInterface *const server_
 
grpc::ServerContext *const context_
 
internal::ServerAsyncStreamingInterface *const stream_
 
grpc::CompletionQueue *const call_cq_
 
grpc::ServerCompletionQueue *const notification_cq_
 
void *const tag_
 
const bool delete_on_finalize_
 
grpc_callcall_
 
internal::Call call_wrapper_
 
internal::InterceptorBatchMethodsImpl interceptor_methods_
 
bool done_intercepting_
 
bool call_metric_recording_enabled_
 
experimental::ServerMetricRecorderserver_metric_recorder_
 

Constructor & Destructor Documentation

◆ PayloadAsyncRequest()

template<class Message >
grpc::ServerInterface::PayloadAsyncRequest< Message >::PayloadAsyncRequest ( internal::RpcServiceMethod registered_method,
ServerInterface server,
grpc::ServerContext context,
internal::ServerAsyncStreamingInterface stream,
grpc::CompletionQueue call_cq,
grpc::ServerCompletionQueue notification_cq,
void *  tag,
Message *  request 
)
inline

◆ ~PayloadAsyncRequest()

template<class Message >
grpc::ServerInterface::PayloadAsyncRequest< Message >::~PayloadAsyncRequest ( )
inlineoverride

Member Function Documentation

◆ FinalizeResult()

template<class Message >
bool grpc::ServerInterface::PayloadAsyncRequest< Message >::FinalizeResult ( void **  tag,
bool *  status 
)
inlineoverridevirtual

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)

Reimplemented from grpc::ServerInterface::RegisteredAsyncRequest.


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