#pragma once #include "../types.hpp" #include #include #include #include namespace LibSock { namespace Server { class Server : public std::enable_shared_from_this { public: static SP create(uint16_t port, bool reuseaddr = true, bool keepalive = false); ~Server(); SP getSocket() const; private: Server(uint16_t port, bool reuseaddr = true, bool keepalive = false); SP m_sockfd; sockaddr_in m_addr; uint16_t m_port; WP get(); WP m_self; mutable std::mutex m_mutex; }; inline std::vector> vpServer; } // namespace Server } // namespace LibSock