summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-06-15 14:23:00 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-06-16 22:22:10 +0800
commit366e5004e6f09f69d945a1f41816cef08e442a2b (patch)
tree765c2858bcd630ec358ae5770c0ee33406d194cd /include
parent82b6612418908654a61b7947550b796ce4ed57d6 (diff)
fix: server types
Diffstat (limited to 'include')
-rw-r--r--include/libsock/server/client.hpp28
-rw-r--r--include/libsock/server/server.hpp8
2 files changed, 20 insertions, 16 deletions
diff --git a/include/libsock/server/client.hpp b/include/libsock/server/client.hpp
index ec5c6bc..eb528a2 100644
--- a/include/libsock/server/client.hpp
+++ b/include/libsock/server/client.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "../types.hpp"
+#include "server.hpp"
#include <format>
#include <functional>
#include <netinet/in.h>
@@ -11,7 +12,7 @@
#include <vector>
namespace LibSock {
-namespace Client {
+namespace Server {
struct SRecvData {
std::string data;
@@ -29,9 +30,12 @@ enum eEventType : std::uint8_t {
WRITE
};
+class Clients;
+inline SP<Clients> pClients;
+
class Client {
public:
- Client(bool track = false, bool oneShot = true);
+ Client(SP<Server> server = SP<Server>(pServer), SP<Clients> clients = pClients, bool track = false, bool oneShot = true);
~Client();
const std::string &getName() const;
@@ -49,15 +53,15 @@ class Client {
bool isValid();
private:
- WP<Client> self;
+ WP<Client> self;
SP<LibSock::CFileDescriptor> m_sockfd;
- sockaddr_in m_addr;
- socklen_t m_addrLen = sizeof(m_addr);
- std::string m_name;
- std::string m_ip;
- int m_port;
- bool m_track;
- bool m_oneShot;
+ sockaddr_in m_addr;
+ socklen_t m_addrLen = sizeof(m_addr);
+ std::string m_name;
+ std::string m_ip;
+ int m_port;
+ bool m_track;
+ bool m_oneShot;
std::optional<std::string> m_szReading = std::nullopt;
@@ -98,7 +102,5 @@ class Clients {
std::vector<std::pair<std::jthread, SP<Client>>> m_vClients;
std::vector<SData> m_vDatas;
};
-inline SP<Clients> pClients;
-
-} // namespace Client
+} // namespace Server
} // namespace LibSock
diff --git a/include/libsock/server/server.hpp b/include/libsock/server/server.hpp
index d831fd8..1b52e2f 100644
--- a/include/libsock/server/server.hpp
+++ b/include/libsock/server/server.hpp
@@ -1,7 +1,9 @@
#pragma once
+
#include "../types.hpp"
#include <mutex>
#include <netinet/in.h>
+#include <vector>
namespace LibSock {
namespace Server {
@@ -14,11 +16,11 @@ class Server {
private:
SP<LibSock::CFileDescriptor> m_sockfd;
- sockaddr_in m_addr;
- uint16_t m_port;
+ sockaddr_in m_addr;
+ uint16_t m_port;
mutable std::mutex m_mutex;
};
-inline UP<Server> pServer;
+inline SP<Server> pServer;
} // namespace Server
} // namespace LibSock