Example #1
0
        protected MessageProcessor(
            DispatcherQueueSetting setting,
            IReliableLog <TMessage> inputMessageQueue,
            IReliableLog <OutputMessage> outputMessageQueue,
            IMessageFilteringEngine <TMessage> filteringEngine,
            IResultReporter resultReporter)
            : base(nameof(MessageProcessor <TMessage>))
        {
            this.setting            = setting;
            this.inputMessageQueue  = inputMessageQueue;
            this.outputMessageQueue = outputMessageQueue;
            this.filteringEngine    = filteringEngine;
            this.resultReporter     = resultReporter;

            this.processorComponents          = new ComponentManager(this.setting.Name, "MessageProcessorContainer");
            this.processorComponents.Faulted += (s, e) => this.Fault(e.Exception);

            this.messageDispatcher = MessageDispatcher.Create(
                this.setting,
                this.outputMessageQueue,
                this.resultReporter);
            this.processorComponents.Add(this.messageDispatcher);

            this.messagePump = MessagePump <TMessage> .Create(
                this.setting,
                this.inputMessageQueue,
                this.filteringEngine,
                this.messageDispatcher);

            this.processorComponents.Add(this.messagePump);
        }
Example #2
0
 public static OutputMessageFilteringEngine Create(
     DispatcherQueueSetting dispatcherQueueSetting,
     IMessageFilteringEngine <InputMessage> inputMessageFilteringEngine,
     IResultReporter resultReporter)
 {
     return(new OutputMessageFilteringEngine(
                dispatcherQueueSetting,
                inputMessageFilteringEngine,
                resultReporter));
 }
Example #3
0
 protected OutputMessageFilteringEngine(
     DispatcherQueueSetting setting,
     IMessageFilteringEngine <InputMessage> inputMessageFilteringEngine,
     IResultReporter resultReporter)
     : base(nameof(OutputMessageFilteringEngine))
 {
     this.setting = setting;
     this.inputMessageFilteringEngine = inputMessageFilteringEngine;
     this.resultReporter = resultReporter;
 }
Example #4
0
 public static IMessagePump Create(
     DispatcherQueueSetting setting,
     IReliableLog <TMessage> messageQueue,
     IMessageFilteringEngine <TMessage> filteringEngine,
     IMessageDispatcher messageDispatcher)
 {
     return(new MessagePump <TMessage>(
                setting,
                messageQueue,
                filteringEngine,
                messageDispatcher));
 }
Example #5
0
 protected MessagePump(
     DispatcherQueueSetting setting,
     IReliableLog <TMessage> messageQueue,
     IMessageFilteringEngine <TMessage> filteringEngine,
     IMessageDispatcher messageDispatcher)
     : base(nameof(MessagePump <TMessage>))
 {
     this.setting           = setting;
     this.messageQueue      = messageQueue;
     this.filteringEngine   = filteringEngine;
     this.messageDispatcher = messageDispatcher;
     this.checkpointQueue   = new ConcurrentQueue <CheckpointInfo>();
 }
Example #6
0
 public static IMessageProcessor <TMessage> Create(
     DispatcherQueueSetting setting,
     IReliableLog <TMessage> inputMessageQueue,
     IReliableLog <OutputMessage> outputMessageQueue,
     IMessageFilteringEngine <TMessage> filteringEngine,
     IResultReporter resultReporter)
 {
     return(new MessageProcessor <TMessage>(
                setting,
                inputMessageQueue,
                outputMessageQueue,
                filteringEngine,
                resultReporter));
 }