/
oop_nust_misis
/
Homework-06-Microservices-gRPC-sofaming
Обзор
Документация
Войти
/
oop_nust_misis
/
Homework-06-Microservices-gRPC-sofaming
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
cpp/src/client.cpp
59 строк
2 KB
OOP Nust MISIS
Initial commit
23 ноя 2025, 21:55
23 ноя 2025, 21:55
9b26134
Код
Авторство
О чём код?
#include <iostream> #include <memory> #include <string> #include <random> #include <thread> #include <grpcpp/grpcpp.h> // Подключаем сгенерированный заголовок #include <metrics.grpc.pb.h> using grpc::Channel; using grpc::ClientContext; using grpc::Status; using lifeos::VitalSignsService; using lifeos::MetricRequest; using lifeos::MetricResponse; using lifeos::AverageRequest; using lifeos::AverageResponse; using lifeos::MetricType; class VitalSignsClient { public: VitalSignsClient(std::shared_ptr<Channel> channel) : stub_(VitalSignsService::NewStub(channel)) {} // TODO: Реализуйте метод отправки метрики void RecordMetric(const std::string& user, MetricType type, double value) { // 1. Создать MetricRequest // 2. Создать Context // 3. Вызвать stub_->RecordMetric(&context, request, &response) // 4. Проверить status.ok() std::cout << "[TODO] RecordMetric not implemented yet" << std::endl; } // TODO: Реализуйте метод получения среднего void GetAverage(const std::string& user, MetricType type) { std::cout << "[TODO] GetAverage not implemented yet" << std::endl; } private: std::unique_ptr<VitalSignsService::Stub> stub_; }; int main(int argc, char** argv) { // Создаем канал std::string target_str = "localhost:50051"; VitalSignsClient client(grpc::CreateChannel( target_str, grpc::InsecureChannelCredentials())); std::string user_id = "student_cpp"; std::cout << "Sending metrics for " << user_id << "..." << std::endl; // TODO: Сгенерируйте данные и вызовите методы клиента // client.RecordMetric(user_id, MetricType::HEART_RATE, 75.0); return 0; }