using System;
using System.Collections.Generic;
using System.Net.NetworkInformation;
using Vinno.FIS.Sonopost.Features.Network;
namespace Vinno.FIS.Sonopost.Managers.Interfaces
{
internal interface INetworkManager : ISonopostManager
{
///
/// 当前显示的网络改变时触发
///
event EventHandler CurrentNetworkChanged;
///
/// 当WIFI Level改变时触发
///
event EventHandler CurrentWifiLevelChanged;
///
/// 当前选择的网络
///
NetworkInterfaceInfo CurrentNetwork { get; }
///
/// 当前Wifi强度
///
int CurrentWifiLevel { get; }
///
/// 设置网络
///
///
///
///
///
///
///
///
bool SetNetworkInfo(string macAddress, bool enableDhcp, string ip = "", string subnetMask = "", string gateway = "", string preferredDns = "", string standbyDns = "");
///
/// 刷新DNS
///
bool FlushDns();
///
/// 重置Winsock
///
bool ResetWinSock();
///
/// Ping ip
///
///
///
IPStatus Ping(string address, int timeOut = 5000);
///
/// 设置双网卡
///
///
///
bool SetDualNetwork(string outsideMacAddress);
///
/// 保存双网卡设置
///
/// 外网网卡地址
///
SetDualNetworkResult SetDualNetworkEnable(string outsideMacAddress);
///
/// 取消双网卡设置
///
///
SetDualNetworkResult SetDualNetworkDisable();
///
/// 所有网络列表
///
IList GetAllNetworkInterfaceInfos();
///
///
///
///
///
void OnNetworkAddressChanged(object sender, EventArgs e);
///
/// 刷新网络
///
void RefreshAllNetworks(bool wifiScan);
}
}