FurinaImpact/FurinaImpact.Kcp/IKcpConversation.cs

24 lines
974 B
C#
Raw Normal View History

2023-12-09 03:45:08 +00:00
using System.Net.Sockets;
namespace FurinaImpact.Kcp
{
/// <summary>
/// A conversation or a channel over the transport.
/// </summary>
public interface IKcpConversation : IDisposable
{
/// <summary>
/// Put message into the receive queue of the channel.
/// </summary>
/// <param name="packet">The packet content with the optional conversation ID. This buffer should not contain space for pre-buffer and post-buffer.</param>
/// <param name="cancellationToken">The token to cancel this operation.</param>
/// <returns>A <see cref="ValueTask"/> that completes when the packet is put into the receive queue.</returns>
ValueTask InputPakcetAsync(UdpReceiveResult packet, CancellationToken cancellationToken);
/// <summary>
/// Mark the underlying transport as closed. Abort all active send or receive operations.
/// </summary>
void SetTransportClosed();
}
}