diff options
Diffstat (limited to 'include/libsock/server/server.hpp')
| -rw-r--r-- | include/libsock/server/server.hpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/include/libsock/server/server.hpp b/include/libsock/server/server.hpp index 1b52e2f..225bdb0 100644 --- a/include/libsock/server/server.hpp +++ b/include/libsock/server/server.hpp @@ -1,24 +1,27 @@ #pragma once #include "../types.hpp" +#include <memory> #include <mutex> #include <netinet/in.h> -#include <vector> namespace LibSock { namespace Server { -class Server { +class Server : public std::enable_shared_from_this<Server> { public: - Server(uint16_t port, bool reuseaddr = true, bool keepalive = false); + static SP<Server> create(uint16_t port, bool reuseaddr = true, bool keepalive = false); ~Server(); SP<LibSock::CFileDescriptor> getSocket() const; private: + Server(uint16_t port, bool reuseaddr = true, bool keepalive = false); SP<LibSock::CFileDescriptor> m_sockfd; sockaddr_in m_addr; uint16_t m_port; + SP<Server> get(); + mutable std::mutex m_mutex; }; inline SP<Server> pServer; |
