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); }
protected MessageDispatcher( DispatcherQueueSetting setting, IReliableLog <OutputMessage> outputMessageQueue, IResultReporter resultReporter) : base(nameof(MessageDispatcher)) { this.setting = setting; this.outputMessageQueue = outputMessageQueue; this.resultReporter = resultReporter; this.pushWorkers = new List <IPushWorker>(); this.random = new ThreadSafeRandom(); this.dispatcherComponents = new ComponentManager(this.setting.Name, "MessageDispatcherContainer"); this.dispatcherComponents.Faulted += (s, e) => this.Fault(e.Exception); for (var i = 0; i < this.setting.PushWorkerCount; ++i) { var pushWorker = PushWorker.Create( this.setting, this.outputMessageQueue, this, this.resultReporter); this.pushWorkers.Add(pushWorker); this.dispatcherComponents.Add(pushWorker); } }
public static InputMessageFilteringEngine Create( DispatcherQueueSetting dispatcherQueueSetting, IResultReporter resultReporter) { return(new InputMessageFilteringEngine( dispatcherQueueSetting, resultReporter)); }
public static IMessageDispatcher Create( DispatcherQueueSetting setting, IReliableLog <OutputMessage> outputMessageQueue, IResultReporter resultReporter) { return(new MessageDispatcher( setting, outputMessageQueue, resultReporter)); }
public static OutputMessageFilteringEngine Create( DispatcherQueueSetting dispatcherQueueSetting, IMessageFilteringEngine <InputMessage> inputMessageFilteringEngine, IResultReporter resultReporter) { return(new OutputMessageFilteringEngine( dispatcherQueueSetting, inputMessageFilteringEngine, resultReporter)); }
protected OutputMessageFilteringEngine( DispatcherQueueSetting setting, IMessageFilteringEngine <InputMessage> inputMessageFilteringEngine, IResultReporter resultReporter) : base(nameof(OutputMessageFilteringEngine)) { this.setting = setting; this.inputMessageFilteringEngine = inputMessageFilteringEngine; this.resultReporter = resultReporter; }
public static IMessagePump Create( DispatcherQueueSetting setting, IReliableLog <TMessage> messageQueue, IMessageFilteringEngine <TMessage> filteringEngine, IMessageDispatcher messageDispatcher) { return(new MessagePump <TMessage>( setting, messageQueue, filteringEngine, messageDispatcher)); }
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>(); }
protected InputMessageFilteringEngine( DispatcherQueueSetting setting, IResultReporter resultReporter) : base(nameof(InputMessageFilteringEngine)) { this.setting = setting; this.resultReporter = resultReporter; this.proxyFactory = new ServiceProxyFactory((c) => { return(new FabricTransportServiceRemotingClientFactory( serializationProvider: new ServiceRemotingJsonSerializationProvider())); }); }
protected PushWorker( DispatcherQueueSetting setting, IReliableLog <OutputMessage> outputMessageQueue, IMessageDispatcher messageDispatcher, IResultReporter resultReporter) : base(nameof(PushWorker)) { this.setting = setting; this.outputMessageQueue = outputMessageQueue; this.messageDispatcher = messageDispatcher; this.pushTaskAvailableSignal = new AsyncSignal(SignalWaitTime); this.messageQueue = new ConcurrentQueue <PushTaskInfo>(); this.resultReporter = resultReporter; }
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)); }
public ReliableLog( DispatcherQueueSetting setting, IReliableStateManager stateManager) : base(nameof(ReliableLog <TMessage>)) { this.setting = setting; this.stateManager = stateManager; this.maxQueueLength = setting.MaxQueueLength; this.recordDictionaryKeyName = this.setting.Name + ":RecordDictionary"; this.metaDictionaryKeyName = this.setting.Name + ":MetaDictionary"; this.lastCommittedIndexKeyName = this.setting.Name + ":LastCommit"; this.checkpointKeyName = this.setting.Name + ":Checkpoint"; this.lastIndex = this.lastCommittedIndex = this.currentCheckpointIndex = new RecordInfo(RecordInfo.InvalidIndex, this.maxQueueLength); this.inflightAppends = new List <CommitInfo>(); this.waiter = new AsyncWaiter(); }
public static IReliableLog <TMessage> Create(DispatcherQueueSetting setting, IReliableStateManager stateManager) { return(new ReliableLog <TMessage>(setting, stateManager)); }