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; }
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); }