diff options
author | 2018-09-12 09:03:49 -0700 | |
---|---|---|
committer | 2018-09-12 09:03:49 -0700 | |
commit | 3bc10c0f44c64bb35c0a1ae94e7ea2d14c72e5c1 (patch) | |
tree | b71ed5b17147d2770f1d30f985bfb1bf38776245 /include/grpcpp/impl/codegen/completion_queue_tag.h | |
parent | 584dd0564605091a6299a624e85f80bfc2a57acf (diff) | |
parent | 0382d062486b5ba384d1288008147b6d36868485 (diff) |
Merge pull request #16492 from vjpai/client_callback
EXPERIMENTAL: C++ generic client-side unary callback API
Diffstat (limited to 'include/grpcpp/impl/codegen/completion_queue_tag.h')
-rw-r--r-- | include/grpcpp/impl/codegen/completion_queue_tag.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/include/grpcpp/impl/codegen/completion_queue_tag.h b/include/grpcpp/impl/codegen/completion_queue_tag.h index ffb642c56b..304386a9ec 100644 --- a/include/grpcpp/impl/codegen/completion_queue_tag.h +++ b/include/grpcpp/impl/codegen/completion_queue_tag.h @@ -26,10 +26,25 @@ namespace internal { class CompletionQueueTag { public: virtual ~CompletionQueueTag() {} - /// Called prior to returning from Next(), return value is the status of the - /// operation (return status is the default thing to do). If this function - /// returns false, the tag is dropped and not returned from the completion - /// queue + + /// 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) virtual bool FinalizeResult(void** tag, bool* status) = 0; }; } // namespace internal |