Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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)));
        }
Ejemplo n.º 4
0
        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)));
        }