internal void Acknowledge(Message.AckType ackType) { foreach (IMessageDelivery delivery in delivered.ToArray()) { switch (ackType) { case Message.AckType.ACCEPTED: AckConsumed(delivery); break; case Message.AckType.MODIFIED_FAILED: AckModified(delivery, true); break; case Message.AckType.MODIFIED_FAILED_UNDELIVERABLE: AckModified(delivery, true, true); break; case Message.AckType.REJECTED: AckRejected(delivery); break; case Message.AckType.RELEASED: AckReleased(delivery); break; default: Tracer.WarnFormat("Unkown message acknowledgement type {0} for message {}", ackType, delivery.Message.NMSMessageId); break; } } delivered.Clear(); }
internal void AcknowledgeMessage(Message.Message message, Message.AckType ackType) { ThrowIfClosed(); IMessageDelivery nmsDelivery = null; foreach (IMessageDelivery delivery in delivered) { if (delivery.Message.Equals(message)) { nmsDelivery = delivery; } } if (nmsDelivery == null) { nmsDelivery = new MessageDelivery(message); } switch (ackType) { case Message.AckType.ACCEPTED: AckConsumed(nmsDelivery); break; case Message.AckType.MODIFIED_FAILED: AckModified(nmsDelivery, true); break; case Message.AckType.MODIFIED_FAILED_UNDELIVERABLE: AckModified(nmsDelivery, true, true); break; case Message.AckType.REJECTED: AckRejected(nmsDelivery); break; case Message.AckType.RELEASED: AckReleased(nmsDelivery); break; default: throw new NMSException("Unkown message acknowledgement type " + ackType); } }