/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: NetEndpoint.hpp Date: 2022-8-15 Author: Reece ***/ #pragma once namespace Aurora::IO::Net { struct NetEndpoint { inline NetEndpoint() { } inline NetEndpoint(IPAddress ip) : ip(ip) { } inline NetEndpoint(IPAddress ip, AuUInt16 port) : ip(ip), uPort(port) { } inline NetEndpoint(const AuString & ip, AuUInt16 port) : ip(ip), uPort(port) { } inline NetEndpoint(const AuString & ip) : ip(ip) { } inline NetEndpoint(ETransportProtocol transportProtocol, IPAddress ip) : transportProtocol(transportProtocol), ip(ip) { } inline NetEndpoint(ETransportProtocol transportProtocol, IPAddress ip, AuUInt16 port) : transportProtocol(transportProtocol), ip(ip), uPort(port) { } inline NetEndpoint(ETransportProtocol transportProtocol, const AuString &ip, AuUInt16 port) : transportProtocol(transportProtocol), ip(ip), uPort(port) { } inline NetEndpoint(ETransportProtocol transportProtocol, const AuString &ip) : transportProtocol(transportProtocol), ip(ip) { } /////////////////////////////////// IPAddress ip; AuUInt16 uPort {0}; AuUInt32 uIPv6Scope {0}; AuUInt8 hint[32] {0}; /////////////////////////////////// ETransportProtocol transportProtocol { ETransportProtocol::eEnumInvalid }; }; }