summaryrefslogtreecommitdiff
path: root/include/libsock/server
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-06-22 17:31:09 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-06-22 17:31:09 +0800
commit0028a4673d092e0dc8c57cce75cb158ad09826de (patch)
treed18e7e2c38fa453d4ae381ae902a452e5ce32e23 /include/libsock/server
parent9916e484e30912b83881744e758400b1de854c66 (diff)
API(server/clients:create): optional wait argument making ClientManager wait for client thread to finish
Diffstat (limited to 'include/libsock/server')
-rw-r--r--include/libsock/server/clients.hpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/libsock/server/clients.hpp b/include/libsock/server/clients.hpp
index cb11e74..dbe7099 100644
--- a/include/libsock/server/clients.hpp
+++ b/include/libsock/server/clients.hpp
@@ -21,7 +21,7 @@ struct SData {
class Clients : public std::enable_shared_from_this<Clients> {
public:
- static SP<Clients> create(WP<Server> server);
+ static SP<Clients> create(WP<Server> server, bool wait = false);
~Clients();
SP<Client> newClient(std::function<void(SP<Client> &)> cb = [](SP<Client>) {});
@@ -38,11 +38,13 @@ class Clients : public std::enable_shared_from_this<Clients> {
std::vector<SData> getDatas() const;
private:
- Clients();
+ Clients(bool wait = false);
+
void broadcast(const SData &msg);
std::vector<std::pair<std::jthread, SP<Client>>> m_vClients;
std::vector<SData> m_vDatas;
+ bool m_wait;
WP<Clients> get();