Ejemplo n.º 1
0
                public CatchupAllSubscription(Guid subscriptionId,
                                              IPublisher bus,
                                              Position position,
                                              bool resolveLinks,
                                              IEventFilter eventFilter,
                                              ClaimsPrincipal user,
                                              bool requiresLeader,
                                              IReadIndex readIndex,
                                              uint?maxWindowSize,
                                              CancellationToken cancellationToken)
                {
                    if (bus == null)
                    {
                        throw new ArgumentNullException(nameof(bus));
                    }

                    if (eventFilter == null)
                    {
                        throw new ArgumentNullException(nameof(eventFilter));
                    }

                    if (readIndex == null)
                    {
                        throw new ArgumentNullException(nameof(readIndex));
                    }

                    _subscriptionId = subscriptionId;
                    _bus            = bus;
                    _nextPosition   = position == Position.End
                                                ? Position.FromInt64(readIndex.LastIndexedPosition, readIndex.LastIndexedPosition)
                                                : position;
                    _startPosition       = position == Position.End ? Position.Start : position;
                    _resolveLinks        = resolveLinks;
                    _eventFilter         = eventFilter;
                    _user                = user;
                    _requiresLeader      = requiresLeader;
                    _maxWindowSize       = maxWindowSize ?? ReadBatchSize;
                    _disposedTokenSource = new CancellationTokenSource();
                    _buffer              = new ConcurrentQueueWrapper <ResolvedEvent>();
                    _tokenRegistration   = cancellationToken.Register(_disposedTokenSource.Dispose);
                    _currentPosition     = _startPosition;
                    Log.Information("Catch-up subscription {subscriptionId} to $all:{eventFilter} running...",
                                    _subscriptionId, _eventFilter);
                }
Ejemplo n.º 2
0
        public void return_correct_counts_and_values_2()
        {
            var queue = new ConcurrentQueueWrapper <int>();

            for (int i = 1; i <= 1000; i++)
            {
                queue.Enqueue(i);
                Assert.AreEqual(i, queue.Count);
            }

            int x;

            for (int i = 1; i <= 1000; i++)
            {
                Assert.AreEqual(true, queue.TryDequeue(out x));
                Assert.AreEqual(i, x);
                Assert.AreEqual(1000 - i, queue.Count);
            }
        }
Ejemplo n.º 3
0
        public void return_correct_counts_and_values_1()
        {
            var queue = new ConcurrentQueueWrapper <int>();

            Assert.AreEqual(0, queue.Count);
            queue.Enqueue(1234);
            Assert.AreEqual(1, queue.Count);
            queue.Enqueue(12345);
            Assert.AreEqual(2, queue.Count);

            int val;

            Assert.AreEqual(true, queue.TryDequeue(out val));
            Assert.AreEqual(1234, val);
            Assert.AreEqual(1, queue.Count);

            Assert.AreEqual(true, queue.TryDequeue(out val));
            Assert.AreEqual(12345, val);
            Assert.AreEqual(0, queue.Count);

            Assert.AreEqual(false, queue.TryDequeue(out val));
            Assert.AreEqual(false, queue.TryDequeue(out val));
        }
Ejemplo n.º 4
0
        public void ConcurrentQueueWrapperEnqueueW10Threads()
        {
            QueueBase <string> queue = new ConcurrentQueueWrapper <string>();

            base.TestEnqueue(queue, 2);
        }
Ejemplo n.º 5
0
        public void ConcurrentQueueWrapperDequeueW4Threads()
        {
            QueueBase <string> queue = new ConcurrentQueueWrapper <string>();

            base.TestEnqueueDequeue(queue, 4);
        }
Ejemplo n.º 6
0
 public concurrent_queue_wrapper_with_parallel_dequeues_should()
 {
     _concurrentQueue   = new ConcurrentQueueWrapper <int>();
     _seenNegativeCount = false;
     _totalDequeued     = 0;
 }