Files
linker/cmonitor/client/ClientSignInState.cs
2024-05-18 01:23:50 +08:00

38 lines
1.1 KiB
C#

using cmonitor.server;
using System.Text.Json.Serialization;
namespace cmonitor.client
{
public sealed class ClientSignInState
{
[JsonIgnore]
public IConnection Connection { get; set; }
[JsonIgnore]
public bool connecting = false;
public bool Connecting => connecting;
public bool Connected => Connection != null && Connection.Connected;
private int networdkEnabledTimes = 0;
[JsonIgnore]
public Action NetworkDisabledHandle { get; set; }
[JsonIgnore]
public Action<int> NetworkEnabledHandle { get; set; }
[JsonIgnore]
public Action NetworkFirstEnabledHandle { get; set; }
public void PushNetworkEnabled()
{
if (networdkEnabledTimes == 0)
{
NetworkFirstEnabledHandle?.Invoke();
}
NetworkEnabledHandle?.Invoke(networdkEnabledTimes);
networdkEnabledTimes++;
}
public void PushNetworkDisabled()
{
NetworkDisabledHandle?.Invoke();
}
}
}