Class DocumentQueue


  • public class DocumentQueue
    extends java.lang.Object
    This class describes a document queue, which has a "stuffer" thread and many "reader" threads. The queue manages thread synchronization so that (a) the "stuffer" thread blocks until queue is empty, and (b) the "reader" threads block if queue is empty. The objects being queued are all QueuedDocumentSet objects.
    • Constructor Detail

      • DocumentQueue

        public DocumentQueue()
        Constructor.
    • Method Detail

      • reset

        public void reset()
        Wake up all threads waiting on this queue. This happens at the beginning of a reset.
      • clear

        public void clear()
        Clear the queue. This happens during a reset.
      • checkIfEmpty

        public boolean checkIfEmpty​(int n)
        Check if "empty".
        Parameters:
        n - is the low-water mark; if the number falls below this, then this method will return true.
      • addDocument

        public void addDocument​(QueuedDocumentSet dd)
        Add a document to the queue.
        Parameters:
        dd - is the document description.
      • getDocument

        public QueuedDocumentSet getDocument​(QueueTracker overlapCalculator)
                                      throws java.lang.InterruptedException
        Pull the best-rated document set off the queue, but wait if there is nothing there.
        Parameters:
        overlapCalculator - performs analysis of the document sets on the queue so that we can pick the best one.
        Returns:
        the document set.
        Throws:
        java.lang.InterruptedException