예제 #1
0
 /// <summary>
 /// Create a new pipeline with all attached channel handlers.
 /// </summary>
 public IPipeline CreatePipeline()
 {
     var pipeline = new Pipeline();
     pipeline.RegisterDownstreamHandler(new Encoder());
     pipeline.RegisterUpstreamHandler(new Decoder());
     return pipeline;
 }
예제 #2
0
 /// <summary>
 /// Create a new pipeline with all attached channel handlers.
 /// </summary>
 IPipeline IPipelineFactory.CreatePipeline()
 {
     var pipeline = new Pipeline();
     pipeline.RegisterUpstreamHandler(new Decoder());
     pipeline.RegisterUpstreamHandler(_clientService);
     pipeline.RegisterDownstreamHandler(new Encoder());
     return pipeline;
 }
        public HttpListener(IPipelineFactory clientFactory)
        {
            _pipeline = new Pipeline();
            _pipeline.AddDownstreamHandler(this);
            _pipeline.AddUpstreamHandler(this);
            _serverChannel = new TcpServerChannel(_pipeline, clientFactory, 2000);

        }
예제 #4
0
 public void TestDownstreamOrder()
 {
     var pipeline = new Pipeline();
     pipeline.AddDownstreamHandler(new DownstreamOrderHandler(2));
     pipeline.AddDownstreamHandler(new DownstreamOrderHandler(1));
     pipeline.AddDownstreamHandler(new DownstreamOrderHandler(0));
     pipeline.SendDownstream(new MyMessage());
     Assert.Equal(-1, DownstreamOrderHandler.CurrentIndex);
 }
예제 #5
0
 public void SendUpStreamAndSwitchToDown()
 {
     var pipeline = new Pipeline();
     IPipelineMessage downMsg = null;
     pipeline.AddUpstreamHandler(new MyUpHandler((ctx, m) =>
         {
             var upMsg = m;
             ctx.SendDownstream(upMsg);
         }));
     pipeline.AddDownstreamHandler(new MyDownHandler((ctx, m) => downMsg = m));
     pipeline.SendUpstream(new Disconnected(new Exception()));
     Assert.NotNull(downMsg);
 }