/// <summary>The add pending confirm.</summary> /// <param name="listener">The listener.</param> /// <param name="seq">The seq.</param> /// <param name="pendingConfirm">The pending confirm.</param> public void AddPendingConfirm(IPublisherCallbackChannelListener listener, long seq, PendingConfirm pendingConfirm) { var pendingConfirmsForListener = this.pendingConfirms[listener]; AssertUtils.ArgumentNotNull(pendingConfirmsForListener, "Listener not registered"); lock (this.pendingConfirms) { pendingConfirmsForListener.Add(seq, pendingConfirm); } this.listenerForSeq.TryAdd(seq, listener); }
private void DoHandleConfirm(bool ack, IPublisherCallbackChannelListener listener, PendingConfirm pendingConfirm) { try { if (listener.IsConfirmListener) { this.logger.Debug(m => m("Sending confirm " + pendingConfirm)); listener.HandleConfirm(pendingConfirm, ack); } } catch (Exception e) { this.logger.Error(m => m("Exception delivering confirm"), e); } }