/
oop_nust_misis
/
Homework-06-Microservices-gRPC-sofaming
Обзор
Документация
Войти
/
oop_nust_misis
/
Homework-06-Microservices-gRPC-sofaming
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
cpp/src/server.cpp
53 строки
2 KB
OOP Nust MISIS
Initial commit
23 ноя 2025, 21:55
23 ноя 2025, 21:55
9b26134
Код
Авторство
О чём код?
#include <userver/utest/using_namespace_userver.hpp> #include <userver/ugrpc/server/service_component_base.hpp> // Подключаем сгенерированный заголовочный файл #include <lifeos/metrics_service.usrv.pb.hpp> namespace lifeos { class VitalSignsServiceComponent final : public lifeos::VitalSignsServiceBase::Component { public: // Стандартный конструктор компонента static constexpr std::string_view kName = "vital-signs-service"; VitalSignsServiceComponent(const components::ComponentConfig& config, const components::ComponentContext& context) : lifeos::VitalSignsServiceBase::Component(config, context) {} // Реализация метода RecordMetric void RecordMetric( lifeos::VitalSignsServiceBase::RecordMetricCall& call, lifeos::MetricRequest&& request) override { // TODO: Реализовать сохранение метрики в in-memory хранилище // (Не забудьте про thread-safety, используйте std::mutex!) lifeos::MetricResponse response; response.set_success(true); response.set_message("Saved (C++)"); call.Finish(response); } // Реализация метода GetAverage void GetAverage( lifeos::VitalSignsServiceBase::GetAverageCall& call, lifeos::AverageRequest&& request) override { lifeos::AverageResponse response; // TODO: Реализовать подсчет среднего response.set_average_value(0.0); response.set_count(0); call.Finish(response); } private: // TODO: Объявить структуру данных для хранения }; } // namespace lifeos // Регистрация компонента происходит в main.cpp (см. документацию userver)