22
33#include < fmt/format.h>
44
5+ #include < userver/components/component_context.hpp>
6+ #include < userver/congestion_control/component.hpp>
57#include < userver/engine/async.hpp>
68#include < userver/engine/sleep.hpp>
9+ #include < userver/utils/assert.hpp>
710#include < userver/yaml_config/merge_schemas.hpp>
811
912#include < userver/ugrpc/server/service_component_base.hpp>
1013
1114namespace functional_tests {
1215
16+ namespace {
17+
18+ void EnsureCongestionControlEnbled (const congestion_control::Controller& congestion_control_controller) {
19+ UINVARIANT (congestion_control_controller.IsEnabled (), " CongestionControl Controller should be enabled" );
20+ }
21+
22+ } // namespace
23+
24+ GreeterServiceComponent::GreeterServiceComponent (
25+ const components::ComponentConfig& config,
26+ const components::ComponentContext& context
27+ )
28+ : samples::api::GreeterServiceBase::Component(config, context),
29+ congestion_control_controller_{context.FindComponent <congestion_control::Component>().GetServerController ()}
30+ {}
31+
1332GreeterServiceComponent::SayHelloResult GreeterServiceComponent::SayHello (
1433 CallContext& /* context*/ ,
1534 samples::api::GreetingRequest&& request
1635) {
36+ EnsureCongestionControlEnbled (congestion_control_controller_);
1737 samples::api::GreetingResponse response;
1838 response.set_greeting (fmt::format (" Hello, {}!" , request.name ()));
1939 return response;
@@ -24,6 +44,7 @@ GreeterServiceComponent::SayHelloResponseStreamResult GreeterServiceComponent::S
2444 samples::api::GreetingRequest&& request,
2545 SayHelloResponseStreamWriter& writer
2646) {
47+ EnsureCongestionControlEnbled (congestion_control_controller_);
2748 std::string message = fmt::format (" {}, {}" , " Hello" , request.name ());
2849 constexpr auto kCountSend = 5 ;
2950 constexpr std::chrono::milliseconds kTimeInterval {200 };
@@ -41,6 +62,7 @@ GreeterServiceComponent::SayHelloRequestStreamResult GreeterServiceComponent::Sa
4162 CallContext& /* context*/ ,
4263 SayHelloRequestStreamReader& reader
4364) {
65+ EnsureCongestionControlEnbled (congestion_control_controller_);
4466 std::string income_message;
4567 samples::api::GreetingRequest request;
4668 while (reader.Read (request)) {
@@ -55,6 +77,7 @@ GreeterServiceComponent::SayHelloStreamsResult GreeterServiceComponent::SayHello
5577 CallContext& /* context*/ ,
5678 SayHelloStreamsReaderWriter& stream
5779) {
80+ EnsureCongestionControlEnbled (congestion_control_controller_);
5881 constexpr std::chrono::milliseconds kTimeInterval {200 };
5982 std::string income_message;
6083 samples::api::GreetingRequest request;
0 commit comments