From eb78b04ca2f4fc334365f2a26537691aa1c91f48 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Thu, 19 Jun 2025 18:47:32 +0800 Subject: API(session/clients:newClient): allow custom server ptr --- include/libsock/server/clients.hpp | 3 ++- src/server/clients.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/libsock/server/clients.hpp b/include/libsock/server/clients.hpp index 8eccbb7..a80fb4a 100644 --- a/include/libsock/server/clients.hpp +++ b/include/libsock/server/clients.hpp @@ -1,6 +1,7 @@ #pragma once #include "../types.hpp" +#include "server.hpp" #include #include #include @@ -24,7 +25,7 @@ class Clients : public std::enable_shared_from_this { static SP create(); ~Clients(); - WP newClient(std::optional)>> cb = std::nullopt); + WP newClient(SP server = pServer, std::optional)>> cb = std::nullopt); void broadcast(const std::string &msg, std::optional> self = std::nullopt); // second param only specified when we // want to exclude the sender diff --git a/src/server/clients.cpp b/src/server/clients.cpp index 201ccc6..ac3546e 100644 --- a/src/server/clients.cpp +++ b/src/server/clients.cpp @@ -58,8 +58,8 @@ Clients::~Clients() { } } -WP Clients::newClient(std::optional)>> cb) { - SP client = SP(new Client(pServer, shared_from_this())); +WP Clients::newClient(SP server, std::optional)>> cb) { + SP client = SP(new Client(server, shared_from_this())); auto &instance = m_vClients.emplace_back(std::jthread([client]() { client->run(); }), client); instance.second->self = std::weak_ptr(instance.second); if (cb) -- cgit v1.2.3