28 lines
792 B
C#
28 lines
792 B
C#
using System;
|
|
|
|
namespace Lidgren.Network
|
|
{
|
|
internal abstract class NetSenderChannelBase
|
|
{
|
|
// access this directly to queue things in this channel
|
|
protected NetQueue<NetOutgoingMessage> m_queuedSends;
|
|
|
|
internal abstract int WindowSize { get; }
|
|
|
|
internal abstract int GetAllowedSends();
|
|
|
|
internal int QueuedSendsCount { get { return m_queuedSends.Count; } }
|
|
|
|
internal virtual bool NeedToSendMessages() { return m_queuedSends.Count > 0; }
|
|
|
|
public int GetFreeWindowSlots()
|
|
{
|
|
return GetAllowedSends() - m_queuedSends.Count;
|
|
}
|
|
|
|
internal abstract NetSendResult Enqueue(NetOutgoingMessage message);
|
|
internal abstract void SendQueuedMessages(double now);
|
|
internal abstract void Reset();
|
|
internal abstract void ReceiveAcknowledge(double now, int sequenceNumber);
|
|
}
|
|
}
|