userver
C++ Async Framework
Loading...
Searching...
No Matches
service_base.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/ugrpc/server/service_base.hpp
4
/// @brief @copybrief ugrpc::server::ServiceBase
5
6
#
include
<
boost
/
container
/
flat_map
.
hpp
>
7
8
#
include
<
userver
/
engine
/
task
/
task_processor_fwd
.
hpp
>
9
10
#
include
<
userver
/
ugrpc
/
server
/
call_context
.
hpp
>
11
#
include
<
userver
/
ugrpc
/
server
/
impl
/
service_worker
.
hpp
>
12
#
include
<
userver
/
ugrpc
/
server
/
middlewares
/
fwd
.
hpp
>
13
#
include
<
userver
/
ugrpc
/
status_codes
.
hpp
>
14
15
USERVER_NAMESPACE_BEGIN
16
17
namespace
ugrpc::server {
18
19
namespace
impl {
20
struct
ServiceInternals;
21
}
// namespace impl
22
23
/// Per-service settings
24
struct
ServiceConfig
final
{
25
/// TaskProcessor to use for serving RPCs.
26
engine::TaskProcessor&
task_processor
;
27
28
/// Server middlewares to use for the gRPC service.
29
Middlewares
middlewares
;
30
31
/// map of "status_code": log_level items to override span log level for specific status codes
32
/// see @ref ugrpc::kStatusCodesMap for available statuses
33
boost::container::flat_map<grpc::StatusCode,
logging
::
Level
>
status_codes_log_level
;
34
};
35
36
/// @brief The type-erased base class for all gRPC service implementations
37
/// @note User-defined services should inherit from code-generated base service
38
/// classes, not from this class directly.
39
class
ServiceBase
{
40
public
:
41
using
CallContext = ugrpc::server::CallContext;
42
43
ServiceBase
& operator=(
ServiceBase
&&) =
delete
;
44
virtual
~ServiceBase();
45
46
/// @cond
47
// Creates a worker that forwards requests to this service.
48
// The service must be destroyed after the worker.
49
// For internal use only.
50
virtual
std::unique_ptr<impl::ServiceWorker> MakeWorker(impl::ServiceInternals&& internals) = 0;
51
/// @endcond
52
};
53
54
}
// namespace ugrpc::server
55
56
USERVER_NAMESPACE_END
userver
ugrpc
server
service_base.hpp
Generated on Mon Oct 6 2025 12:30:50 for userver by
Doxygen
1.13.2