/
tytyshka
/
Typing_Race_Game
Обзор
Документация
Войти
/
tytyshka
/
Typing_Race_Game
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
room_manager.cpp
37 строк
1 KB
tytyshka
Client
16 дек 2025, 21:37
16 дек 2025, 21:37
f770ab5
Код
Авторство
О чём код?
#include "room_manager.h" #include <sstream> #include "utils.h" RoomManager::RoomManager() {} std::string RoomManager::create_room(const std::string& name, int max_players, bool auto_start, ms_t game_duration_ms) { std::lock_guard<std::mutex> lk(mtx_); std::ostringstream ss; ss << "room_" << now_ms(); std::string id = ss.str(); auto r = std::make_shared<Room>(id, name, max_players, auto_start, game_duration_ms); rooms_.emplace(id, r); return id; } std::vector<RoomSummary> RoomManager::list_rooms() { std::lock_guard<std::mutex> lk(mtx_); std::vector<RoomSummary> out; for (auto& kv : rooms_) { RoomSummary s; s.room_id = kv.first; s.name = kv.second->name(); s.players = (int)kv.second->player_count(); s.max_players = kv.second->max_players(); s.state = kv.second->state_str(); out.push_back(s); } return out; } std::shared_ptr<Room> RoomManager::get_room(const std::string& id) { std::lock_guard<std::mutex> lk(mtx_); auto it = rooms_.find(id); if (it == rooms_.end()) return nullptr; return it->second; }