class ConcurrentQ {

	public void add(Collection<I> items) {
		lock.lock();
		try {
			queue.addAll(items);
			tracker.itemsAdded(items.size());
			fillOpenProcessingSlots();
		}
		finally {
			lock.unlock();
		}
	}

	public  ConcurrentQ(String name, QCallback<I, R> callback);
	public  ConcurrentQ(QCallback<I, R> callback, Queue<I> queue, GThreadPool threadPool,
			QItemListener<I, R> listener, boolean collectResults, int maxInProgress,
			boolean jobsReportProgress);

}