public IPipeline Build() { var pipeline = new Pipeline(); //pipeline.Add(new ReconnectHandler(TimeSpan.FromSeconds(15))); var commandDispatcher = new CommandDispatcher(); var logger = new ProtocolTrace(new FileStream(@"C:\temp\Str" + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".log", FileMode.Create)); var eventFactory = new EventFactory(); eventFactory.MapDefault(); var eventDecoder = new EventDecoder(eventFactory); //channel will call this one. pipeline.AddUpstreamHandler(logger); pipeline.AddUpstreamHandler(new MessageDecoder()); pipeline.AddUpstreamHandler(eventDecoder); pipeline.AddUpstreamHandler(commandDispatcher); pipeline.AddUpstreamHandler(new AuthenticationHandler(_password)); pipeline.AddUpstreamHandler(_client); pipeline.AddDownstreamHandler(commandDispatcher); pipeline.AddDownstreamHandler(new MessageEncoder()); pipeline.AddDownstreamHandler(logger); return(pipeline); }
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); }
public HttpListener(IPipelineFactory clientFactory) { _pipeline = new Pipeline(); _pipeline.AddDownstreamHandler(this); _pipeline.AddUpstreamHandler(this); _serverChannel = new TcpServerChannel(_pipeline, clientFactory, 2000); }
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); }