Meum/Meum.Core/QuicExtensions.cs
2025-05-09 16:32:35 +05:00

24 lines
833 B
C#

using System.Net.Quic;
namespace Meum.Core;
public static class QuicExtensions
{
public static async Task<QuicStreamWrapper> AcceptStreamAsync(this QuicConnection conn,
QuicStreamType streamType, CancellationToken ct = default)
{
var s = await conn.AcceptInboundStreamAsync(ct);
if (s.Type != streamType)
throw new Exception($"Accepted stream type is invalid: {s.Type} instead of {streamType}");
var w = new QuicStreamWrapper(s);
return w;
}
public static async Task<QuicStreamWrapper> OpenStreamAsync(this QuicConnection conn,
QuicStreamType streamType, CancellationToken ct = default)
{
var s = await conn.OpenOutboundStreamAsync(streamType, ct);
var w = new QuicStreamWrapper(s);
return w;
}
}