#pragma once namespace Network { struct Address { Address(); Address(int type, gsl::czstring presentationAddr, std::uint16_t port); void zeroFill(); void set(int type, gsl::czstring presentationAddr, std::uint16_t port); void setType(int type); Address(const Address&) = default; Address& operator=(const Address&) = default; operator std::string(); std::uint16_t getPort() const; std::uint32_t family; union { struct sockaddr addr; struct sockaddr_in addr_in; struct sockaddr_in6 addr_in6; }; socklen_t length; }; } // namespace Chattr