Ergänze Unterstützung für Datenbankintegration in ChatRoom und ChatUser

- Implementiere einen neuen Konstruktor in der Klasse `ChatUser`, der eine Datenbankverbindung akzeptiert, um Benutzerinformationen zu laden.
- Füge eine Methode `setDatabase` in der Klasse `ChatRoom` hinzu, um die Datenbankverbindung zu setzen.
- Aktualisiere die Logik in `ChatRoom`, um den neuen Konstruktor zu verwenden, wenn eine Datenbankverbindung vorhanden ist, andernfalls wird der alte Konstruktor verwendet.
- Stelle sicher, dass die Datenbankverbindung in den Server- und SSLServer-Klassen beim Erstellen neuer Räume gesetzt wird.
This commit is contained in:
Torsten Schulz (local)
2025-09-05 09:56:14 +02:00
parent e38cd6ef9d
commit dce5a56316
6 changed files with 110 additions and 2 deletions

View File

@@ -113,7 +113,14 @@ namespace Yc
{
return false;
}
auto newUser = std::make_shared<ChatUser>(shared_from_this(), _userName, color, socket);
std::shared_ptr<ChatUser> newUser;
if (_database) {
// Verwende den neuen Konstruktor mit Datenbank
newUser = std::make_shared<ChatUser>(shared_from_this(), _userName, color, socket, _database);
} else {
// Fallback auf den alten Konstruktor
newUser = std::make_shared<ChatUser>(shared_from_this(), _userName, color, socket);
}
_users.push_back(newUser);
newUser->start();
if (_parent) {
@@ -631,5 +638,10 @@ namespace Yc
addMessage(ChatUser::system, msg, "", "");
}
void ChatRoom::setDatabase(std::shared_ptr<Yc::Lib::Database> database)
{
_database = database;
}
} // namespace Lib
} // namespace Yc