public AsyncProcessingNetChannel(Func<IMessageProcessingPipeBuilder, IMessageProcessingPipeBuilder> configureProcesssingPipe, INetNode node, ITransportChannel transportChannel, IMessageSerializer serializer, ICoreEvents logger, INetNodeConfig config, IBufferPool bufferPool) : base(node, transportChannel, serializer, logger, config, bufferPool) { _pipeBuilder = configureProcesssingPipe(new MessageProcessingPipeBuilder()); _processor = _pipeBuilder.Build(); }
protected void OnInitialise() { _pipeBuilder = new MessageProcessingPipeBuilder(); Fiber = new ReadWriteLockingFiber(); ConfigurePipe(_pipeBuilder); _processor = _pipeBuilder.Build(); }
protected void OnInitialise() { _pipeBuilder = new MessageProcessingPipeBuilder(); Fiber = new ReadWriteLockingFiber(); ConfigurePipe(_pipeBuilder); _processor = _pipeBuilder.Build(); }
public AsyncProcessingNetChannel(Func <IMessageProcessingPipeBuilder, IMessageProcessingPipeBuilder> configureProcesssingPipe, INetNode node, ITransportChannel transportChannel, IMessageSerializer serializer, ICoreEvents logger, INetNodeConfig config, IBufferPool bufferPool) : base(node, transportChannel, serializer, logger, config, bufferPool) { _pipeBuilder = configureProcesssingPipe(new MessageProcessingPipeBuilder()); _processor = _pipeBuilder.Build(); }
public static IMessageProcessingPipeBuilder UseConfigurableDispatcher(this IMessageProcessingPipeBuilder builder, Func <IMessageHandlingConfigBuilder, IMessageHandlingConfigBuilder> configure, bool throwIfUnhandled = true) { var config = new MessageHandlingConfigBuilder(); var mp = new DispatchingMessageProcessor(configure(config).Build(), throwIfUnhandled); return(builder.Use(next => context => mp.Process(next, context))); }
public static IMessageProcessingPipeBuilder UseConfigurableClientDispatcher(this IMessageProcessingPipeBuilder builder, Func <ISimpleMessageHandlingConfigBuilder, ISimpleMessageHandlingConfigBuilder> configure) { var config = new MessageHandlingConfigBuilder(); var mp = new DispatchingMessageProcessor(configure(config).Build(), false); return(builder.Use(next => context => mp.Process(next, context))); }
public static IMessageProcessingPipeBuilder UseFiber(this IMessageProcessingPipeBuilder builder, IFiber fiber, Func <IMessageProcessingLockConfigBuilder, IMessageProcessingLockConfigBuilder> lockConfigurator = null) { IMessageProcessingLockConfig lockConfig = lockConfigurator != null?lockConfigurator(new MessageProcessorLockConfig()).Build() : new MessageProcessorLockConfig(); var mp = new FiberedMessageProcessor(fiber, lockConfig); return(builder.Use(next => context => mp.Process(next, context))); }
protected override IMessageProcessingPipeBuilder Configure(IMessageProcessingPipeBuilder builder) { return builder //.UseIdleDisconnect(TimeSpan.FromSeconds(60 * 10), this) //.UseInvalidHandshakeDisconnect<JoinRoomS2S>(TimeSpan.FromSeconds(5)) //.UseFiber(new SimpleFiber(TaskScheduler.Default, 100)) .UseConfigurableDispatcher(config => config .HandleRequestAsync<JoinRoom, JoinRoomResponse>(OnRoomJoin) .HandleMessageAsync<Say>(OnSay), throwIfUnhandled: false); }
protected override IMessageProcessingPipeBuilder Configure(IMessageProcessingPipeBuilder builder) { return(builder //.UseIdleDisconnect(TimeSpan.FromSeconds(60 * 10), this) //.UseInvalidHandshakeDisconnect<JoinRoomS2S>(TimeSpan.FromSeconds(5)) //.UseFiber(new SimpleFiber(TaskScheduler.Default, 100)) .UseConfigurableDispatcher(config => config .HandleRequestAsync <JoinRoom, JoinRoomResponse>(OnRoomJoin) .HandleMessageAsync <Say>(OnSay), throwIfUnhandled: false)); }
protected override IMessageProcessingPipeBuilder Configure(IMessageProcessingPipeBuilder builder) { return builder //.UseIdleDisconnect(TimeSpan.FromSeconds(60 * 10), this) //.UseInvalidHandshakeDisconnect<JoinRoomS2S>(TimeSpan.FromSeconds(5)) .UseFiber(new SimpleFiber(TaskScheduler.Default, 10)) .UseConfigurableDispatcher(config => config .HandleRequest<UseActor, OperationResult>(OnUseActor) .HandleRequestAsync<PingGateway, OperationResult>(OnPingGateway) .HandleRequestAsync<TestStateless, OperationResult>(OnTestStateless) .HandleRequestAsync<TestStateful, OperationResult>(OnTestStateful), throwIfUnhandled: false); }
protected override IMessageProcessingPipeBuilder Configure(IMessageProcessingPipeBuilder builder) { return(builder //.UseIdleDisconnect(TimeSpan.FromSeconds(60 * 10), this) //.UseInvalidHandshakeDisconnect<JoinRoomS2S>(TimeSpan.FromSeconds(5)) .UseFiber(new SimpleFiber(TaskScheduler.Default, 10)) .UseConfigurableDispatcher(config => config .HandleRequest <UseActor, OperationResult>(OnUseActor) .HandleRequestAsync <PingGateway, OperationResult>(OnPingGateway) .HandleRequestAsync <TestStateless, OperationResult>(OnTestStateless) .HandleRequestAsync <TestStateful, OperationResult>(OnTestStateful), throwIfUnhandled: false)); }
public static IMessageProcessingPipeBuilder UseIdleDisconnect(this IMessageProcessingPipeBuilder builder, TimeSpan idleDisconnectTimeout, INetChannel channel) { var mp = new IdleDisconnectProcessor(idleDisconnectTimeout, channel); return(builder.Use(next => context => mp.Process(next, context))); }
public void ReconfigureProcessingPipe(Func <IMessageProcessingPipeBuilder, IMessageProcessingPipeBuilder> reconfigurator) { _pipeBuilder = reconfigurator(_pipeBuilder); _processor = _pipeBuilder.Build(); }
protected virtual IMessageProcessingPipeBuilder Configure(IMessageProcessingPipeBuilder builder) { throw new NotSupportedException("You should always override Configure in child class if you are using this class as base"); }
protected virtual IMessageProcessingPipeBuilder ConfigurePipe(IMessageProcessingPipeBuilder builder) { return builder .UseFiber(Fiber, ConfigureLocks) .UseConfigurableDispatcher(ConfigureHandlers); }
public void ReconfigureProcessingPipe(Func<IMessageProcessingPipeBuilder, IMessageProcessingPipeBuilder> reconfigurator) { _pipeBuilder = reconfigurator(_pipeBuilder); _processor = _pipeBuilder.Build(); }
protected virtual IMessageProcessingPipeBuilder Configure(IMessageProcessingPipeBuilder builder) { throw new NotSupportedException("You should always override Configure in child class if you are using this class as base"); }
protected virtual IMessageProcessingPipeBuilder ConfigurePipe(IMessageProcessingPipeBuilder builder) { return(builder .UseFiber(Fiber, ConfigureLocks) .UseConfigurableDispatcher(ConfigureHandlers)); }