Replace `?? CancellationToken.None` pattern with the simpler `default`

This commit is contained in:
YoshiRulz 2024-09-22 15:20:52 +10:00
parent b173712a15
commit f2a4d14172
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 34 additions and 16 deletions

View File

@ -14,52 +14,67 @@ namespace BizHawk.Client.Common
/// <summary>calls <see cref="ClientWebSocket.State"/> getter (unless closed/disposed, then <see cref="WebSocketState.Closed"/> is always returned)</summary>
public WebSocketState State => _w?.State ?? WebSocketState.Closed;
public ClientWebSocketWrapper(Uri uri, CancellationToken? cancellationToken = null)
public ClientWebSocketWrapper(
Uri uri,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
{
cancellationToken ??= CancellationToken.None;
_w = new ClientWebSocket();
_w.ConnectAsync(uri, cancellationToken.Value).Wait(cancellationToken.Value);
_w.ConnectAsync(uri, cancellationToken).Wait(cancellationToken);
}
/// <summary>calls <see cref="ClientWebSocket.CloseAsync"/></summary>
/// <remarks>also calls <see cref="ClientWebSocket.Dispose"/> (wrapper property <see cref="State"/> will continue to work, method calls will throw <see cref="ObjectDisposedException"/>)</remarks>
public Task Close(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken? cancellationToken = null)
public Task Close(
WebSocketCloseStatus closeStatus,
string statusDescription,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
{
if (_w == null) throw new ObjectDisposedException(nameof(_w));
var task = _w.CloseAsync(closeStatus, statusDescription, cancellationToken ?? CancellationToken.None);
var task = _w.CloseAsync(closeStatus, statusDescription, cancellationToken);
_w.Dispose();
_w = null;
return task;
}
/// <summary>calls <see cref="ClientWebSocket.ReceiveAsync"/></summary>
public Task<WebSocketReceiveResult> Receive(ArraySegment<byte> buffer, CancellationToken? cancellationToken = null)
=> _w?.ReceiveAsync(buffer, cancellationToken ?? CancellationToken.None)
?? throw new ObjectDisposedException(nameof(_w));
public Task<WebSocketReceiveResult> Receive(
ArraySegment<byte> buffer,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
=> _w?.ReceiveAsync(buffer, cancellationToken)
?? throw new ObjectDisposedException(nameof(_w));
/// <summary>calls <see cref="ClientWebSocket.ReceiveAsync"/></summary>
public string Receive(int bufferCap, CancellationToken? cancellationToken = null)
public string Receive(
int bufferCap,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
{
if (_w == null) throw new ObjectDisposedException(nameof(_w));
var buffer = new byte[bufferCap];
var result = Receive(new ArraySegment<byte>(buffer), cancellationToken ?? CancellationToken.None).Result;
var result = Receive(new ArraySegment<byte>(buffer), cancellationToken).Result;
return Encoding.UTF8.GetString(buffer, 0, result.Count);
}
/// <summary>calls <see cref="ClientWebSocket.SendAsync"/></summary>
public Task Send(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken? cancellationToken = null)
=> _w?.SendAsync(buffer, messageType, endOfMessage, cancellationToken ?? CancellationToken.None)
?? throw new ObjectDisposedException(nameof(_w));
public Task Send(
ArraySegment<byte> buffer,
WebSocketMessageType messageType,
bool endOfMessage,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
=> _w?.SendAsync(buffer, messageType, endOfMessage, cancellationToken)
?? throw new ObjectDisposedException(nameof(_w));
/// <summary>calls <see cref="ClientWebSocket.SendAsync"/></summary>
public Task Send(string message, bool endOfMessage, CancellationToken? cancellationToken = null)
public Task Send(
string message,
bool endOfMessage,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
{
if (_w == null) throw new ObjectDisposedException(nameof(_w));
return Send(
new ArraySegment<byte>(Encoding.UTF8.GetBytes(message)),
WebSocketMessageType.Text,
endOfMessage,
cancellationToken ?? CancellationToken.None
cancellationToken
);
}
}

View File

@ -6,6 +6,9 @@ namespace BizHawk.Client.Common
{
public sealed class WebSocketServer
{
public ClientWebSocketWrapper Open(Uri uri, CancellationToken? cancellationToken = null) => new ClientWebSocketWrapper(uri, cancellationToken);
public ClientWebSocketWrapper Open(
Uri uri,
CancellationToken cancellationToken = default/* == CancellationToken.None */)
=> new(uri, cancellationToken);
}
}