コード例 #1
0
        public bool Inspect <TComponent, TMessage>(ConsumerMessageSink <TComponent, TMessage> sink)
            where TMessage : class
            where TComponent : class, Consumes <TMessage> .All
        {
            Append(string.Format("Consumed by Component {0} ({1})", GetComponentName <TComponent>(),
                                 GetMessageName <TMessage>()));

            return(true);
        }
コード例 #2
0
        public bool Inspect <TComponent, TMessage>(ConsumerMessageSink <TComponent, TMessage> sink)
            where TComponent : class, Consumes <TMessage> .All
            where TMessage : class
        {
            if (typeof(TMessage) == typeof(T))
            {
                Result = Result.Concat(new[] { sink as IPipelineSink <T> });

                return(false);
            }

            return(true);
        }
コード例 #3
0
        public UnsubscribeAction Connect <T>(IInboundPipelineConfigurator configurator, IConsumerFactory <T> factory)
            where T : class
        {
            var consumerFactory = factory as IConsumerFactory <TConsumer>;

            if (consumerFactory == null)
            {
                throw new ArgumentException("The consumer factory is of an invalid type: " +
                                            typeof(T).ToShortTypeName());
            }

            var sink = new ConsumerMessageSink <TConsumer, TMessage>(consumerFactory);

            return(configurator.Pipeline.ConnectToRouter(sink, () => configurator.SubscribedTo <TMessage>()));
        }