FurinaImpact/FurinaImpact.Kcp/KcpKeepAliveOptions.cs

31 lines
1.1 KiB
C#
Raw Normal View History

2023-12-09 03:45:08 +00:00
namespace FurinaImpact.Kcp
{
/// <summary>
/// Options for customized keep-alive functionality.
/// </summary>
public sealed class KcpKeepAliveOptions
{
/// <summary>
/// Create an instance of option object for customized keep-alive functionality.
/// </summary>
/// <param name="sendInterval">The minimum interval in milliseconds between sending keep-alive messages.</param>
/// <param name="gracePeriod">When no packets are received during this period (in milliseconds), the transport is considered to be closed.</param>
public KcpKeepAliveOptions(int sendInterval, int gracePeriod)
{
if (sendInterval <= 0)
{
throw new ArgumentOutOfRangeException(nameof(sendInterval));
}
if (gracePeriod <= 0)
{
throw new ArgumentOutOfRangeException(nameof(gracePeriod));
}
SendInterval = sendInterval;
GracePeriod = gracePeriod;
}
internal int SendInterval { get; }
internal int GracePeriod { get; }
}
}