WutheringWaves/KcpSharp/IKcpConversation.cs
2024-02-08 00:41:39 +03:00

25 lines
1,012 B
C#

using System;
using System.Threading;
using System.Threading.Tasks;
namespace KcpSharp
{
/// <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(ReadOnlyMemory<byte> packet, CancellationToken cancellationToken);
/// <summary>
/// Mark the underlying transport as closed. Abort all active send or receive operations.
/// </summary>
void SetTransportClosed();
}
}