Beispiel #1
0
        CompressorWriterSharedState(int numberOfCompressorThreads, int queueLimit)
        {
            this.numberOfCompressorThreads = numberOfCompressorThreads;
            queue = new OrderingQueue(queueLimit);
            activeCompressorThreads = numberOfCompressorThreads;

            eventsForProducer[(int)EventsForProducer.SpaceAppeared] = eventForNewSpaceInQueue;
            eventsForProducer[(int)EventsForProducer.Cancel]        = eventForWorkCancellation;

            eventsForConsumer[(int)EventsForConsumer.PacketAppeared]      = eventForFirstPacketInQueue;
            eventsForConsumer[(int)EventsForConsumer.ProductionCompleted] = eventForInputCompletion;
            eventsForConsumer[(int)EventsForConsumer.Cancel] = eventForWorkCancellation;
        }
Beispiel #2
0
        public void OrderedQueueTest()
        {
            var q = new OrderingQueue<string>();

            q.Enqueue(0, "Zero");
            Assert.True(q.CanDequeue);
            Assert.AreEqual("Zero",q.Dequeue());

            q.Enqueue(2, "Two");
            Assert.False(q.CanDequeue);

            q.Enqueue(3, "Three");
            Assert.False(q.CanDequeue);

            q.Enqueue(1, "One");
            Assert.True(q.CanDequeue);
            Assert.AreEqual("One",q.Dequeue());
            Assert.True(q.CanDequeue);
            Assert.AreEqual("Two",q.Dequeue());
            Assert.True(q.CanDequeue);
            Assert.AreEqual("Three",q.Dequeue());
            Assert.False(q.CanDequeue);
        }