public ValueEventPoller(IValueDataProvider <T> dataProvider, ISequencer sequencer, ISequence sequence, DependentSequenceGroup dependentSequences) { _dataProvider = dataProvider; _sequencer = sequencer; _sequence = sequence; _dependentSequences = dependentSequences; }
public static ValueEventPoller <T> Create <T>(IValueDataProvider <T> dataProvider, ISequencer sequencer, Sequence sequence, Sequence cursorSequence, params ISequence[] gatingSequences) where T : struct { var dependentSequences = new DependentSequenceGroup(cursorSequence, gatingSequences); return(new ValueEventPoller <T>(dataProvider, sequencer, sequence, dependentSequences)); }
public ValueEventPoller(IValueDataProvider <T> dataProvider, ISequencer sequencer, ISequence sequence, ISequence gatingSequence) { _dataProvider = dataProvider; _sequencer = sequencer; _sequence = sequence; _gatingSequence = gatingSequence; }
public static ValueEventPoller <T> Create <T>(IValueDataProvider <T> dataProvider, ISequencer sequencer, Sequence sequence, Sequence cursorSequence, params ISequence[] gatingSequences) where T : struct { var gatingSequence = SequenceGroups.CreateReadOnlySequence(cursorSequence, gatingSequences); return(new ValueEventPoller <T>(dataProvider, sequencer, sequence, gatingSequence)); }
internal static IValueBatchEventProcessor <T> Create <T>(IValueDataProvider <T> dataProvider, ISequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler, Type processorType) where T : struct { var dataProviderProxy = StructProxy.CreateProxyInstance(dataProvider); var sequenceBarrierProxy = StructProxy.CreateProxyInstance(sequenceBarrier); var eventHandlerProxy = StructProxy.CreateProxyInstance(eventHandler); var batchStartAwareProxy = CreateBatchStartAwareProxy(eventHandler); var batchEventProcessorType = processorType.MakeGenericType(typeof(T), dataProviderProxy.GetType(), sequenceBarrierProxy.GetType(), eventHandlerProxy.GetType(), batchStartAwareProxy.GetType()); return((IValueBatchEventProcessor <T>)Activator.CreateInstance(batchEventProcessorType, dataProviderProxy, sequenceBarrierProxy, eventHandlerProxy, batchStartAwareProxy)); }
/// <summary> /// Create a new <see cref="IBatchEventProcessor{T}"/> with dedicated generic arguments. /// </summary> /// <typeparam name="T">the type of event used.</typeparam> /// <param name="dataProvider">dataProvider to which events are published</param> /// <param name="sequenceBarrier">SequenceBarrier on which it is waiting.</param> /// <param name="eventHandler">eventHandler is the delegate to which events are dispatched.</param> /// <returns></returns> public static IValueBatchEventProcessor <T> Create <T>(IValueDataProvider <T> dataProvider, ISequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler) where T : struct { var dataProviderProxy = StructProxy.CreateProxyInstance(dataProvider); var sequenceBarrierProxy = StructProxy.CreateProxyInstance(sequenceBarrier); var eventHandlerProxy = StructProxy.CreateProxyInstance(eventHandler); var batchStartAwareProxy = eventHandler is IBatchStartAware batchStartAware?StructProxy.CreateProxyInstance(batchStartAware) : new NoopBatchStartAware(); var batchEventProcessorType = typeof(ValueBatchEventProcessor <, , , ,>).MakeGenericType(typeof(T), dataProviderProxy.GetType(), sequenceBarrierProxy.GetType(), eventHandlerProxy.GetType(), batchStartAwareProxy.GetType()); return((IValueBatchEventProcessor <T>)Activator.CreateInstance(batchEventProcessorType, dataProviderProxy, sequenceBarrierProxy, eventHandlerProxy, batchStartAwareProxy)); }
internal static IValueEventProcessor <T> Create <T>(IValueDataProvider <T> dataProvider, SequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler, Type processorType) where T : struct { var dataProviderProxy = StructProxy.CreateProxyInstance(dataProvider); var sequencerOptions = sequenceBarrier.GetSequencerOptions(); var eventHandlerProxy = StructProxy.CreateProxyInstance(eventHandler); var onBatchStartInvoker = CreateOnBatchStartEvaluator(eventHandler); var eventProcessorType = processorType.MakeGenericType(typeof(T), dataProviderProxy.GetType(), sequencerOptions.GetType(), eventHandlerProxy.GetType(), onBatchStartInvoker.GetType()); return((IValueEventProcessor <T>)Activator.CreateInstance(eventProcessorType, dataProviderProxy, sequenceBarrier, eventHandlerProxy, onBatchStartInvoker) !); }
private static IValueEventProcessor <T> CreateEventProcessor <T>(IValueDataProvider <T> dataProvider, SequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler) where T : struct { return(EventProcessorFactory.Create(dataProvider, sequenceBarrier, eventHandler)); }
/// <summary> /// <see cref="ISequencer.NewPoller{T}(IValueDataProvider{T}, ISequence[])"/>. /// </summary> public ValueEventPoller <T> NewPoller <T>(IValueDataProvider <T> provider, params ISequence[] gatingSequences) where T : struct { return(EventPoller.Create(provider, this, new Sequence(), _cursor, gatingSequences)); }
/// <summary> /// Create a new <see cref="IBatchEventProcessor{T}"/> with dedicated generic arguments. /// </summary> /// <typeparam name="T">the type of event used.</typeparam> /// <param name="dataProvider">dataProvider to which events are published</param> /// <param name="sequenceBarrier">SequenceBarrier on which it is waiting.</param> /// <param name="eventHandler">eventHandler is the delegate to which events are dispatched.</param> /// <returns></returns> public static IValueBatchEventProcessor <T> Create <T>(IValueDataProvider <T> dataProvider, ISequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler) where T : struct { return(Create(dataProvider, sequenceBarrier, eventHandler, typeof(ValueBatchEventProcessor <, , , ,>))); }
public ValueEventPoller <T> NewPoller <T>(IValueDataProvider <T> provider, params ISequence[] gatingSequences) where T : struct { throw new NotSupportedException(); }
public ValueEventPoller <T> NewPoller <T>(IValueDataProvider <T> provider, params ISequence[] gatingSequences) where T : struct { return(null); }