Amqp.Session.DisposeDelivery C# (CSharp) Method

DisposeDelivery() private method

private DisposeDelivery ( bool role, Amqp.Delivery delivery, Amqp.Framing.DeliveryState state, bool settled ) : void
role bool
delivery Amqp.Delivery
state Amqp.Framing.DeliveryState
settled bool
return void
        internal void DisposeDelivery(bool role, Delivery delivery, DeliveryState state, bool settled)
        {
            Delivery current = null;
            lock (this.ThisLock)
            {
                LinkedList deliveryList = role ? this.incomingList : this.outgoingList;
                current = (Delivery)deliveryList.First;
                while (current != null)
                {
                    if (current == delivery)
                    {
                        if (settled)
                        {
                            deliveryList.Remove(current);
                        }

                        break;
                    }

                    current = (Delivery)current.Next;
                }
            }

            if (current != null)
            {
                current.Settled = settled;
                current.State = state;
                Dispose dispose = new Dispose()
                {
                    Role = role,
                    First = current.DeliveryId,
                    Settled = settled,
                    State = state
                };

                this.SendCommand(dispose);
            }
        }