GRPC C++  1.26.0
Public Member Functions
grpc_impl::Server::UnimplementedAsyncResponse Class Referencefinal

UnimplementedAsyncResponse should not post user-visible completions to the C++ completion queue, but is generated as a CQ event by the core. More...

Public Member Functions

 UnimplementedAsyncResponse (UnimplementedAsyncRequest *request)
 
 ~UnimplementedAsyncResponse ()
 
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::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpServerSendStatus >
 CallOpSet ()
 
 CallOpSet (const CallOpSet &other)
 
CallOpSetoperator= (const CallOpSet &other)
 
void FillOps (Call *call) override
 Fills in grpc_op, starting from ops[*nops] and moving upwards. More...
 
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...
 
void set_output_tag (void *return_tag)
 
void * core_cq_tag () override
 Get the tag to be used at the core completion queue. More...
 
void set_core_cq_tag (void *core_cq_tag)
 set_core_cq_tag is used to provide a different core CQ tag than "this". More...
 
void SetHijackingState () override
 
void ContinueFillOpsAfterInterception () override
 
void ContinueFinalizeResultAfterInterception () override
 
- Public Member Functions inherited from grpc::internal::CompletionQueueTag
virtual ~CompletionQueueTag ()
 
- Public Member Functions inherited from grpc::internal::CallOpServerSendStatus
 CallOpServerSendStatus ()
 
void ServerSendStatus (std::multimap< grpc::string, grpc::string > *trailing_metadata, const Status &status)
 

Additional Inherited Members

- Protected Member Functions inherited from grpc::internal::CallOpServerSendStatus
void AddOp (grpc_op *ops, size_t *nops)
 
void FinishOp (bool *)
 
void SetInterceptionHookPoint (InterceptorBatchMethodsImpl *interceptor_methods)
 
void SetFinishInterceptionHookPoint (InterceptorBatchMethodsImpl *)
 
void SetHijackingState (InterceptorBatchMethodsImpl *)
 

Detailed Description

UnimplementedAsyncResponse should not post user-visible completions to the C++ completion queue, but is generated as a CQ event by the core.

Constructor & Destructor Documentation

◆ UnimplementedAsyncResponse()

grpc_impl::Server::UnimplementedAsyncResponse::UnimplementedAsyncResponse ( UnimplementedAsyncRequest request)

◆ ~UnimplementedAsyncResponse()

grpc_impl::Server::UnimplementedAsyncResponse::~UnimplementedAsyncResponse ( )
inline

Member Function Documentation

◆ FinalizeResult()

bool grpc_impl::Server::UnimplementedAsyncResponse::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)

Implements grpc::internal::CompletionQueueTag.


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