org.apache.manifoldcf.crawler.system
Class DocumentCleanupQueue

java.lang.Object
  extended by org.apache.manifoldcf.crawler.system.DocumentCleanupQueue

public class DocumentCleanupQueue
extends java.lang.Object

This class describes a cleanup 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.


Field Summary
static java.lang.String _rcsid
           
protected  java.util.ArrayList queue
           
 
Constructor Summary
DocumentCleanupQueue()
          Constructor.
 
Method Summary
 void addDocuments(DocumentCleanupSet dd)
          Add a document set to the queue.
 boolean checkIfEmpty(int n)
          Check if "empty".
 void clear()
          Clear.
 DocumentCleanupSet getDocuments()
          Pull a document set off the queue, and wait if there is nothing there.
 void reset()
          Wake up all threads waiting on this queue.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_rcsid

public static final java.lang.String _rcsid
See Also:
Constant Field Values

queue

protected java.util.ArrayList queue
Constructor Detail

DocumentCleanupQueue

public DocumentCleanupQueue()
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. This is only used on 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.

addDocuments

public void addDocuments(DocumentCleanupSet dd)
Add a document set to the queue. This will be a set of n documents (where n is some chunk size set by experiment).

Parameters:
dd - is the document set.

getDocuments

public DocumentCleanupSet getDocuments()
                                throws java.lang.InterruptedException
Pull a document set off the queue, and wait if there is nothing there.

Returns:
the document.
Throws:
java.lang.InterruptedException