using System; using Cute; public class NetworkStatus : IDisposable { public enum Status { None, Alive, Disconnect, OffLine, TimeOut } public Action OnAlive; public Action OnDisconnect; public Action OnOffLine; public Action OnTimeOut; public Status Current { get; private set; } public bool IsAlive => Current == Status.Alive; public NetworkStatus() { Current = Status.None; } public void ToKeepAlive() { OnAlive.Call(); Current = Status.Alive; } public void ToDisconnect() { OnDisconnect.Call(); Current = Status.Disconnect; } public void ToOffLine() { OnOffLine.Call(); Current = Status.OffLine; } public void ToTimeOut() { OnTimeOut.Call(); Current = Status.TimeOut; } public void Dispose() { OnAlive = null; OnDisconnect = null; OnOffLine = null; OnTimeOut = null; } }