/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuNetAdapter.hpp Date: 2022-11-14 Author: Reece ***/ #pragma once namespace Aurora::IO::Net { struct NetAdapter : INetAdapter { const AuString &ToName() override; const AuString &ToDevice() override; AuUInt16 GetIndex() override; EIPProtocol ToFamily() override; IPAddress ToAddress() override; IPAddress ToBroadcastAddress() override; IPAddress ToAnycastAddress() override; IPAddress ToSubnetMask() override; IPAddress ToGateway() override; AuList GetDNS() override; // FriendlyName static AuString GetHostname(); static AuList> GetIPv4s(); // must be called first under lock static AuList> GetIPv6s(); // followed by me // other protocols can go here AuString name; AuString device; IPAddress address; IPAddress broadcast; IPAddress anycast; IPAddress subnet; IPAddress gateway; AuList dns; AuUInt16 index {}; }; }