19 #ifndef GRPCPP_SERVER_IMPL_H 20 #define GRPCPP_SERVER_IMPL_H 22 #include <condition_variable> 46 class AsyncGenericService;
49 class ExternalConnectionAcceptorImpl;
107 return health_check_service_.get();
111 std::shared_ptr<::grpc::Channel> InProcessChannel(
123 std::shared_ptr<::grpc::Channel> InProcessChannelWithInterceptors(
125 std::vector<std::unique_ptr<
127 interceptor_creators);
187 std::shared_ptr<std::vector<std::unique_ptr<grpc::ServerCompletionQueue>>>
189 int min_pollers,
int max_pollers,
int sync_cq_timeout_msec,
191 std::shared_ptr<grpc::internal::ExternalConnectionAcceptorImpl>>
194 std::vector<std::unique_ptr<
196 interceptor_creators = std::vector<std::unique_ptr<
212 std::unique_ptr<grpc::HealthCheckServiceInterface> service) {
213 health_check_service_ = std::move(service);
218 return health_check_service_disabled_;
223 std::unique_ptr<grpc::experimental::ServerInterceptorFactoryInterface>>*
224 interceptor_creators()
override {
225 return &interceptor_creators_;
233 class CallbackRequestBase;
234 template <
class ServerContextType>
235 class CallbackRequest;
236 class UnimplementedAsyncRequest;
237 class UnimplementedAsyncResponse;
243 class SyncRequestThreadManager;
253 class experimental_registration_type final
256 explicit experimental_registration_type(
Server* server) : server_(server) {}
257 void RegisterCallbackGenericService(
259 server_->RegisterCallbackGenericService(service);
267 void RegisterCallbackGenericService(
274 return &experimental_registration_;
282 int max_receive_message_size()
const override {
283 return max_receive_message_size_;
290 std::vector<std::shared_ptr<grpc::internal::ExternalConnectionAcceptorImpl>>
299 std::unique_ptr<grpc::experimental::ServerInterceptorFactoryInterface>>
300 interceptor_creators_;
302 const int max_receive_message_size_;
307 std::shared_ptr<std::vector<std::unique_ptr<grpc::ServerCompletionQueue>>>
312 std::vector<std::unique_ptr<SyncRequestThreadManager>> sync_req_mgrs_;
319 std::vector<gpr_atm> callback_unmatched_reqs_count_;
322 std::list<CallbackRequestBase*> callback_reqs_to_start_;
326 experimental_registration_type experimental_registration_{
this};
332 bool shutdown_notified_;
345 std::atomic_int callback_reqs_outstanding_{0};
347 std::shared_ptr<GlobalCallbacks> global_callbacks_;
349 std::vector<grpc::string> services_;
350 bool has_async_generic_service_{
false};
351 bool has_callback_generic_service_{
false};
356 std::unique_ptr<grpc_impl::ServerInitializer> server_initializer_;
358 std::unique_ptr<grpc::HealthCheckServiceInterface> health_check_service_;
359 bool health_check_service_disabled_;
363 std::unique_ptr<grpc::experimental::CallbackGenericService>
364 unimplemented_service_;
367 std::unique_ptr<grpc::internal::MethodHandler> resource_exhausted_handler_;
370 std::unique_ptr<grpc::internal::MethodHandler> generic_handler_;
382 #endif // GRPCPP_SERVER_IMPL_H
grpc::HealthCheckServiceInterface * GetHealthCheckService() const
Returns the health check service.
Definition: server_impl.h:106
std::string string
Definition: config.h:35
bool health_check_service_disabled() const
NOTE: This method is not part of the public API for this class.
Definition: server_impl.h:217
Represents a gRPC server.
Definition: server_impl.h:63
NOTE: class experimental_registration_interface is not part of the public API of this class TODO(vjpa...
Definition: server_interface.h:129
::grpc_impl::Server Server
Definition: server.h:26
Desriptor of an RPC service and its various RPC methods.
Definition: service_type.h:60
Global callbacks are a set of hooks that are called when server events occur.
Definition: server_impl.h:79
virtual void PreServerStart(Server *server)
Called before server is started.
Definition: server_impl.h:89
struct grpc_server grpc_server
A server listens to some port and responds to request calls.
Definition: grpc_types.h:65
virtual void AddPort(Server *server, const grpc::string &addr, grpc::ServerCredentials *creds, int port)
Called after a server port is added.
Definition: server_impl.h:91
Definition: async_generic_service.h:72
Classes that require gRPC to be initialized should inherit from this class.
Definition: grpc_library.h:38
NOTE: class experimental_type is not part of the public API of this class.
Definition: server_impl.h:117
::grpc_impl::ServerContext ServerContext
Definition: server_context.h:25
A ServerContext allows the person implementing a service handler to:
Definition: server_context_impl.h:114
void set_health_check_service(std::unique_ptr< grpc::HealthCheckServiceInterface > service)
NOTE: This method is not part of the public API for this class.
Definition: server_impl.h:211
Definition: server_interceptor.h:47
Definition: client_interceptor.h:49
The gRPC server uses this interface to expose the health checking service without depending on protob...
Definition: health_check_service_interface_impl.h:28
This header provides an object that reads bytes directly from a grpc::ByteBuffer, via the ZeroCopyInp...
Definition: alarm.h:24
virtual void UpdateArguments(grpc::ChannelArguments *args)
Called before server is created.
Definition: server_impl.h:83
Options for channel creation.
Definition: channel_arguments_impl.h:43
Definition: server_interface.h:58
::grpc_impl::HealthCheckServiceInterface HealthCheckServiceInterface
Definition: health_check_service_interface.h:29
An Alarm posts the user-provided tag to its associated completion queue or invokes the user-provided ...
Definition: alarm_impl.h:33
CallbackGenericService is the base class for generic services implemented using the callback API and ...
Definition: async_generic_service.h:125
Wrapper around grpc_server_credentials, a way to authenticate a server.
Definition: server_credentials_impl.h:39
An abstract collection of call ops, used to generate the grpc_call_op structure to pass down to the l...
Definition: call_op_set_interface.h:34
experimental_type(Server *server)
Definition: server_impl.h:119
A thin wrapper around grpc_completion_queue (see src/core/lib/surface/completion_queue.h).
Definition: completion_queue_impl.h:102
struct grpc_resource_quota grpc_resource_quota
Definition: grpc_types.h:652
experimental_type experimental()
NOTE: The function experimental() is not stable public API.
Definition: server_impl.h:136
Analogous to struct timespec.
Definition: gpr_types.h:47
::grpc_impl::ServerInitializer ServerInitializer
Definition: server_initializer.h:26
A specific type of completion queue used by the processing of notifications by servers.
Definition: completion_queue_impl.h:391
A builder class for the creation and startup of grpc::Server instances.
Definition: server_builder_impl.h:86
virtual ~GlobalCallbacks()
Definition: server_impl.h:81
grpc_server * server() override
Definition: server_impl.h:207
Definition: server_initializer_impl.h:34
Straightforward wrapping of the C call object.
Definition: call.h:38