public void SetDeliveryTerminalState(Delivery delivery, DeliveryState state) { delivery.State = state; delivery.Settled = delivery.ReceiverSettlementMode == LinkReceiverSettlementModeEnum.First; if (delivery.Settled) { if (IsReceiverLink) { LinkCredit++; if (DeliveryCount % ReflowModulus == 0) SendFlow(drain: false, echo: false); } } Session.SendDeliveryDisposition(this.IsReceiverLink, delivery, state, delivery.Settled); }
public void SendDeliveryDisposition(bool role, Delivery delivery, DeliveryState state, bool settled) { if (delivery != null) { var disposition = new Disposition() { Role = role, First = delivery.DeliveryId, Settled = settled, State = state, }; if (settled) { incomingWindow++; } this.SendFrame(disposition); } }