2022-12-14 20:08:52 +00:00
|
|
|
/***
|
|
|
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
|
|
|
|
File: INetAdapter.hpp
|
|
|
|
Date: 2022-12-11
|
|
|
|
Author: Reece
|
|
|
|
***/
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
namespace Aurora::IO::Net
|
|
|
|
{
|
2024-04-01 05:41:51 +00:00
|
|
|
AUE_DEFINE_VA(EAdapterStatus, eUp, eDown);
|
|
|
|
AUE_DEFINE_VA(EAdapterType, eUnknown, eOther, eIPGRE, eTunnel, eLoopback, eEthernet, eIEEE80211, eMobileNetwork, eTokenRing);
|
2023-12-01 12:11:54 +00:00
|
|
|
|
2022-12-14 20:08:52 +00:00
|
|
|
struct INetAdapter
|
|
|
|
{
|
2023-12-10 15:42:04 +00:00
|
|
|
virtual const AuString &GetName() = 0;
|
|
|
|
virtual const AuString &GetDevice() = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
|
|
|
virtual AuUInt16 GetIndex() = 0;
|
|
|
|
|
2024-04-01 05:41:51 +00:00
|
|
|
virtual EAdapterType GetAdapterType() = 0;
|
|
|
|
virtual EAdapterStatus GetAdapterStatus() = 0;
|
2023-12-01 12:11:54 +00:00
|
|
|
|
2023-12-10 15:42:04 +00:00
|
|
|
virtual EIPProtocol GetFamily() = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
2024-04-01 05:05:30 +00:00
|
|
|
virtual const IPAddress &GetAddress() = 0;
|
|
|
|
virtual const IPAddress &GetBroadcastAddress() = 0;
|
|
|
|
virtual const IPAddress &GetAnycastAddress() = 0;
|
|
|
|
virtual const IPAddress &GetSubnetMask() = 0;
|
|
|
|
virtual const IPAddress &GetGateway() = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
2023-12-10 15:42:04 +00:00
|
|
|
virtual AuArray<AuUInt8, 8> GetMacAddress() = 0;
|
2023-10-24 18:12:47 +00:00
|
|
|
|
|
|
|
virtual bool HasDHCP() = 0;
|
|
|
|
|
|
|
|
virtual AuUInt32 GetMTU() = 0;
|
2023-12-01 13:22:44 +00:00
|
|
|
virtual AuUInt64 GetTransmitBytesPerSec() = 0;
|
|
|
|
virtual AuUInt64 GetReceiveBytesPerSec() = 0;
|
2023-10-24 18:12:47 +00:00
|
|
|
|
2024-04-01 05:44:20 +00:00
|
|
|
virtual const AuList<IPAddress> &GetDNS() = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
};
|
|
|
|
};
|