using System; namespace Lidgren.Network { internal abstract class NetSenderChannelBase { // access this directly to queue things in this channel protected NetQueue 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); } }