43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
/***
|
|
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
|
|
{
|
|
AUE_DEFINE_VA(EAdapterStatus, eUp, eDown);
|
|
AUE_DEFINE_VA(EAdapterType, eUnknown, eOther, eIPGRE, eTunnel, eLoopback, eEthernet, eIEEE80211, eMobileNetwork, eTokenRing);
|
|
|
|
struct INetAdapter
|
|
{
|
|
virtual const AuString &GetName() = 0;
|
|
virtual const AuString &GetDevice() = 0;
|
|
|
|
virtual AuUInt16 GetIndex() = 0;
|
|
|
|
virtual EAdapterType GetAdapterType() = 0;
|
|
virtual EAdapterStatus GetAdapterStatus() = 0;
|
|
|
|
virtual EIPProtocol GetFamily() = 0;
|
|
|
|
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;
|
|
|
|
virtual AuArray<AuUInt8, 8> GetMacAddress() = 0;
|
|
|
|
virtual bool HasDHCP() = 0;
|
|
|
|
virtual AuUInt32 GetMTU() = 0;
|
|
virtual AuUInt64 GetTransmitBytesPerSec() = 0;
|
|
virtual AuUInt64 GetReceiveBytesPerSec() = 0;
|
|
|
|
virtual const AuList<IPAddress> &GetDNS() = 0;
|
|
};
|
|
}; |