public ValueEventProcessorTests() { _ringBuffer = new ValueRingBuffer <StubValueEvent>(() => new StubValueEvent(-1), 16); _sequenceBarrier = _ringBuffer.NewBarrier(); }
private static IValueEventProcessor <T> CreateEventProcessor <T>(IValueDataProvider <T> dataProvider, SequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler) where T : struct { return(EventProcessorFactory.Create(dataProvider, sequenceBarrier, eventHandler)); }
public PartialEventProcessor(SequenceBarrier sequenceBarrier, TSequenceBarrier typedSequenceBarrier) { _sequenceBarrier = sequenceBarrier; _typedSequenceBarrier = typedSequenceBarrier; }
public RingBufferPublicationBenchmarks() { _ringBuffer = new RingBuffer <Event>(() => new Event(), new SingleProducerSequencer(4096, new BusySpinWaitStrategy())); _sequenceBarrier = _ringBuffer.NewBarrier(); }
private static IEventProcessor <T> CreateEventProcessor <T>(IDataProvider <T> dataProvider, SequenceBarrier sequenceBarrier, IBatchEventHandler <T> eventHandler) where T : class { return(EventProcessorFactory.Create(dataProvider, sequenceBarrier, eventHandler)); }
public BatchEventProcessorTests() { _ringBuffer = new RingBuffer <StubEvent>(() => new StubEvent(-1), 16); _sequenceBarrier = _ringBuffer.NewBarrier(); }
/// <summary> /// Create a new <see cref="IEventProcessor{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 IEventProcessor <T> Create <T>(IDataProvider <T> dataProvider, SequenceBarrier sequenceBarrier, IBatchEventHandler <T> eventHandler) where T : class { return(Create(dataProvider, sequenceBarrier, eventHandler, typeof(BatchEventProcessor <, , ,>))); }
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) !); }
/// <summary> /// Create a new <see cref="IEventProcessor{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 IValueEventProcessor <T> Create <T>(IValueDataProvider <T> dataProvider, SequenceBarrier sequenceBarrier, IValueEventHandler <T> eventHandler) where T : struct { return(Create(dataProvider, sequenceBarrier, eventHandler, typeof(ValueEventProcessor <, , , ,>))); }