コード例 #1
0
        public void ShouldIgnoreException()
        {
            var exception = new Exception();
            var stubEvent = new StubEvent(0);

            var exceptionHandler = new IgnoreExceptionHandler();
            exceptionHandler.HandleEventException(exception, 0L, stubEvent);
        }
コード例 #2
0
 public bool Equals(StubEvent other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(other.Value == Value);
 }
コード例 #3
0
        public void ShouldClaimAndGetInSeparateThread()
        {
            var events = GetEvents(0, 0);

            var expectedEvent = new StubEvent(2701);

            var sequence = _ringBuffer.Next();
            StubEvent oldEvent = _ringBuffer[sequence];
            oldEvent.Copy(expectedEvent);
            _ringBuffer.Publish(sequence);

            Assert.AreEqual(expectedEvent, events.Result[0]);
        }
コード例 #4
0
        public void ShouldHandleFatalException()
        {
            var causeException = new Exception();
            var evt = new StubEvent(0);

            var exceptionHandler = new FatalExceptionHandler();

            try
            {
                exceptionHandler.HandleEventException(causeException, 0L, evt);
            }
            catch (Exception ex)
            {
                Assert.AreEqual(causeException, ex.InnerException);
            }
        }
コード例 #5
0
        public void ShouldClaimAndGetWithTimeout()
        {
            Assert.AreEqual(Sequencer.InitialCursorValue, _ringBuffer.Cursor);

            var expectedEvent = new StubEvent(2701);

            long claimSequence = _ringBuffer.Next();
            StubEvent oldEvent = _ringBuffer[claimSequence];
            oldEvent.Copy(expectedEvent);
            _ringBuffer.Publish(claimSequence);

            long sequence = _sequenceBarrier.WaitFor(0, TimeSpan.FromMilliseconds(5));
            Assert.AreEqual(0, sequence);

            var evt = _ringBuffer[sequence];
            Assert.AreEqual(expectedEvent, evt);

            Assert.AreEqual(0L, _ringBuffer.Cursor);
        }
コード例 #6
0
        public void ShouldClaimAndGet()
        {
            Assert.AreEqual(Sequencer.InitialCursorValue, _ringBuffer.Cursor);

            var expectedEvent = new StubEvent(2701);

            var claimSequence = _ringBuffer.Next();
            var oldEvent = _ringBuffer[claimSequence];
            oldEvent.Copy(expectedEvent);
            _ringBuffer.Publish(claimSequence);

            long sequence = _sequenceBarrier.WaitFor(0);
            Assert.AreEqual(0, sequence);

            StubEvent evt = _ringBuffer[sequence];
            Assert.AreEqual(expectedEvent, evt);

            Assert.AreEqual(0L, _ringBuffer.Cursor);
        }
コード例 #7
0
 public void Copy(StubEvent evt)
 {
     Value = evt.Value;
 }
コード例 #8
0
ファイル: StubEvent.cs プロジェクト: Xamarui/Disruptor-net
 public void Copy(StubEvent evt)
 {
     Value = evt.Value;
 }
コード例 #9
0
ファイル: StubEvent.cs プロジェクト: Xamarui/Disruptor-net
 public bool Equals(StubEvent other)
 {
     if (ReferenceEquals(null, other)) return false;
     if (ReferenceEquals(this, other)) return true;
     return other.Value == Value;
 }