diff --git a/include/grpcpp/generic/generic_stub_impl.h b/include/grpcpp/generic/generic_stub_impl.h index e670fcaa6541e7f2005ab22d85e4b130706b5bc6..72d2989ceb65928f9d73bdc90ae72789d37ed868 100644 --- a/include/grpcpp/generic/generic_stub_impl.h +++ b/include/grpcpp/generic/generic_stub_impl.h @@ -28,8 +28,6 @@ #include <grpcpp/support/client_callback_impl.h> #include <grpcpp/support/status.h> -#include <functional> - namespace grpc { typedef ::grpc_impl::ClientAsyncReaderWriter<ByteBuffer, ByteBuffer> @@ -92,15 +90,15 @@ class GenericStub final { void UnaryCall(grpc_impl::ClientContext* context, const grpc::string& method, const grpc::ByteBuffer* request, grpc::ByteBuffer* response, - grpc_impl::experimental::ClientUnaryReactor* reactor); + grpc_impl::ClientUnaryReactor* reactor); /// Setup a call to a named method \a method using \a context and tied to /// \a reactor . Like any other bidi streaming RPC, it will not be activated /// until StartCall is invoked on its reactor. void PrepareBidiStreamingCall( grpc_impl::ClientContext* context, const grpc::string& method, - grpc_impl::experimental::ClientBidiReactor<grpc::ByteBuffer, - grpc::ByteBuffer>* reactor); + grpc_impl::ClientBidiReactor<grpc::ByteBuffer, grpc::ByteBuffer>* + reactor); private: GenericStub* stub_; diff --git a/include/grpcpp/impl/codegen/async_generic_service.h b/include/grpcpp/impl/codegen/async_generic_service.h index 934f619a4464ae45eaff8b65e6e7e2356813279a..8515e0031a9b0340fbdd1d8f4d7398480181721d 100644 --- a/include/grpcpp/impl/codegen/async_generic_service.h +++ b/include/grpcpp/impl/codegen/async_generic_service.h @@ -93,10 +93,10 @@ namespace experimental { /// invoked on a CallbackGenericService. It is just a ServerBidi reactor with /// ByteBuffer arguments. using ServerGenericBidiReactor = - ::grpc_impl::experimental::ServerBidiReactor<ByteBuffer, ByteBuffer>; + ::grpc_impl::ServerBidiReactor<ByteBuffer, ByteBuffer>; class GenericCallbackServerContext final - : public ::grpc_impl::experimental::CallbackServerContext { + : public ::grpc_impl::CallbackServerContext { public: const grpc::string& method() const { return method_; } const grpc::string& host() const { return host_; } @@ -108,7 +108,7 @@ class GenericCallbackServerContext final void Clear() { method_.clear(); host_.clear(); - ::grpc_impl::experimental::CallbackServerContext::Clear(); + ::grpc_impl::CallbackServerContext::Clear(); } grpc::string method_; @@ -143,7 +143,7 @@ class CallbackGenericService { Handler() { return new ::grpc_impl::internal::CallbackBidiHandler<ByteBuffer, ByteBuffer>( - [this](::grpc_impl::experimental::CallbackServerContext* ctx) { + [this](::grpc_impl::CallbackServerContext* ctx) { return CreateReactor(static_cast<GenericCallbackServerContext*>(ctx)); }); } diff --git a/include/grpcpp/impl/codegen/client_callback.h b/include/grpcpp/impl/codegen/client_callback.h index 9d183725b574ce30e39bf6ad192519774a2748d4..7893a6ff3bad836cd970895d76b4a9e3418e9d8f 100644 --- a/include/grpcpp/impl/codegen/client_callback.h +++ b/include/grpcpp/impl/codegen/client_callback.h @@ -25,30 +25,25 @@ namespace grpc { namespace experimental { template <class Response> -using ClientCallbackReader = - ::grpc_impl::experimental::ClientCallbackReader<Response>; +using ClientCallbackReader = ::grpc_impl::ClientCallbackReader<Response>; template <class Request> -using ClientCallbackWriter = - ::grpc_impl::experimental::ClientCallbackWriter<Request>; +using ClientCallbackWriter = ::grpc_impl::ClientCallbackWriter<Request>; template <class Request, class Response> using ClientCallbackReaderWriter = - ::grpc_impl::experimental::ClientCallbackReaderWriter<Request, Response>; + ::grpc_impl::ClientCallbackReaderWriter<Request, Response>; template <class Response> -using ClientReadReactor = - ::grpc_impl::experimental::ClientReadReactor<Response>; +using ClientReadReactor = ::grpc_impl::ClientReadReactor<Response>; template <class Request> -using ClientWriteReactor = - ::grpc_impl::experimental::ClientWriteReactor<Request>; +using ClientWriteReactor = ::grpc_impl::ClientWriteReactor<Request>; template <class Request, class Response> -using ClientBidiReactor = - ::grpc_impl::experimental::ClientBidiReactor<Request, Response>; +using ClientBidiReactor = ::grpc_impl::ClientBidiReactor<Request, Response>; -typedef ::grpc_impl::experimental::ClientUnaryReactor ClientUnaryReactor; +typedef ::grpc_impl::ClientUnaryReactor ClientUnaryReactor; } // namespace experimental } // namespace grpc diff --git a/include/grpcpp/impl/codegen/client_callback_impl.h b/include/grpcpp/impl/codegen/client_callback_impl.h index 7d421326999f924d28e3885a749d5a73f4c32b88..1a2bae1b5dbb21ddf68710040d171f20a31963f6 100644 --- a/include/grpcpp/impl/codegen/client_callback_impl.h +++ b/include/grpcpp/impl/codegen/client_callback_impl.h @@ -103,8 +103,6 @@ class CallbackUnaryCallImpl { }; } // namespace internal -namespace experimental { - // Forward declarations template <class Request, class Response> class ClientBidiReactor; @@ -404,8 +402,6 @@ inline void ClientCallbackUnary::BindReactor(ClientUnaryReactor* reactor) { reactor->BindCall(this); } -} // namespace experimental - namespace internal { // Forward declare factory classes for friendship @@ -418,7 +414,7 @@ class ClientCallbackWriterFactory; template <class Request, class Response> class ClientCallbackReaderWriterImpl - : public experimental::ClientCallbackReaderWriter<Request, Response> { + : public ClientCallbackReaderWriter<Request, Response> { public: // always allocated against a call arena, no memory free required static void operator delete(void* /*ptr*/, std::size_t size) { @@ -562,9 +558,9 @@ class ClientCallbackReaderWriterImpl private: friend class ClientCallbackReaderWriterFactory<Request, Response>; - ClientCallbackReaderWriterImpl( - grpc::internal::Call call, ::grpc_impl::ClientContext* context, - experimental::ClientBidiReactor<Request, Response>* reactor) + ClientCallbackReaderWriterImpl(grpc::internal::Call call, + ::grpc_impl::ClientContext* context, + ClientBidiReactor<Request, Response>* reactor) : context_(context), call_(call), reactor_(reactor), @@ -574,7 +570,7 @@ class ClientCallbackReaderWriterImpl ::grpc_impl::ClientContext* const context_; grpc::internal::Call call_; - experimental::ClientBidiReactor<Request, Response>* const reactor_; + ClientBidiReactor<Request, Response>* const reactor_; grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpRecvInitialMetadata> @@ -612,11 +608,10 @@ class ClientCallbackReaderWriterImpl template <class Request, class Response> class ClientCallbackReaderWriterFactory { public: - static void Create( - ::grpc::ChannelInterface* channel, - const ::grpc::internal::RpcMethod& method, - ::grpc_impl::ClientContext* context, - experimental::ClientBidiReactor<Request, Response>* reactor) { + static void Create(::grpc::ChannelInterface* channel, + const ::grpc::internal::RpcMethod& method, + ::grpc_impl::ClientContext* context, + ClientBidiReactor<Request, Response>* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); @@ -629,8 +624,7 @@ class ClientCallbackReaderWriterFactory { }; template <class Response> -class ClientCallbackReaderImpl - : public experimental::ClientCallbackReader<Response> { +class ClientCallbackReaderImpl : public ClientCallbackReader<Response> { public: // always allocated against a call arena, no memory free required static void operator delete(void* /*ptr*/, std::size_t size) { @@ -716,7 +710,7 @@ class ClientCallbackReaderImpl ClientCallbackReaderImpl(::grpc::internal::Call call, ::grpc_impl::ClientContext* context, Request* request, - experimental::ClientReadReactor<Response>* reactor) + ClientReadReactor<Response>* reactor) : context_(context), call_(call), reactor_(reactor) { this->BindReactor(reactor); // TODO(vjpai): don't assert @@ -726,7 +720,7 @@ class ClientCallbackReaderImpl ::grpc_impl::ClientContext* const context_; grpc::internal::Call call_; - experimental::ClientReadReactor<Response>* const reactor_; + ClientReadReactor<Response>* const reactor_; grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, @@ -757,7 +751,7 @@ class ClientCallbackReaderFactory { const ::grpc::internal::RpcMethod& method, ::grpc_impl::ClientContext* context, const Request* request, - experimental::ClientReadReactor<Response>* reactor) { + ClientReadReactor<Response>* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); @@ -769,8 +763,7 @@ class ClientCallbackReaderFactory { }; template <class Request> -class ClientCallbackWriterImpl - : public experimental::ClientCallbackWriter<Request> { +class ClientCallbackWriterImpl : public ClientCallbackWriter<Request> { public: // always allocated against a call arena, no memory free required static void operator delete(void* /*ptr*/, std::size_t size) { @@ -896,7 +889,7 @@ class ClientCallbackWriterImpl ClientCallbackWriterImpl(::grpc::internal::Call call, ::grpc_impl::ClientContext* context, Response* response, - experimental::ClientWriteReactor<Request>* reactor) + ClientWriteReactor<Request>* reactor) : context_(context), call_(call), reactor_(reactor), @@ -908,7 +901,7 @@ class ClientCallbackWriterImpl ::grpc_impl::ClientContext* const context_; grpc::internal::Call call_; - experimental::ClientWriteReactor<Request>* const reactor_; + ClientWriteReactor<Request>* const reactor_; grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpRecvInitialMetadata> @@ -947,7 +940,7 @@ class ClientCallbackWriterFactory { static void Create(::grpc::ChannelInterface* channel, const ::grpc::internal::RpcMethod& method, ::grpc_impl::ClientContext* context, Response* response, - experimental::ClientWriteReactor<Request>* reactor) { + ClientWriteReactor<Request>* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); @@ -958,7 +951,7 @@ class ClientCallbackWriterFactory { } }; -class ClientCallbackUnaryImpl final : public experimental::ClientCallbackUnary { +class ClientCallbackUnaryImpl final : public ClientCallbackUnary { public: // always allocated against a call arena, no memory free required static void operator delete(void* /*ptr*/, std::size_t size) { @@ -1015,8 +1008,7 @@ class ClientCallbackUnaryImpl final : public experimental::ClientCallbackUnary { template <class Request, class Response> ClientCallbackUnaryImpl(::grpc::internal::Call call, ::grpc_impl::ClientContext* context, Request* request, - Response* response, - experimental::ClientUnaryReactor* reactor) + Response* response, ClientUnaryReactor* reactor) : context_(context), call_(call), reactor_(reactor) { this->BindReactor(reactor); // TODO(vjpai): don't assert @@ -1028,7 +1020,7 @@ class ClientCallbackUnaryImpl final : public experimental::ClientCallbackUnary { ::grpc_impl::ClientContext* const context_; grpc::internal::Call call_; - experimental::ClientUnaryReactor* const reactor_; + ClientUnaryReactor* const reactor_; grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, @@ -1055,7 +1047,7 @@ class ClientCallbackUnaryFactory { const ::grpc::internal::RpcMethod& method, ::grpc_impl::ClientContext* context, const Request* request, Response* response, - experimental::ClientUnaryReactor* reactor) { + ClientUnaryReactor* reactor) { grpc::internal::Call call = channel->CreateCall(method, context, channel->CallbackCQ()); diff --git a/include/grpcpp/impl/codegen/client_context_impl.h b/include/grpcpp/impl/codegen/client_context_impl.h index 48a02dbd4cb7e50ab77ec38bd45a1b21fc7345fa..b8e90722b255e14e74548da6101b261f90049713 100644 --- a/include/grpcpp/impl/codegen/client_context_impl.h +++ b/include/grpcpp/impl/codegen/client_context_impl.h @@ -107,10 +107,8 @@ class ClientAsyncReaderWriter; template <class R> class ClientAsyncResponseReader; -namespace experimental { class ServerContextBase; class CallbackServerContext; -} // namespace experimental /// Options for \a ClientContext::FromServerContext specifying which traits from /// the \a ServerContext to propagate (copy) from it into a new \a @@ -202,7 +200,7 @@ class ClientContext { const grpc_impl::ServerContext& server_context, PropagationOptions options = PropagationOptions()); static std::unique_ptr<ClientContext> FromCallbackServerContext( - const grpc_impl::experimental::CallbackServerContext& server_context, + const grpc_impl::CallbackServerContext& server_context, PropagationOptions options = PropagationOptions()); /// Add the (\a meta_key, \a meta_value) pair to the metadata associated with @@ -484,7 +482,7 @@ class ClientContext { void SendCancelToInterceptors(); static std::unique_ptr<ClientContext> FromInternalServerContext( - const grpc_impl::experimental::ServerContextBase& server_context, + const grpc_impl::ServerContextBase& server_context, PropagationOptions options); bool initial_metadata_received_; diff --git a/include/grpcpp/impl/codegen/completion_queue_impl.h b/include/grpcpp/impl/codegen/completion_queue_impl.h index 04b9300e032952be36612a5b59d374138e5232d5..4549aa3719477be1a78cc57a49a4bb193c59fedc 100644 --- a/include/grpcpp/impl/codegen/completion_queue_impl.h +++ b/include/grpcpp/impl/codegen/completion_queue_impl.h @@ -56,9 +56,7 @@ template <class R> class ServerReader; template <class W> class ServerWriter; -namespace experimental { class ServerContextBase; -} // namespace experimental namespace internal { template <class W, class R> class ServerReaderWriterBody; @@ -277,7 +275,7 @@ class CompletionQueue : private ::grpc::GrpcLibraryCodegen { template <::grpc::StatusCode code> friend class ::grpc_impl::internal::ErrorMethodHandler; friend class ::grpc_impl::Server; - friend class ::grpc_impl::experimental::ServerContextBase; + friend class ::grpc_impl::ServerContextBase; friend class ::grpc::ServerInterface; template <class InputMessage, class OutputMessage> friend class ::grpc::internal::BlockingUnaryCallImpl; diff --git a/include/grpcpp/impl/codegen/method_handler_impl.h b/include/grpcpp/impl/codegen/method_handler_impl.h index c7545fdcc13d0424c00806dd4e91c2c124cd2d8e..6368b63e1ab1d809fd34157707c4b8b375a84f9b 100644 --- a/include/grpcpp/impl/codegen/method_handler_impl.h +++ b/include/grpcpp/impl/codegen/method_handler_impl.h @@ -345,8 +345,7 @@ template <::grpc::StatusCode code> class ErrorMethodHandler : public ::grpc::internal::MethodHandler { public: template <class T> - static void FillOps(::grpc_impl::experimental::ServerContextBase* context, - T* ops) { + static void FillOps(::grpc_impl::ServerContextBase* context, T* ops) { ::grpc::Status status(code, ""); if (!context->sent_initial_metadata_) { ops->SendInitialMetadata(&context->initial_metadata_, diff --git a/include/grpcpp/impl/codegen/rpc_service_method.h b/include/grpcpp/impl/codegen/rpc_service_method.h index 7c5b8bf0c331e62b37124fc05a149be096322aed..da0e5b60b20e595bb67f45a9ed9cc8a219f68c42 100644 --- a/include/grpcpp/impl/codegen/rpc_service_method.h +++ b/include/grpcpp/impl/codegen/rpc_service_method.h @@ -32,9 +32,7 @@ #include <grpcpp/impl/codegen/status.h> namespace grpc_impl { -namespace experimental { class ServerContextBase; -} } // namespace grpc_impl namespace grpc { @@ -54,8 +52,7 @@ class MethodHandler { /// \param requester : used only by the callback API. It is a function /// called by the RPC Controller to request another RPC (and also /// to set up the state required to make that request possible) - HandlerParameter(Call* c, - ::grpc_impl::experimental::ServerContextBase* context, + HandlerParameter(Call* c, ::grpc_impl::ServerContextBase* context, void* req, Status req_status, void* handler_data, std::function<void()> requester) : call(c), @@ -66,7 +63,7 @@ class MethodHandler { call_requester(std::move(requester)) {} ~HandlerParameter() {} Call* const call; - ::grpc_impl::experimental::ServerContextBase* const server_context; + ::grpc_impl::ServerContextBase* const server_context; void* const request; const Status status; void* const internal_data; diff --git a/include/grpcpp/impl/codegen/server_callback.h b/include/grpcpp/impl/codegen/server_callback.h index d33a224da2c34480600a617342ffbd1bdc3d60a9..3ddd8f6f81de4ff965bcb30caf945a633e7dbc0c 100644 --- a/include/grpcpp/impl/codegen/server_callback.h +++ b/include/grpcpp/impl/codegen/server_callback.h @@ -24,17 +24,15 @@ namespace grpc { namespace experimental { template <class Request> -using ServerReadReactor = ::grpc_impl::experimental::ServerReadReactor<Request>; +using ServerReadReactor = ::grpc_impl::ServerReadReactor<Request>; template <class Response> -using ServerWriteReactor = - ::grpc_impl::experimental::ServerWriteReactor<Response>; +using ServerWriteReactor = ::grpc_impl::ServerWriteReactor<Response>; template <class Request, class Response> -using ServerBidiReactor = - ::grpc_impl::experimental::ServerBidiReactor<Request, Response>; +using ServerBidiReactor = ::grpc_impl::ServerBidiReactor<Request, Response>; -using ServerUnaryReactor = ::grpc_impl::experimental::ServerUnaryReactor; +using ServerUnaryReactor = ::grpc_impl::ServerUnaryReactor; } // namespace experimental } // namespace grpc diff --git a/include/grpcpp/impl/codegen/server_callback_handlers.h b/include/grpcpp/impl/codegen/server_callback_handlers.h index 32d19d765fa04d363286d3ccb407cff9db37d51f..7752864175d502437352cef34b2208e7a270e3ae 100644 --- a/include/grpcpp/impl/codegen/server_callback_handlers.h +++ b/include/grpcpp/impl/codegen/server_callback_handlers.h @@ -31,9 +31,8 @@ template <class RequestType, class ResponseType> class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { public: explicit CallbackUnaryHandler( - std::function<experimental::ServerUnaryReactor*( - ::grpc_impl::experimental::CallbackServerContext*, const RequestType*, - ResponseType*)> + std::function<ServerUnaryReactor*(::grpc_impl::CallbackServerContext*, + const RequestType*, ResponseType*)> get_reactor) : get_reactor_(std::move(get_reactor)) {} @@ -53,18 +52,17 @@ class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { auto* call = new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( param.call->call(), sizeof(ServerCallbackUnaryImpl))) ServerCallbackUnaryImpl( - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), param.call, allocator_state, std::move(param.call_requester)); param.server_context->BeginCompletionOp( param.call, [call](bool) { call->MaybeDone(); }, call); - experimental::ServerUnaryReactor* reactor = nullptr; + ServerUnaryReactor* reactor = nullptr; if (param.status.ok()) { - reactor = ::grpc::internal::CatchingReactorGetter< - experimental::ServerUnaryReactor>( + reactor = ::grpc::internal::CatchingReactorGetter<ServerUnaryReactor>( get_reactor_, - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), call->request(), call->response()); } @@ -110,14 +108,13 @@ class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { } private: - std::function<experimental::ServerUnaryReactor*( - ::grpc_impl::experimental::CallbackServerContext*, const RequestType*, - ResponseType*)> + std::function<ServerUnaryReactor*(::grpc_impl::CallbackServerContext*, + const RequestType*, ResponseType*)> get_reactor_; ::grpc::experimental::MessageAllocator<RequestType, ResponseType>* allocator_ = nullptr; - class ServerCallbackUnaryImpl : public experimental::ServerCallbackUnary { + class ServerCallbackUnaryImpl : public ServerCallbackUnary { public: void Finish(::grpc::Status s) override { finish_tag_.Set( @@ -168,8 +165,7 @@ class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { friend class CallbackUnaryHandler<RequestType, ResponseType>; ServerCallbackUnaryImpl( - ::grpc_impl::experimental::CallbackServerContext* ctx, - ::grpc::internal::Call* call, + ::grpc_impl::CallbackServerContext* ctx, ::grpc::internal::Call* call, ::grpc::experimental::MessageHolder<RequestType, ResponseType>* allocator_state, std::function<void()> call_requester) @@ -184,7 +180,7 @@ class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { /// operations), maybe calls OnCancel if possible/needed, and maybe marks /// the completion of the RPC. This should be the last component of the /// handler. - void SetupReactor(experimental::ServerUnaryReactor* reactor) { + void SetupReactor(ServerUnaryReactor* reactor) { reactor_.store(reactor, std::memory_order_relaxed); this->BindReactor(reactor); this->MaybeCallOnCancel(reactor); @@ -219,7 +215,7 @@ class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { finish_ops_; ::grpc::internal::CallbackWithSuccessTag finish_tag_; - ::grpc_impl::experimental::CallbackServerContext* const ctx_; + ::grpc_impl::CallbackServerContext* const ctx_; ::grpc::internal::Call call_; ::grpc::experimental::MessageHolder<RequestType, ResponseType>* const allocator_state_; @@ -234,7 +230,7 @@ class CallbackUnaryHandler : public ::grpc::internal::MethodHandler { // change after that and it only gets used by actions caused, directly or // indirectly, by that setup. This comment also applies to the reactor_ // variables of the other streaming objects in this file. - std::atomic<experimental::ServerUnaryReactor*> reactor_; + std::atomic<ServerUnaryReactor*> reactor_; // callbacks_outstanding_ follows a refcount pattern std::atomic<intptr_t> callbacks_outstanding_{ 3}; // reserve for start, Finish, and CompletionOp @@ -245,8 +241,8 @@ template <class RequestType, class ResponseType> class CallbackClientStreamingHandler : public ::grpc::internal::MethodHandler { public: explicit CallbackClientStreamingHandler( - std::function<experimental::ServerReadReactor<RequestType>*( - ::grpc_impl::experimental::CallbackServerContext*, ResponseType*)> + std::function<ServerReadReactor<RequestType>*( + ::grpc_impl::CallbackServerContext*, ResponseType*)> get_reactor) : get_reactor_(std::move(get_reactor)) {} void RunHandler(const HandlerParameter& param) final { @@ -256,18 +252,18 @@ class CallbackClientStreamingHandler : public ::grpc::internal::MethodHandler { auto* reader = new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( param.call->call(), sizeof(ServerCallbackReaderImpl))) ServerCallbackReaderImpl( - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), param.call, std::move(param.call_requester)); param.server_context->BeginCompletionOp( param.call, [reader](bool) { reader->MaybeDone(); }, reader); - experimental::ServerReadReactor<RequestType>* reactor = nullptr; + ServerReadReactor<RequestType>* reactor = nullptr; if (param.status.ok()) { reactor = ::grpc::internal::CatchingReactorGetter< - experimental::ServerReadReactor<RequestType>>( + ServerReadReactor<RequestType>>( get_reactor_, - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), reader->response()); } @@ -284,12 +280,11 @@ class CallbackClientStreamingHandler : public ::grpc::internal::MethodHandler { } private: - std::function<experimental::ServerReadReactor<RequestType>*( - ::grpc_impl::experimental::CallbackServerContext*, ResponseType*)> + std::function<ServerReadReactor<RequestType>*( + ::grpc_impl::CallbackServerContext*, ResponseType*)> get_reactor_; - class ServerCallbackReaderImpl - : public experimental::ServerCallbackReader<RequestType> { + class ServerCallbackReaderImpl : public ServerCallbackReader<RequestType> { public: void Finish(::grpc::Status s) override { finish_tag_.Set(call_.call(), [this](bool) { MaybeDone(); }, &finish_ops_, @@ -342,12 +337,12 @@ class CallbackClientStreamingHandler : public ::grpc::internal::MethodHandler { private: friend class CallbackClientStreamingHandler<RequestType, ResponseType>; - ServerCallbackReaderImpl( - ::grpc_impl::experimental::CallbackServerContext* ctx, - ::grpc::internal::Call* call, std::function<void()> call_requester) + ServerCallbackReaderImpl(::grpc_impl::CallbackServerContext* ctx, + ::grpc::internal::Call* call, + std::function<void()> call_requester) : ctx_(ctx), call_(*call), call_requester_(std::move(call_requester)) {} - void SetupReactor(experimental::ServerReadReactor<RequestType>* reactor) { + void SetupReactor(ServerReadReactor<RequestType>* reactor) { reactor_.store(reactor, std::memory_order_relaxed); read_tag_.Set(call_.call(), [this](bool ok) { @@ -393,12 +388,12 @@ class CallbackClientStreamingHandler : public ::grpc::internal::MethodHandler { read_ops_; ::grpc::internal::CallbackWithSuccessTag read_tag_; - ::grpc_impl::experimental::CallbackServerContext* const ctx_; + ::grpc_impl::CallbackServerContext* const ctx_; ::grpc::internal::Call call_; ResponseType resp_; std::function<void()> call_requester_; // The memory ordering of reactor_ follows ServerCallbackUnaryImpl. - std::atomic<experimental::ServerReadReactor<RequestType>*> reactor_; + std::atomic<ServerReadReactor<RequestType>*> reactor_; // callbacks_outstanding_ follows a refcount pattern std::atomic<intptr_t> callbacks_outstanding_{ 3}; // reserve for OnStarted, Finish, and CompletionOp @@ -409,9 +404,8 @@ template <class RequestType, class ResponseType> class CallbackServerStreamingHandler : public ::grpc::internal::MethodHandler { public: explicit CallbackServerStreamingHandler( - std::function<experimental::ServerWriteReactor<ResponseType>*( - ::grpc_impl::experimental::CallbackServerContext*, - const RequestType*)> + std::function<ServerWriteReactor<ResponseType>*( + ::grpc_impl::CallbackServerContext*, const RequestType*)> get_reactor) : get_reactor_(std::move(get_reactor)) {} void RunHandler(const HandlerParameter& param) final { @@ -421,19 +415,19 @@ class CallbackServerStreamingHandler : public ::grpc::internal::MethodHandler { auto* writer = new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( param.call->call(), sizeof(ServerCallbackWriterImpl))) ServerCallbackWriterImpl( - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), param.call, static_cast<RequestType*>(param.request), std::move(param.call_requester)); param.server_context->BeginCompletionOp( param.call, [writer](bool) { writer->MaybeDone(); }, writer); - experimental::ServerWriteReactor<ResponseType>* reactor = nullptr; + ServerWriteReactor<ResponseType>* reactor = nullptr; if (param.status.ok()) { reactor = ::grpc::internal::CatchingReactorGetter< - experimental::ServerWriteReactor<ResponseType>>( + ServerWriteReactor<ResponseType>>( get_reactor_, - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), writer->request()); } @@ -466,12 +460,11 @@ class CallbackServerStreamingHandler : public ::grpc::internal::MethodHandler { } private: - std::function<experimental::ServerWriteReactor<ResponseType>*( - ::grpc_impl::experimental::CallbackServerContext*, const RequestType*)> + std::function<ServerWriteReactor<ResponseType>*( + ::grpc_impl::CallbackServerContext*, const RequestType*)> get_reactor_; - class ServerCallbackWriterImpl - : public experimental::ServerCallbackWriter<ResponseType> { + class ServerCallbackWriterImpl : public ServerCallbackWriter<ResponseType> { public: void Finish(::grpc::Status s) override { finish_tag_.Set(call_.call(), [this](bool) { MaybeDone(); }, &finish_ops_, @@ -543,16 +536,16 @@ class CallbackServerStreamingHandler : public ::grpc::internal::MethodHandler { private: friend class CallbackServerStreamingHandler<RequestType, ResponseType>; - ServerCallbackWriterImpl( - ::grpc_impl::experimental::CallbackServerContext* ctx, - ::grpc::internal::Call* call, const RequestType* req, - std::function<void()> call_requester) + ServerCallbackWriterImpl(::grpc_impl::CallbackServerContext* ctx, + ::grpc::internal::Call* call, + const RequestType* req, + std::function<void()> call_requester) : ctx_(ctx), call_(*call), req_(req), call_requester_(std::move(call_requester)) {} - void SetupReactor(experimental::ServerWriteReactor<ResponseType>* reactor) { + void SetupReactor(ServerWriteReactor<ResponseType>* reactor) { reactor_.store(reactor, std::memory_order_relaxed); write_tag_.Set( call_.call(), @@ -598,12 +591,12 @@ class CallbackServerStreamingHandler : public ::grpc::internal::MethodHandler { write_ops_; ::grpc::internal::CallbackWithSuccessTag write_tag_; - ::grpc_impl::experimental::CallbackServerContext* const ctx_; + ::grpc_impl::CallbackServerContext* const ctx_; ::grpc::internal::Call call_; const RequestType* req_; std::function<void()> call_requester_; // The memory ordering of reactor_ follows ServerCallbackUnaryImpl. - std::atomic<experimental::ServerWriteReactor<ResponseType>*> reactor_; + std::atomic<ServerWriteReactor<ResponseType>*> reactor_; // callbacks_outstanding_ follows a refcount pattern std::atomic<intptr_t> callbacks_outstanding_{ 3}; // reserve for OnStarted, Finish, and CompletionOp @@ -614,8 +607,8 @@ template <class RequestType, class ResponseType> class CallbackBidiHandler : public ::grpc::internal::MethodHandler { public: explicit CallbackBidiHandler( - std::function<experimental::ServerBidiReactor<RequestType, ResponseType>*( - ::grpc_impl::experimental::CallbackServerContext*)> + std::function<ServerBidiReactor<RequestType, ResponseType>*( + ::grpc_impl::CallbackServerContext*)> get_reactor) : get_reactor_(std::move(get_reactor)) {} void RunHandler(const HandlerParameter& param) final { @@ -624,20 +617,18 @@ class CallbackBidiHandler : public ::grpc::internal::MethodHandler { auto* stream = new (::grpc::g_core_codegen_interface->grpc_call_arena_alloc( param.call->call(), sizeof(ServerCallbackReaderWriterImpl))) ServerCallbackReaderWriterImpl( - static_cast<::grpc_impl::experimental::CallbackServerContext*>( + static_cast<::grpc_impl::CallbackServerContext*>( param.server_context), param.call, std::move(param.call_requester)); param.server_context->BeginCompletionOp( param.call, [stream](bool) { stream->MaybeDone(); }, stream); - experimental::ServerBidiReactor<RequestType, ResponseType>* reactor = - nullptr; + ServerBidiReactor<RequestType, ResponseType>* reactor = nullptr; if (param.status.ok()) { reactor = ::grpc::internal::CatchingReactorGetter< - experimental::ServerBidiReactor<RequestType, ResponseType>>( - get_reactor_, - static_cast<::grpc_impl::experimental::CallbackServerContext*>( - param.server_context)); + ServerBidiReactor<RequestType, ResponseType>>( + get_reactor_, static_cast<::grpc_impl::CallbackServerContext*>( + param.server_context)); } if (reactor == nullptr) { @@ -653,13 +644,12 @@ class CallbackBidiHandler : public ::grpc::internal::MethodHandler { } private: - std::function<experimental::ServerBidiReactor<RequestType, ResponseType>*( - ::grpc_impl::experimental::CallbackServerContext*)> + std::function<ServerBidiReactor<RequestType, ResponseType>*( + ::grpc_impl::CallbackServerContext*)> get_reactor_; class ServerCallbackReaderWriterImpl - : public experimental::ServerCallbackReaderWriter<RequestType, - ResponseType> { + : public ServerCallbackReaderWriter<RequestType, ResponseType> { public: void Finish(::grpc::Status s) override { finish_tag_.Set(call_.call(), [this](bool) { MaybeDone(); }, &finish_ops_, @@ -736,13 +726,12 @@ class CallbackBidiHandler : public ::grpc::internal::MethodHandler { private: friend class CallbackBidiHandler<RequestType, ResponseType>; - ServerCallbackReaderWriterImpl( - ::grpc_impl::experimental::CallbackServerContext* ctx, - ::grpc::internal::Call* call, std::function<void()> call_requester) + ServerCallbackReaderWriterImpl(::grpc_impl::CallbackServerContext* ctx, + ::grpc::internal::Call* call, + std::function<void()> call_requester) : ctx_(ctx), call_(*call), call_requester_(std::move(call_requester)) {} - void SetupReactor( - experimental::ServerBidiReactor<RequestType, ResponseType>* reactor) { + void SetupReactor(ServerBidiReactor<RequestType, ResponseType>* reactor) { reactor_.store(reactor, std::memory_order_relaxed); write_tag_.Set( call_.call(), @@ -796,12 +785,11 @@ class CallbackBidiHandler : public ::grpc::internal::MethodHandler { read_ops_; ::grpc::internal::CallbackWithSuccessTag read_tag_; - ::grpc_impl::experimental::CallbackServerContext* const ctx_; + ::grpc_impl::CallbackServerContext* const ctx_; ::grpc::internal::Call call_; std::function<void()> call_requester_; // The memory ordering of reactor_ follows ServerCallbackUnaryImpl. - std::atomic<experimental::ServerBidiReactor<RequestType, ResponseType>*> - reactor_; + std::atomic<ServerBidiReactor<RequestType, ResponseType>*> reactor_; // callbacks_outstanding_ follows a refcount pattern std::atomic<intptr_t> callbacks_outstanding_{ 3}; // reserve for OnStarted, Finish, and CompletionOp diff --git a/include/grpcpp/impl/codegen/server_callback_impl.h b/include/grpcpp/impl/codegen/server_callback_impl.h index 4e899f51ec2647617c841768c0a18484b0ad8352..ccdcb6a55f64a55d2c9b625da9ea292b79573633 100644 --- a/include/grpcpp/impl/codegen/server_callback_impl.h +++ b/include/grpcpp/impl/codegen/server_callback_impl.h @@ -136,8 +136,6 @@ class DefaultMessageHolder } // namespace internal -namespace experimental { - // Forward declarations class ServerUnaryReactor; template <class Request> @@ -723,8 +721,6 @@ class ServerUnaryReactor : public internal::ServerReactor { ::grpc::Status status_wanted_ /* GUARDED_BY(writer_mu_) */; }; -} // namespace experimental - namespace internal { template <class Base> @@ -734,17 +730,15 @@ class FinishOnlyReactor : public Base { void OnDone() override { this->~FinishOnlyReactor(); } }; -using UnimplementedUnaryReactor = - FinishOnlyReactor<experimental::ServerUnaryReactor>; +using UnimplementedUnaryReactor = FinishOnlyReactor<ServerUnaryReactor>; template <class Request> -using UnimplementedReadReactor = - FinishOnlyReactor<experimental::ServerReadReactor<Request>>; +using UnimplementedReadReactor = FinishOnlyReactor<ServerReadReactor<Request>>; template <class Response> using UnimplementedWriteReactor = - FinishOnlyReactor<experimental::ServerWriteReactor<Response>>; + FinishOnlyReactor<ServerWriteReactor<Response>>; template <class Request, class Response> using UnimplementedBidiReactor = - FinishOnlyReactor<experimental::ServerBidiReactor<Request, Response>>; + FinishOnlyReactor<ServerBidiReactor<Request, Response>>; } // namespace internal } // namespace grpc_impl diff --git a/include/grpcpp/impl/codegen/server_context.h b/include/grpcpp/impl/codegen/server_context.h index 0976d8df923e5e67b4344edcef44d1213002d13e..b04a4cea19ecdee732f8e0aa7ec9e4e2a9e66328 100644 --- a/include/grpcpp/impl/codegen/server_context.h +++ b/include/grpcpp/impl/codegen/server_context.h @@ -27,8 +27,8 @@ typedef ::grpc_impl::ServerContext ServerContext; namespace experimental { -typedef ::grpc_impl::experimental::ServerContextBase ServerContextBase; -typedef ::grpc_impl::experimental::CallbackServerContext CallbackServerContext; +typedef ::grpc_impl::ServerContextBase ServerContextBase; +typedef ::grpc_impl::CallbackServerContext CallbackServerContext; } // namespace experimental } // namespace grpc diff --git a/include/grpcpp/impl/codegen/server_context_impl.h b/include/grpcpp/impl/codegen/server_context_impl.h index 47ac70e0fcb5b6793a701d4a738e7f13fc98967f..25673c638119ae161c75f29bab0c9d08fd557266 100644 --- a/include/grpcpp/impl/codegen/server_context_impl.h +++ b/include/grpcpp/impl/codegen/server_context_impl.h @@ -112,7 +112,6 @@ class DefaultReactorTestPeer; } // namespace grpc namespace grpc_impl { -namespace experimental { /// Base class of ServerContext. Experimental until callback API is final. class ServerContextBase { @@ -297,7 +296,7 @@ class ServerContextBase { /// from the method handler. /// /// WARNING: This is experimental API and could be changed or removed. - ::grpc_impl::experimental::ServerUnaryReactor* DefaultReactor() { + ::grpc_impl::ServerUnaryReactor* DefaultReactor() { auto reactor = &default_reactor_; default_reactor_used_.store(true, std::memory_order_relaxed); return reactor; @@ -415,7 +414,7 @@ class ServerContextBase { ::grpc::experimental::ServerRpcInfo* rpc_info_; ::grpc::experimental::RpcAllocatorState* message_allocator_state_ = nullptr; - class Reactor : public experimental::ServerUnaryReactor { + class Reactor : public ServerUnaryReactor { public: void OnCancel() override {} void OnDone() override {} @@ -434,8 +433,7 @@ class ServerContextBase { } ::grpc::Status test_status() const { return test_unary_->status(); } - class TestServerCallbackUnary - : public ::grpc_impl::experimental::ServerCallbackUnary { + class TestServerCallbackUnary : public ::grpc_impl::ServerCallbackUnary { public: TestServerCallbackUnary(ServerContextBase* ctx, std::function<void(::grpc::Status)> func) @@ -460,7 +458,7 @@ class ServerContextBase { return reactor_; } - ::grpc_impl::experimental::ServerUnaryReactor* const reactor_; + ::grpc_impl::ServerUnaryReactor* const reactor_; std::atomic_bool status_set_{false}; ::grpc::Status status_; const std::function<void(::grpc::Status s)> func_; @@ -471,8 +469,6 @@ class ServerContextBase { std::unique_ptr<TestServerCallbackUnary> test_unary_; }; -} // namespace experimental - /// A ServerContext or CallbackServerContext allows the code implementing a /// service handler to: /// @@ -489,48 +485,46 @@ class ServerContextBase { /// to a \a grpc::ServerBuilder, via \a ServerBuilder::AddChannelArgument. /// /// \warning ServerContext instances should \em not be reused across rpcs. -class ServerContext : public experimental::ServerContextBase { +class ServerContext : public ServerContextBase { public: ServerContext() {} // for async calls - using experimental::ServerContextBase::AddInitialMetadata; - using experimental::ServerContextBase::AddTrailingMetadata; - using experimental::ServerContextBase::IsCancelled; - using experimental::ServerContextBase::SetLoadReportingCosts; - using experimental::ServerContextBase::TryCancel; - using experimental::ServerContextBase::auth_context; - using experimental::ServerContextBase::c_call; - using experimental::ServerContextBase::census_context; - using experimental::ServerContextBase::client_metadata; - using experimental::ServerContextBase::compression_algorithm; - using experimental::ServerContextBase::compression_level; - using experimental::ServerContextBase::compression_level_set; - using experimental::ServerContextBase::deadline; - using experimental::ServerContextBase::peer; - using experimental::ServerContextBase::raw_deadline; - using experimental::ServerContextBase::set_compression_algorithm; - using experimental::ServerContextBase::set_compression_level; + using ServerContextBase::AddInitialMetadata; + using ServerContextBase::AddTrailingMetadata; + using ServerContextBase::IsCancelled; + using ServerContextBase::SetLoadReportingCosts; + using ServerContextBase::TryCancel; + using ServerContextBase::auth_context; + using ServerContextBase::c_call; + using ServerContextBase::census_context; + using ServerContextBase::client_metadata; + using ServerContextBase::compression_algorithm; + using ServerContextBase::compression_level; + using ServerContextBase::compression_level_set; + using ServerContextBase::deadline; + using ServerContextBase::peer; + using ServerContextBase::raw_deadline; + using ServerContextBase::set_compression_algorithm; + using ServerContextBase::set_compression_level; // Sync/CQ-based Async ServerContext only - using experimental::ServerContextBase::AsyncNotifyWhenDone; + using ServerContextBase::AsyncNotifyWhenDone; private: // Constructor for internal use by server only friend class ::grpc_impl::Server; ServerContext(gpr_timespec deadline, grpc_metadata_array* arr) - : experimental::ServerContextBase(deadline, arr) {} + : ServerContextBase(deadline, arr) {} // CallbackServerContext only - using experimental::ServerContextBase::DefaultReactor; - using experimental::ServerContextBase::GetRpcAllocatorState; + using ServerContextBase::DefaultReactor; + using ServerContextBase::GetRpcAllocatorState; /// Prevent copying. ServerContext(const ServerContext&) = delete; ServerContext& operator=(const ServerContext&) = delete; }; -namespace experimental { - class CallbackServerContext : public ServerContextBase { public: /// Public constructors are for direct use only by mocking tests. In practice, @@ -568,21 +562,19 @@ class CallbackServerContext : public ServerContextBase { CallbackServerContext& operator=(const CallbackServerContext&) = delete; }; -} // namespace experimental } // namespace grpc_impl -static_assert(std::is_base_of<::grpc_impl::experimental::ServerContextBase, +static_assert(std::is_base_of<::grpc_impl::ServerContextBase, ::grpc_impl::ServerContext>::value, "improper base class"); -static_assert( - std::is_base_of<::grpc_impl::experimental::ServerContextBase, - ::grpc_impl::experimental::CallbackServerContext>::value, - "improper base class"); -static_assert(sizeof(::grpc_impl::experimental::ServerContextBase) == +static_assert(std::is_base_of<::grpc_impl::ServerContextBase, + ::grpc_impl::CallbackServerContext>::value, + "improper base class"); +static_assert(sizeof(::grpc_impl::ServerContextBase) == sizeof(::grpc_impl::ServerContext), "wrong size"); -static_assert(sizeof(::grpc_impl::experimental::ServerContextBase) == - sizeof(::grpc_impl::experimental::CallbackServerContext), +static_assert(sizeof(::grpc_impl::ServerContextBase) == + sizeof(::grpc_impl::CallbackServerContext), "wrong size"); #endif // GRPCPP_IMPL_CODEGEN_SERVER_CONTEXT_IMPL_H diff --git a/include/grpcpp/impl/codegen/server_interceptor.h b/include/grpcpp/impl/codegen/server_interceptor.h index 66c4417aec1fe6dc6aeefbe4d1a732d6b4c88bf4..cee6869f208aa0b2cd9f918ca7c99ca9dded36d9 100644 --- a/include/grpcpp/impl/codegen/server_interceptor.h +++ b/include/grpcpp/impl/codegen/server_interceptor.h @@ -27,9 +27,7 @@ #include <grpcpp/impl/codegen/string_ref.h> namespace grpc_impl { -namespace experimental { class ServerContextBase; -} } // namespace grpc_impl namespace grpc { @@ -82,7 +80,7 @@ class ServerRpcInfo { /// Return a pointer to the underlying ServerContext structure associated /// with the RPC to support features that apply to it - grpc_impl::experimental::ServerContextBase* server_context() { return ctx_; } + grpc_impl::ServerContextBase* server_context() { return ctx_; } private: static_assert(Type::UNARY == @@ -98,8 +96,8 @@ class ServerRpcInfo { static_cast<Type>(internal::RpcMethod::BIDI_STREAMING), "violated expectation about Type enum"); - ServerRpcInfo(grpc_impl::experimental::ServerContextBase* ctx, - const char* method, internal::RpcMethod::RpcType type) + ServerRpcInfo(grpc_impl::ServerContextBase* ctx, const char* method, + internal::RpcMethod::RpcType type) : ctx_(ctx), method_(method), type_(static_cast<Type>(type)) {} // Runs interceptor at pos \a pos. @@ -129,14 +127,14 @@ class ServerRpcInfo { } } - grpc_impl::experimental::ServerContextBase* ctx_ = nullptr; + grpc_impl::ServerContextBase* ctx_ = nullptr; const char* method_ = nullptr; const Type type_; std::atomic<intptr_t> ref_{1}; std::vector<std::unique_ptr<experimental::Interceptor>> interceptors_; friend class internal::InterceptorBatchMethodsImpl; - friend class grpc_impl::experimental::ServerContextBase; + friend class grpc_impl::ServerContextBase; }; } // namespace experimental diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index 563c3e83a6122d917a62ece0cab6cbe1eddaa128..6865758142a1b2b4c0ea645eceeb1b84731b7272 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -89,8 +89,7 @@ void ClientContext::set_credentials( } std::unique_ptr<ClientContext> ClientContext::FromInternalServerContext( - const grpc_impl::experimental::ServerContextBase& context, - PropagationOptions options) { + const grpc_impl::ServerContextBase& context, PropagationOptions options) { std::unique_ptr<ClientContext> ctx(new ClientContext); ctx->propagate_from_call_ = context.call_; ctx->propagation_options_ = options; @@ -104,7 +103,7 @@ std::unique_ptr<ClientContext> ClientContext::FromServerContext( } std::unique_ptr<ClientContext> ClientContext::FromCallbackServerContext( - const grpc_impl::experimental::CallbackServerContext& server_context, + const grpc_impl::CallbackServerContext& server_context, PropagationOptions options) { return FromInternalServerContext(server_context, options); } diff --git a/src/cpp/client/generic_stub.cc b/src/cpp/client/generic_stub.cc index e7d3df7a49770449aa206747b026006a22137142..7175b34a0107da5e4c25d8f9178c874e4bfe1540 100644 --- a/src/cpp/client/generic_stub.cc +++ b/src/cpp/client/generic_stub.cc @@ -80,8 +80,7 @@ void GenericStub::experimental_type::UnaryCall( void GenericStub::experimental_type::PrepareBidiStreamingCall( grpc::ClientContext* context, const grpc::string& method, - experimental::ClientBidiReactor<grpc::ByteBuffer, grpc::ByteBuffer>* - reactor) { + ClientBidiReactor<grpc::ByteBuffer, grpc::ByteBuffer>* reactor) { internal::ClientCallbackReaderWriterFactory< grpc::ByteBuffer, grpc::ByteBuffer>::Create(stub_->channel_.get(), diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc index 983a51b5d49c93789e732417cdb48da52acd64df..590a3d59c4d6819e29281358f5e9243c848c63d0 100644 --- a/src/cpp/server/server_context.cc +++ b/src/cpp/server/server_context.cc @@ -36,7 +36,6 @@ #include "src/core/lib/surface/call.h" namespace grpc_impl { -namespace experimental { // CompletionOp @@ -379,5 +378,4 @@ void ServerContextBase::SetLoadReportingCosts( } } -} // namespace experimental } // namespace grpc_impl