Microsoft.Azure.Amqp.Delivery.Remove C# (CSharp) Method

Remove() public static method

public static Remove ( Delivery &first, Delivery &last, Delivery delivery ) : void
first Delivery
last Delivery
delivery Delivery
return void
        public static void Remove(ref Delivery first, ref Delivery last, Delivery delivery)
        {
            if (delivery == first)
            {
                first = delivery.Next;
                if (first == null)
                {
                    last = null;
                }
                else
                {
                    first.Previous = null;
                }
            }
            else if (delivery == last)
            {
                last = delivery.Previous;
                last.Next = null;
            }
            else if (delivery.Previous != null && delivery.Next != null)
            {
                delivery.Previous.Next = delivery.Next;
                delivery.Next.Previous = delivery.Previous;
            }

            delivery.Previous = null;
            delivery.Next = null;
        }

Usage Example

Example #1
0
            public void OnLinkClosed(AmqpLink link)
            {
                int settledCount = 0;

                lock (this.syncRoot)
                {
                    Delivery current = this.firstUnsettled;
                    while (current != null)
                    {
                        Delivery delivery = current;
                        current = current.Next;

                        if (delivery.Link == link)
                        {
                            Delivery.Remove(ref this.firstUnsettled, ref this.lastUnsettled, delivery);
                            settledCount++;
                        }
                    }
                }

                if (settledCount > 0)
                {
                    this.OnWindowMoved(settledCount);
                }
            }
All Usage Examples Of Microsoft.Azure.Amqp.Delivery::Remove