diff options
Diffstat (limited to 'include/grpcpp/impl/codegen/client_callback.h')
-rw-r--r-- | include/grpcpp/impl/codegen/client_callback.h | 152 |
1 files changed, 78 insertions, 74 deletions
diff --git a/include/grpcpp/impl/codegen/client_callback.h b/include/grpcpp/impl/codegen/client_callback.h index 04ab4aa8b8..f16cd9f10f 100644 --- a/include/grpcpp/impl/codegen/client_callback.h +++ b/include/grpcpp/impl/codegen/client_callback.h @@ -48,11 +48,11 @@ class RpcMethod; template <class InputMessage, class OutputMessage, class BaseInputMessage = InputMessage, class BaseOutputMessage = OutputMessage> -void CallbackUnaryCall(grpc::ChannelInterface* channel, - const grpc::internal::RpcMethod& method, - grpc::ClientContext* context, +void CallbackUnaryCall(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc::ClientContext* context, const InputMessage* request, OutputMessage* result, - std::function<void(grpc::Status)> on_completion) { + std::function<void(::grpc::Status)> on_completion) { static_assert(std::is_base_of<BaseInputMessage, InputMessage>::value, "Invalid input message specification"); static_assert(std::is_base_of<BaseOutputMessage, OutputMessage>::value, @@ -64,17 +64,17 @@ void CallbackUnaryCall(grpc::ChannelInterface* channel, template <class InputMessage, class OutputMessage> class CallbackUnaryCallImpl { public: - CallbackUnaryCallImpl(grpc::ChannelInterface* channel, - const grpc::internal::RpcMethod& method, - grpc::ClientContext* context, + CallbackUnaryCallImpl(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc::ClientContext* context, const InputMessage* request, OutputMessage* result, - std::function<void(grpc::Status)> on_completion) { - grpc::CompletionQueue* cq = channel->CallbackCQ(); + std::function<void(::grpc::Status)> on_completion) { + ::grpc::CompletionQueue* cq = channel->CallbackCQ(); GPR_CODEGEN_ASSERT(cq != nullptr); grpc::internal::Call call(channel->CreateCall(method, context, cq)); using FullCallOpSet = grpc::internal::CallOpSet< - grpc::internal::CallOpSendInitialMetadata, + ::grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpRecvMessage<OutputMessage>, @@ -87,14 +87,14 @@ class CallbackUnaryCallImpl { }; const size_t alloc_sz = sizeof(OpSetAndTag); auto* const alloced = static_cast<OpSetAndTag*>( - grpc::g_core_codegen_interface->grpc_call_arena_alloc(call.call(), - alloc_sz)); + ::grpc::g_core_codegen_interface->grpc_call_arena_alloc(call.call(), + alloc_sz)); auto* ops = new (&alloced->opset) FullCallOpSet; auto* tag = new (&alloced->tag) grpc::internal::CallbackWithStatusTag(call.call(), on_completion, ops); // TODO(vjpai): Unify code with sync API as much as possible - grpc::Status s = ops->SendMessagePtr(request); + ::grpc::Status s = ops->SendMessagePtr(request); if (!s.ok()) { tag->force_run(s); return; @@ -123,7 +123,7 @@ class ClientReactor { /// hold). /// /// \param[in] s The status outcome of this RPC - virtual void OnDone(const grpc::Status& /*s*/) = 0; + virtual void OnDone(const ::grpc::Status& /*s*/) = 0; /// InternalScheduleOnDone is not part of the API and is not meant to be /// overridden. It is virtual to allow successful builds for certain bazel @@ -132,7 +132,7 @@ class ClientReactor { /// the virtual call is slower than a direct call, this function is /// heavyweight and the cost of the virtual call is not much in comparison. /// This function may be removed or devirtualized in the future. - virtual void InternalScheduleOnDone(grpc::Status s); + virtual void InternalScheduleOnDone(::grpc::Status s); /// InternalTrailersOnly is not part of the API and is not meant to be /// overridden. It is virtual to allow successful builds for certain bazel @@ -163,7 +163,7 @@ class ClientCallbackReaderWriter { public: virtual ~ClientCallbackReaderWriter() {} virtual void StartCall() = 0; - virtual void Write(const Request* req, grpc::WriteOptions options) = 0; + virtual void Write(const Request* req, ::grpc::WriteOptions options) = 0; virtual void WritesDone() = 0; virtual void Read(Response* resp) = 0; virtual void AddHold(int holds) = 0; @@ -195,9 +195,9 @@ class ClientCallbackWriter { public: virtual ~ClientCallbackWriter() {} virtual void StartCall() = 0; - void Write(const Request* req) { Write(req, grpc::WriteOptions()); } - virtual void Write(const Request* req, grpc::WriteOptions options) = 0; - void WriteLast(const Request* req, grpc::WriteOptions options) { + void Write(const Request* req) { Write(req, ::grpc::WriteOptions()); } + virtual void Write(const Request* req, ::grpc::WriteOptions options) = 0; + void WriteLast(const Request* req, ::grpc::WriteOptions options) { Write(req, options.set_last_message()); } virtual void WritesDone() = 0; @@ -258,7 +258,9 @@ class ClientBidiReactor : public internal::ClientReactor { /// \param[in] req The message to be written. The library does not take /// ownership but the caller must ensure that the message is /// not deleted or modified until OnWriteDone is called. - void StartWrite(const Request* req) { StartWrite(req, grpc::WriteOptions()); } + void StartWrite(const Request* req) { + StartWrite(req, ::grpc::WriteOptions()); + } /// Initiate/post a write operation with specified options. /// @@ -266,7 +268,7 @@ class ClientBidiReactor : public internal::ClientReactor { /// ownership but the caller must ensure that the message is /// not deleted or modified until OnWriteDone is called. /// \param[in] options The WriteOptions to use for writing this message - void StartWrite(const Request* req, grpc::WriteOptions options) { + void StartWrite(const Request* req, ::grpc::WriteOptions options) { stream_->Write(req, options); } @@ -279,7 +281,7 @@ class ClientBidiReactor : public internal::ClientReactor { /// ownership but the caller must ensure that the message is /// not deleted or modified until OnWriteDone is called. /// \param[in] options The WriteOptions to use for writing this message - void StartWriteLast(const Request* req, grpc::WriteOptions options) { + void StartWriteLast(const Request* req, ::grpc::WriteOptions options) { StartWrite(req, options.set_last_message()); } @@ -326,7 +328,7 @@ class ClientBidiReactor : public internal::ClientReactor { /// (like failure to remove a hold). /// /// \param[in] s The status outcome of this RPC - void OnDone(const grpc::Status& /*s*/) override {} + void OnDone(const ::grpc::Status& /*s*/) override {} /// Notifies the application that a read of initial metadata from the /// server is done. If the application chooses not to implement this method, @@ -383,7 +385,7 @@ class ClientReadReactor : public internal::ClientReactor { } void RemoveHold() { reader_->RemoveHold(); } - void OnDone(const grpc::Status& /*s*/) override {} + void OnDone(const ::grpc::Status& /*s*/) override {} virtual void OnReadInitialMetadataDone(bool /*ok*/) {} virtual void OnReadDone(bool /*ok*/) {} @@ -399,11 +401,13 @@ template <class Request> class ClientWriteReactor : public internal::ClientReactor { public: void StartCall() { writer_->StartCall(); } - void StartWrite(const Request* req) { StartWrite(req, grpc::WriteOptions()); } - void StartWrite(const Request* req, grpc::WriteOptions options) { + void StartWrite(const Request* req) { + StartWrite(req, ::grpc::WriteOptions()); + } + void StartWrite(const Request* req, ::grpc::WriteOptions options) { writer_->Write(req, options); } - void StartWriteLast(const Request* req, grpc::WriteOptions options) { + void StartWriteLast(const Request* req, ::grpc::WriteOptions options) { StartWrite(req, options.set_last_message()); } void StartWritesDone() { writer_->WritesDone(); } @@ -415,7 +419,7 @@ class ClientWriteReactor : public internal::ClientReactor { } void RemoveHold() { writer_->RemoveHold(); } - void OnDone(const grpc::Status& /*s*/) override {} + void OnDone(const ::grpc::Status& /*s*/) override {} virtual void OnReadInitialMetadataDone(bool /*ok*/) {} virtual void OnWriteDone(bool /*ok*/) {} virtual void OnWritesDoneDone(bool /*ok*/) {} @@ -441,7 +445,7 @@ class ClientWriteReactor : public internal::ClientReactor { class ClientUnaryReactor : public internal::ClientReactor { public: void StartCall() { call_->StartCall(); } - void OnDone(const grpc::Status& /*s*/) override {} + void OnDone(const ::grpc::Status& /*s*/) override {} virtual void OnReadInitialMetadataDone(bool /*ok*/) {} private: @@ -530,7 +534,7 @@ class ClientCallbackReaderWriterImpl call_.PerformOps(&read_ops_); } - void Write(const Request* msg, grpc::WriteOptions options) + void Write(const Request* msg, ::grpc::WriteOptions options) ABSL_LOCKS_EXCLUDED(start_mu_) override { if (options.is_last_message()) { options.set_buffer_hint(); @@ -589,7 +593,7 @@ class ClientCallbackReaderWriterImpl friend class ClientCallbackReaderWriterFactory<Request, Response>; ClientCallbackReaderWriterImpl(grpc::internal::Call call, - grpc::ClientContext* context, + ::grpc::ClientContext* context, ClientBidiReactor<Request, Response>* reactor) : context_(context), call_(call), @@ -647,11 +651,11 @@ class ClientCallbackReaderWriterImpl void MaybeFinish(bool from_reaction) { if (GPR_UNLIKELY(callbacks_outstanding_.fetch_sub( 1, std::memory_order_acq_rel) == 1)) { - grpc::Status s = std::move(finish_status_); + ::grpc::Status s = std::move(finish_status_); auto* reactor = reactor_; auto* call = call_.call(); this->~ClientCallbackReaderWriterImpl(); - grpc::g_core_codegen_interface->grpc_call_unref(call); + ::grpc::g_core_codegen_interface->grpc_call_unref(call); if (GPR_LIKELY(from_reaction)) { reactor->OnDone(s); } else { @@ -660,7 +664,7 @@ class ClientCallbackReaderWriterImpl } } - grpc::ClientContext* const context_; + ::grpc::ClientContext* const context_; grpc::internal::Call call_; ClientBidiReactor<Request, Response>* const reactor_; @@ -674,7 +678,7 @@ class ClientCallbackReaderWriterImpl grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus> finish_ops_; grpc::internal::CallbackWithSuccessTag finish_tag_; - grpc::Status finish_status_; + ::grpc::Status finish_status_; grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, @@ -707,15 +711,15 @@ class ClientCallbackReaderWriterImpl template <class Request, class Response> class ClientCallbackReaderWriterFactory { public: - static void Create(grpc::ChannelInterface* channel, - const grpc::internal::RpcMethod& method, - grpc::ClientContext* context, + static void Create(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc::ClientContext* context, ClientBidiReactor<Request, Response>* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); - grpc::g_core_codegen_interface->grpc_call_ref(call.call()); - new (grpc::g_core_codegen_interface->grpc_call_arena_alloc( + ::grpc::g_core_codegen_interface->grpc_call_ref(call.call()); + new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( call.call(), sizeof(ClientCallbackReaderWriterImpl<Request, Response>))) ClientCallbackReaderWriterImpl<Request, Response>(call, context, reactor); @@ -806,8 +810,8 @@ class ClientCallbackReaderImpl : public ClientCallbackReader<Response> { friend class ClientCallbackReaderFactory<Response>; template <class Request> - ClientCallbackReaderImpl(grpc::internal::Call call, - grpc::ClientContext* context, Request* request, + ClientCallbackReaderImpl(::grpc::internal::Call call, + ::grpc::ClientContext* context, Request* request, ClientReadReactor<Response>* reactor) : context_(context), call_(call), reactor_(reactor) { this->BindReactor(reactor); @@ -820,11 +824,11 @@ class ClientCallbackReaderImpl : public ClientCallbackReader<Response> { void MaybeFinish(bool from_reaction) { if (GPR_UNLIKELY(callbacks_outstanding_.fetch_sub( 1, std::memory_order_acq_rel) == 1)) { - grpc::Status s = std::move(finish_status_); + ::grpc::Status s = std::move(finish_status_); auto* reactor = reactor_; auto* call = call_.call(); this->~ClientCallbackReaderImpl(); - grpc::g_core_codegen_interface->grpc_call_unref(call); + ::grpc::g_core_codegen_interface->grpc_call_unref(call); if (GPR_LIKELY(from_reaction)) { reactor->OnDone(s); } else { @@ -833,7 +837,7 @@ class ClientCallbackReaderImpl : public ClientCallbackReader<Response> { } } - grpc::ClientContext* const context_; + ::grpc::ClientContext* const context_; grpc::internal::Call call_; ClientReadReactor<Response>* const reactor_; @@ -846,7 +850,7 @@ class ClientCallbackReaderImpl : public ClientCallbackReader<Response> { grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus> finish_ops_; grpc::internal::CallbackWithSuccessTag finish_tag_; - grpc::Status finish_status_; + ::grpc::Status finish_status_; grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<Response>> read_ops_; @@ -867,15 +871,15 @@ template <class Response> class ClientCallbackReaderFactory { public: template <class Request> - static void Create(grpc::ChannelInterface* channel, - const grpc::internal::RpcMethod& method, - grpc::ClientContext* context, const Request* request, + static void Create(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc::ClientContext* context, const Request* request, ClientReadReactor<Response>* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); - grpc::g_core_codegen_interface->grpc_call_ref(call.call()); - new (grpc::g_core_codegen_interface->grpc_call_arena_alloc( + ::grpc::g_core_codegen_interface->grpc_call_ref(call.call()); + new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( call.call(), sizeof(ClientCallbackReaderImpl<Response>))) ClientCallbackReaderImpl<Response>(call, context, request, reactor); } @@ -928,7 +932,7 @@ class ClientCallbackWriterImpl : public ClientCallbackWriter<Request> { this->MaybeFinish(/*from_reaction=*/false); } - void Write(const Request* msg, grpc::WriteOptions options) + void Write(const Request* msg, ::grpc::WriteOptions options) ABSL_LOCKS_EXCLUDED(start_mu_) override { if (GPR_UNLIKELY(options.is_last_message())) { options.set_buffer_hint(); @@ -991,8 +995,8 @@ class ClientCallbackWriterImpl : public ClientCallbackWriter<Request> { friend class ClientCallbackWriterFactory<Request>; template <class Response> - ClientCallbackWriterImpl(grpc::internal::Call call, - grpc::ClientContext* context, Response* response, + ClientCallbackWriterImpl(::grpc::internal::Call call, + ::grpc::ClientContext* context, Response* response, ClientWriteReactor<Request>* reactor) : context_(context), call_(call), @@ -1038,11 +1042,11 @@ class ClientCallbackWriterImpl : public ClientCallbackWriter<Request> { void MaybeFinish(bool from_reaction) { if (GPR_UNLIKELY(callbacks_outstanding_.fetch_sub( 1, std::memory_order_acq_rel) == 1)) { - grpc::Status s = std::move(finish_status_); + ::grpc::Status s = std::move(finish_status_); auto* reactor = reactor_; auto* call = call_.call(); this->~ClientCallbackWriterImpl(); - grpc::g_core_codegen_interface->grpc_call_unref(call); + ::grpc::g_core_codegen_interface->grpc_call_unref(call); if (GPR_LIKELY(from_reaction)) { reactor->OnDone(s); } else { @@ -1051,7 +1055,7 @@ class ClientCallbackWriterImpl : public ClientCallbackWriter<Request> { } } - grpc::ClientContext* const context_; + ::grpc::ClientContext* const context_; grpc::internal::Call call_; ClientWriteReactor<Request>* const reactor_; @@ -1067,7 +1071,7 @@ class ClientCallbackWriterImpl : public ClientCallbackWriter<Request> { grpc::internal::CallOpClientRecvStatus> finish_ops_; grpc::internal::CallbackWithSuccessTag finish_tag_; - grpc::Status finish_status_; + ::grpc::Status finish_status_; grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, @@ -1096,15 +1100,15 @@ template <class Request> class ClientCallbackWriterFactory { public: template <class Response> - static void Create(grpc::ChannelInterface* channel, - const grpc::internal::RpcMethod& method, - grpc::ClientContext* context, Response* response, + static void Create(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc::ClientContext* context, Response* response, ClientWriteReactor<Request>* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); - grpc::g_core_codegen_interface->grpc_call_ref(call.call()); - new (grpc::g_core_codegen_interface->grpc_call_arena_alloc( + ::grpc::g_core_codegen_interface->grpc_call_ref(call.call()); + new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( call.call(), sizeof(ClientCallbackWriterImpl<Request>))) ClientCallbackWriterImpl<Request>(call, context, response, reactor); } @@ -1155,8 +1159,8 @@ class ClientCallbackUnaryImpl final : public ClientCallbackUnary { friend class ClientCallbackUnaryFactory; template <class Request, class Response> - ClientCallbackUnaryImpl(grpc::internal::Call call, - grpc::ClientContext* context, Request* request, + ClientCallbackUnaryImpl(::grpc::internal::Call call, + ::grpc::ClientContext* context, Request* request, Response* response, ClientUnaryReactor* reactor) : context_(context), call_(call), reactor_(reactor) { this->BindReactor(reactor); @@ -1173,16 +1177,16 @@ class ClientCallbackUnaryImpl final : public ClientCallbackUnary { void MaybeFinish() { if (GPR_UNLIKELY(callbacks_outstanding_.fetch_sub( 1, std::memory_order_acq_rel) == 1)) { - grpc::Status s = std::move(finish_status_); + ::grpc::Status s = std::move(finish_status_); auto* reactor = reactor_; auto* call = call_.call(); this->~ClientCallbackUnaryImpl(); - grpc::g_core_codegen_interface->grpc_call_unref(call); + ::grpc::g_core_codegen_interface->grpc_call_unref(call); reactor->OnDone(s); } } - grpc::ClientContext* const context_; + ::grpc::ClientContext* const context_; grpc::internal::Call call_; ClientUnaryReactor* const reactor_; @@ -1197,7 +1201,7 @@ class ClientCallbackUnaryImpl final : public ClientCallbackUnary { grpc::internal::CallOpClientRecvStatus> finish_ops_; grpc::internal::CallbackWithSuccessTag finish_tag_; - grpc::Status finish_status_; + ::grpc::Status finish_status_; // This call will have 2 callbacks: start and finish std::atomic<intptr_t> callbacks_outstanding_{2}; @@ -1207,16 +1211,16 @@ class ClientCallbackUnaryFactory { public: template <class Request, class Response, class BaseRequest = Request, class BaseResponse = Response> - static void Create(grpc::ChannelInterface* channel, - const grpc::internal::RpcMethod& method, - grpc::ClientContext* context, const Request* request, + static void Create(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc::ClientContext* context, const Request* request, Response* response, ClientUnaryReactor* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); - grpc::g_core_codegen_interface->grpc_call_ref(call.call()); + ::grpc::g_core_codegen_interface->grpc_call_ref(call.call()); - new (grpc::g_core_codegen_interface->grpc_call_arena_alloc( + new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( call.call(), sizeof(ClientCallbackUnaryImpl))) ClientCallbackUnaryImpl(call, context, static_cast<const BaseRequest*>(request), |