Browse Source

Refactor TCP channel.

release/3.x.x
Christian Kratky 6 years ago
parent
commit
840d8ab4fd
2 changed files with 41 additions and 73 deletions
  1. +21
    -44
      Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.Uwp.cs
  2. +20
    -29
      Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.cs

+ 21
- 44
Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.Uwp.cs View File

@@ -92,50 +92,9 @@ namespace MQTTnet.Implementations


public void Dispose() public void Dispose()
{ {
try
{
_readStream?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
_readStream = null;
}

try
{
_writeStream?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
_writeStream = null;
}

try
{
_socket?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
_socket = null;
}
TryDispose(_readStream, () => _readStream = null);
TryDispose(_writeStream, () => _writeStream = null);
TryDispose(_socket, () => _socket = null);
} }


private static Certificate LoadCertificate(MqttClientTcpOptions options) private static Certificate LoadCertificate(MqttClientTcpOptions options)
@@ -187,6 +146,24 @@ namespace MQTTnet.Implementations
_readStream = _socket.InputStream.AsStreamForRead(_bufferSize); _readStream = _socket.InputStream.AsStreamForRead(_bufferSize);
_writeStream = _socket.OutputStream.AsStreamForWrite(_bufferSize); _writeStream = _socket.OutputStream.AsStreamForWrite(_bufferSize);
} }

private static void TryDispose(IDisposable disposable, Action afterDispose)
{
try
{
disposable?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
afterDispose();
}
}
} }
} }
#endif #endif

+ 20
- 29
Frameworks/MQTTnet.NetStandard/Implementations/MqttTcpChannel.cs View File

@@ -84,35 +84,8 @@ namespace MQTTnet.Implementations


public void Dispose() public void Dispose()
{ {
try
{
_stream?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
_stream = null;
}

try
{
_socket?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
_socket = null;
}
TryDispose(_stream, () => _stream = null);
TryDispose(_socket, () => _socket = null);
} }


private bool InternalUserCertificateValidationCallback(object sender, X509Certificate x509Certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) private bool InternalUserCertificateValidationCallback(object sender, X509Certificate x509Certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
@@ -173,6 +146,24 @@ namespace MQTTnet.Implementations
_stream = new NetworkStream(_socket, true); _stream = new NetworkStream(_socket, true);
} }
} }

private static void TryDispose(IDisposable disposable, Action afterDispose)
{
try
{
disposable?.Dispose();
}
catch (ObjectDisposedException)
{
}
catch (NullReferenceException)
{
}
finally
{
afterDispose();
}
}
} }
} }
#endif #endif

Loading…
Cancel
Save