Exemple #1
0
        protected override void CloseFirstItem(TimeSpan timeout)
        {
            Message firstItem = base.GetFirstItem();

            if (firstItem != null)
            {
                TypedChannelDemuxer.AbortMessage(firstItem);
            }
        }
Exemple #2
0
        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();
 }
Exemple #4
0
 protected override void AbortItem(Message message)
 {
     TypedChannelDemuxer.AbortMessage(message);
 }