userver: ugrpc::server::Server Class Reference
Loading...
Searching...
No Matches
ugrpc::server::Server Class Referencefinal

#include <userver/ugrpc/server/server.hpp>

Detailed Description

Manages the gRPC server.

All methods are thread-safe. Usually retrieved from ugrpc::server::ServerComponent.

Definition at line 64 of file server.hpp.

+ Inheritance diagram for ugrpc::server::Server:
+ Collaboration diagram for ugrpc::server::Server:

Public Types

using SetupHook = utils::function_ref<void(grpc::ServerBuilder&)>
 

Public Member Functions

 Server (ServerConfig &&config, utils::statistics::Storage &statistics_storage, dynamic_config::Source config_source)
 Start building the server.
 
 Server (Server &&)=delete
 
Serveroperator= (Server &&)=delete
 
void AddService (ServiceBase &service, ServiceConfig &&config)
 Register a service implementation in the server. The user or the component is responsible for keeping service and middlewares alive at least until Stop is called.
 
std::vector< std::string_view > GetServiceNames () const
 Get names of all registered services.
 
void WithServerBuilder (SetupHook setup)
 For advanced configuration of the gRPC server.
 
grpc::CompletionQueue & GetCompletionQueue () noexcept
 
void Start ()
 Start accepting requests.
 
int GetPort () const noexcept
 
void Stop () noexcept
 Stop accepting requests. Also destroys server statistics and closes the associated CompletionQueue.
 
void StopServing () noexcept
 
std::uint64_t GetTotalRequests () const override
 

Member Typedef Documentation

◆ SetupHook

using ugrpc::server::Server::SetupHook = utils::function_ref<void(grpc::ServerBuilder&)>

Definition at line 67 of file server.hpp.

Member Function Documentation

◆ GetCompletionQueue()

grpc::CompletionQueue & ugrpc::server::Server::GetCompletionQueue ( )
noexcept
Returns
the completion queue for clients
Note
All RPCs are cancelled on 'Stop'. If you need to perform requests after the server has been closed, create an ugrpc::client::QueueHolder - usually no more than one instance per program.

◆ GetPort()

int ugrpc::server::Server::GetPort ( ) const
noexcept
Returns
The port assigned using AddListeningPort
Note
Only available after 'Start' has returned

◆ GetTotalRequests()

std::uint64_t ugrpc::server::Server::GetTotalRequests ( ) const
overridevirtual

◆ Start()

void ugrpc::server::Server::Start ( )

Start accepting requests.

Note
Must be called at most once after all the services are registered

◆ Stop()

void ugrpc::server::Server::Stop ( )
noexcept

Stop accepting requests. Also destroys server statistics and closes the associated CompletionQueue.

Note
Should be called at least once before the services are destroyed

◆ StopServing()

void ugrpc::server::Server::StopServing ( )
noexcept

Same as Stop, but:

  • does not destroy server statistics
  • does not close the associated CompletionQueue Stop must still be called. StopServing is also useful for testing.

◆ WithServerBuilder()

void ugrpc::server::Server::WithServerBuilder ( SetupHook setup)

For advanced configuration of the gRPC server.

Note
The ServerBuilder must not be stored and used outside of setup.

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