protected override void CloseFirstItem(TimeSpan timeout) { Message firstItem = base.GetFirstItem(); if (firstItem != null) { TypedChannelDemuxer.AbortMessage(firstItem); } }
private TypedChannelDemuxer GetTypedDemuxer(System.Type channelType, BindingContext context) { TypedChannelDemuxer inputDemuxer = null; bool flag = false; if (channelType == typeof(IInputChannel)) { if (this.inputDemuxer == null) { if (context.CanBuildInnerChannelListener <IReplyChannel>()) { this.inputDemuxer = this.replyDemuxer = new ReplyChannelDemuxer(context); } else { this.inputDemuxer = new InputChannelDemuxer(context); } flag = true; } inputDemuxer = this.inputDemuxer; } else if (channelType == typeof(IReplyChannel)) { if (this.replyDemuxer == null) { this.inputDemuxer = this.replyDemuxer = new ReplyChannelDemuxer(context); flag = true; } inputDemuxer = this.replyDemuxer; } else if (!this.typeDemuxers.TryGetValue(channelType, out inputDemuxer)) { inputDemuxer = this.CreateTypedDemuxer(channelType, context); this.typeDemuxers.Add(channelType, inputDemuxer); flag = true; } if (!flag) { context.RemainingBindingElements.Clear(); } return(inputDemuxer); }
protected override void AbortItem(RequestContext request) { TypedChannelDemuxer.AbortMessage(request.RequestMessage); request.Abort(); }
protected override void AbortItem(Message message) { TypedChannelDemuxer.AbortMessage(message); }