#pragma once #include class Socket; using SocketPtr = std::unique_ptr; class ISocketInterface { public: ISocketInterface() = default; virtual ~ISocketInterface() = default; virtual void InitializeSocket(const SocketPtr& socket) = 0; virtual void Listen(const SocketPtr& socket) = 0; virtual void Run(const SocketPtr& socket) = 0; }; using ISocketInterfaceUPtr = std::unique_ptr;