30 lines
1,009 B
C#
30 lines
1,009 B
C#
namespace FurinaImpact.Kcp
|
|
{
|
|
internal readonly struct KcpConversationUpdateNotification : IDisposable
|
|
{
|
|
private readonly IKcpConversationUpdateNotificationSource _source;
|
|
private readonly bool _skipTimerNotification;
|
|
|
|
public ReadOnlyMemory<byte> Packet => _source?.Packet ?? default;
|
|
public bool TimerNotification => !_skipTimerNotification;
|
|
|
|
public KcpConversationUpdateNotification(IKcpConversationUpdateNotificationSource source, bool skipTimerNotification)
|
|
{
|
|
_source = source;
|
|
_skipTimerNotification = skipTimerNotification;
|
|
}
|
|
|
|
public KcpConversationUpdateNotification WithTimerNotification(bool timerNotification)
|
|
{
|
|
return new KcpConversationUpdateNotification(_source, !_skipTimerNotification | timerNotification);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
if (_source is not null)
|
|
{
|
|
_source.Release();
|
|
}
|
|
}
|
|
}
|
|
}
|