#pragma #include class Socket; using SocketPtr = std::shared_ptr; class SocketInterface { public: SocketInterface(); static std::unique_ptr Create(); void CreateSocket(SocketPtr socket); void Listen(SocketPtr socket); void Run(SocketPtr socket); }; using SocketInterfaceUPtr = std::unique_ptr;