예제 #1
0
 public ValueDisruptorProducerFactory(int producerCount, int itemsToProduce, TaskScheduler scheduler, ValueDisruptor <ChannelsBenchmark.ValueEvent> disruptor)
 {
     _producerCount  = producerCount;
     _itemsToProduce = itemsToProduce;
     _scheduler      = scheduler;
     _disruptor      = disruptor;
 }
예제 #2
0
 public void SetUp()
 {
     _ringBuffer           = null;
     _delayedEventHandlers = new List <DelayedEventHandler>();
     _taskScheduler        = new StubTaskScheduler();
     _disruptor            = new ValueDisruptor <TestValueEvent>(() => new TestValueEvent(), 4, _taskScheduler);
 }
 public void SetUp()
 {
     _ringBuffer           = null;
     _delayedEventHandlers = new List <DelayedEventHandler>();
     _executor             = new StubExecutor();
     _disruptor            = new ValueDisruptor <TestValueEvent>(() => new TestValueEvent(), 4, _executor);
 }
예제 #4
0
        private ValueDisruptor <ValueEvent> CreateValueDisruptor(ProducerType producerType, int ringBufferSize, TaskScheduler scheduler)
        {
            var valueDisruptor = new ValueDisruptor <ValueEvent>(() => new ValueEvent(), ringBufferSize, scheduler, producerType, new BusySpinWaitStrategy());

            valueDisruptor.HandleEventsWith(_eventProcessor);
            valueDisruptor.Start();
            return(valueDisruptor);
        }
예제 #5
0
 public void SetupValueDisruptor()
 {
     Setup();
     if (SubscriberCardinality == Cardinality.Single)
     {
         _valueDisruptor = CreateValueDisruptor(ProducerType.Single, _ringBufferSize, SubscriberScheduler);
     }
     else
     {
         _valueDisruptor = CreateValueDisruptor(ProducerType.Multi, _ringBufferSize, SubscriberScheduler);
     }
 }
예제 #6
0
 public EventProcessorFactory(ValueDisruptor <TestValueEvent> disruptor, IValueEventHandler <TestValueEvent> eventHandler, int sequenceLength)
 {
     _disruptor      = disruptor;
     _eventHandler   = eventHandler;
     _sequenceLength = sequenceLength;
 }
예제 #7
0
 public TempEventHandler(ValueDisruptor <TestValueEvent> disruptor, long[] remainingCapacity)
 {
     _disruptor         = disruptor;
     _remainingCapacity = remainingCapacity;
 }
예제 #8
0
 public static void SetupDisruptor()
 {
     _disruptor = new ValueDisruptor <ValueEvent>(() => new ValueEvent(), ringBufferSize: 1024);
     _disruptor.HandleEventsWith(new ValueEventHandler());
     _disruptor.Start();
 }