userver: /data/code/userver/libraries/grpc-reflection/src/grpc-reflection/reflection_service_component.cpp Source File
Loading...
Searching...
No Matches
reflection_service_component.cpp
1#include <userver/grpc-reflection/reflection_service_component.hpp>
2
3#include <userver/logging/log.hpp>
4#include <userver/ugrpc/server/server_component.hpp>
5#include <userver/ugrpc/server/service_component_base.hpp>
6
7#include <grpc-reflection/proto_server_reflection.hpp>
8
9USERVER_NAMESPACE_BEGIN
10
11namespace grpc_reflection {
12
13ReflectionServiceComponent::ReflectionServiceComponent(
14 const components::ComponentConfig& config,
15 const components::ComponentContext& context
16)
17 : ugrpc::server::ServiceComponentBase(config, context),
18 service_(std::make_unique<grpc_reflection::ProtoServerReflection>()),
19 ugrpc_server_(context.FindComponent<ugrpc::server::ServerComponent>().GetServer())
20{
21 LOG_INFO() << "Preparing to register service";
22 RegisterService(*service_);
23 LOG_INFO() << "Service registered";
24}
25
26ReflectionServiceComponent::~ReflectionServiceComponent() = default;
27
28void ReflectionServiceComponent::AddService(std::string_view service) { service_->AddService(service); }
29
30void ReflectionServiceComponent::OnAllComponentsLoaded() {
31 const auto& service_names = ugrpc_server_.GetServiceNames();
32 service_->AddServiceList(service_names);
33 ready_.store(true);
34}
35
36components::ComponentHealth ReflectionServiceComponent::GetComponentHealth() const {
38}
39
40} // namespace grpc_reflection
41
42USERVER_NAMESPACE_END