mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-20 11:45:43 +08:00
Rename MqttClient.ConnectState to MqttClientConnectionStatus
This commit is contained in:
@@ -38,15 +38,7 @@ namespace MQTTnet.Client
|
|||||||
|
|
||||||
IMqttChannelAdapter _adapter;
|
IMqttChannelAdapter _adapter;
|
||||||
bool _cleanDisconnectInitiated;
|
bool _cleanDisconnectInitiated;
|
||||||
volatile int _connectState;
|
volatile int _connectionStatus;
|
||||||
|
|
||||||
enum ConnectState
|
|
||||||
{
|
|
||||||
Disconnected = 0,
|
|
||||||
Disconnecting,
|
|
||||||
Connected,
|
|
||||||
Connecting
|
|
||||||
}
|
|
||||||
|
|
||||||
MqttClientDisconnectReason _disconnectReason;
|
MqttClientDisconnectReason _disconnectReason;
|
||||||
|
|
||||||
@@ -66,7 +58,7 @@ namespace MQTTnet.Client
|
|||||||
|
|
||||||
public IMqttApplicationMessageReceivedHandler ApplicationMessageReceivedHandler { get; set; }
|
public IMqttApplicationMessageReceivedHandler ApplicationMessageReceivedHandler { get; set; }
|
||||||
|
|
||||||
public bool IsConnected => (ConnectState)_connectState == ConnectState.Connected;
|
public bool IsConnected => (MqttClientConnectionStatus)_connectionStatus == MqttClientConnectionStatus.Connected;
|
||||||
|
|
||||||
public IMqttClientOptions Options { get; private set; }
|
public IMqttClientOptions Options { get; private set; }
|
||||||
|
|
||||||
@@ -79,7 +71,7 @@ namespace MQTTnet.Client
|
|||||||
|
|
||||||
ThrowIfDisposed();
|
ThrowIfDisposed();
|
||||||
|
|
||||||
if (CompareExchangeConnectState(ConnectState.Connecting, ConnectState.Disconnected) != ConnectState.Disconnected)
|
if (CompareExchangeConnectionStatus(MqttClientConnectionStatus.Connecting, MqttClientConnectionStatus.Disconnected) != MqttClientConnectionStatus.Disconnected)
|
||||||
throw new InvalidOperationException("Not allowed to connect while connect/disconnect is pending.");
|
throw new InvalidOperationException("Not allowed to connect while connect/disconnect is pending.");
|
||||||
|
|
||||||
MqttClientAuthenticateResult authenticateResult = null;
|
MqttClientAuthenticateResult authenticateResult = null;
|
||||||
@@ -118,7 +110,7 @@ namespace MQTTnet.Client
|
|||||||
_keepAlivePacketsSenderTask = Task.Run(() => TrySendKeepAliveMessagesAsync(backgroundCancellationToken), backgroundCancellationToken);
|
_keepAlivePacketsSenderTask = Task.Run(() => TrySendKeepAliveMessagesAsync(backgroundCancellationToken), backgroundCancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
CompareExchangeConnectState(ConnectState.Connected, ConnectState.Connecting);
|
CompareExchangeConnectionStatus(MqttClientConnectionStatus.Connected, MqttClientConnectionStatus.Connecting);
|
||||||
|
|
||||||
_logger.Info("Connected.");
|
_logger.Info("Connected.");
|
||||||
|
|
||||||
@@ -370,7 +362,7 @@ namespace MQTTnet.Client
|
|||||||
{
|
{
|
||||||
Cleanup();
|
Cleanup();
|
||||||
_cleanDisconnectInitiated = false;
|
_cleanDisconnectInitiated = false;
|
||||||
CompareExchangeConnectState(ConnectState.Disconnected, ConnectState.Disconnecting);
|
CompareExchangeConnectionStatus(MqttClientConnectionStatus.Disconnected, MqttClientConnectionStatus.Disconnecting);
|
||||||
|
|
||||||
_logger.Info("Disconnected.");
|
_logger.Info("Disconnected.");
|
||||||
|
|
||||||
@@ -805,32 +797,32 @@ namespace MQTTnet.Client
|
|||||||
|
|
||||||
bool DisconnectIsPendingOrFinished()
|
bool DisconnectIsPendingOrFinished()
|
||||||
{
|
{
|
||||||
var connectState = (ConnectState)_connectState;
|
var connectionStatus = (MqttClientConnectionStatus)_connectionStatus;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
switch (connectState)
|
switch (connectionStatus)
|
||||||
{
|
{
|
||||||
case ConnectState.Disconnected:
|
case MqttClientConnectionStatus.Disconnected:
|
||||||
case ConnectState.Disconnecting:
|
case MqttClientConnectionStatus.Disconnecting:
|
||||||
return true;
|
return true;
|
||||||
case ConnectState.Connected:
|
case MqttClientConnectionStatus.Connected:
|
||||||
case ConnectState.Connecting:
|
case MqttClientConnectionStatus.Connecting:
|
||||||
// This will compare the _connectState to old value and set it to "CONNECT_STATED_DISCONNECTING" afterwards.
|
// This will compare the _connectionStatus to old value and set it to "MqttClientConnectionStatus.Disconnecting" afterwards.
|
||||||
// So the first caller will get a "false" and all subsequent ones will get "true".
|
// So the first caller will get a "false" and all subsequent ones will get "true".
|
||||||
var newState = CompareExchangeConnectState(ConnectState.Disconnecting, connectState);
|
var curStatus = CompareExchangeConnectionStatus(MqttClientConnectionStatus.Disconnecting, connectionStatus);
|
||||||
if (newState == connectState)
|
if (curStatus == connectionStatus)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
connectState = newState;
|
connectionStatus = curStatus;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (true);
|
} while (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ConnectState CompareExchangeConnectState(ConnectState value, ConnectState comparand)
|
MqttClientConnectionStatus CompareExchangeConnectionStatus(MqttClientConnectionStatus value, MqttClientConnectionStatus comparand)
|
||||||
{
|
{
|
||||||
return (ConnectState)Interlocked.CompareExchange(ref _connectState, (int)value, (int)comparand);
|
return (MqttClientConnectionStatus)Interlocked.CompareExchange(ref _connectionStatus, (int)value, (int)comparand);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
namespace MQTTnet.Client
|
||||||
|
{
|
||||||
|
public enum MqttClientConnectionStatus
|
||||||
|
|
||||||
|
{
|
||||||
|
Disconnected = 0,
|
||||||
|
Disconnecting,
|
||||||
|
Connected,
|
||||||
|
Connecting
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user