protected void OnReceiveDelivery(Delivery delivery) { // this is always the next expected delivery id this.nextDeliveryId = delivery.DeliveryId + 1; if (!delivery.Settled) { Delivery.Add(ref this.firstUnsettled, ref this.lastUnsettled, delivery); } }
protected void OnSendDelivery(Delivery delivery) { // Caller should hold the lock delivery.DeliveryId = this.nextDeliveryId; this.nextDeliveryId.Increment(); if (!delivery.Settled) { Delivery.Add(ref this.firstUnsettled, ref this.lastUnsettled, delivery); } }