jstrachan 01/05/06 09:50:24 Modified: threading/src/java/org/apache/commons/threading FIFONotifier.java FIFOQueue.java LIFOQueue.java Notifier.java Queue.java Log: Used more JCF based names for methods in the Queue and Notifier interfaces and implementations. Now using add(), remove() and size(). Also added a simple removeNoWait() helper method which does not throw any exceptions but just returns null if there is no available object. Revision Changes Path 1.2 +7 -7 jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFONotifier.java Index: FIFONotifier.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFONotifier.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FIFONotifier.java 2001/04/15 00:50:58 1.1 +++ FIFONotifier.java 2001/05/06 16:50:22 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFONotifier.java,v 1.1 2001/04/15 00:50:58 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2001/04/15 00:50:58 $ + * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFONotifier.java,v 1.2 2001/05/06 16:50:22 jstrachan Exp $ + * $Revision: 1.2 $ + * $Date: 2001/05/06 16:50:22 $ * * ==================================================================== * @@ -73,7 +73,7 @@ * in JavaWorld (09/1998 - 04/1999) by Allen Holub. * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/04/15 00:50:58 $ + * @version $Revision: 1.2 $ $Date: 2001/05/06 16:50:22 $ * @see Notifier */ @@ -150,9 +150,9 @@ /** * Return the number of deliveries that are queued, but not yet completed. */ - public int getCount() { + public int size() { - return (entries.getCount()); + return (entries.size()); } @@ -225,7 +225,7 @@ */ public void send(Subscriber subscriber, Object published) { - entries.enqueue(new FIFONotifierEntry(subscriber, published)); + entries.add(new FIFONotifierEntry(subscriber, published)); } @@ -253,7 +253,7 @@ FIFONotifierEntry entry = null; try { - entry = (FIFONotifierEntry) entries.dequeue(); + entry = (FIFONotifierEntry) entries.remove(); } catch (InterruptedException e) { break; // stop() was called } 1.2 +22 -8 jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFOQueue.java Index: FIFOQueue.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFOQueue.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FIFOQueue.java 2001/04/15 00:50:57 1.1 +++ FIFOQueue.java 2001/05/06 16:50:22 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFOQueue.java,v 1.1 2001/04/15 00:50:57 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2001/04/15 00:50:57 $ + * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/FIFOQueue.java,v 1.2 2001/05/06 16:50:22 jstrachan Exp $ + * $Revision: 1.2 $ + * $Date: 2001/05/06 16:50:22 $ * * ==================================================================== * @@ -73,7 +73,7 @@ * in JavaWorld (09/1998 - 04/1999) by Allen Holub.</p> * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/04/15 00:50:57 $ + * @version $Revision: 1.2 $ $Date: 2001/05/06 16:50:22 $ * @see Queue */ @@ -109,7 +109,7 @@ /** * Return the number of objects currently available in the queue. */ - public int getCount() { + public int size() { return (queue.size()); @@ -135,10 +135,10 @@ * * @exception InterruptedException if the waiting thread is interrupted */ - public Object dequeue() throws InterruptedException { + public Object remove() throws InterruptedException { try { - return (dequeue(Long.MAX_VALUE)); + return (remove(Long.MAX_VALUE)); } catch (TimeoutException e) { return (null); // Cannot happen } @@ -158,7 +158,7 @@ * @exception TimeoutException if a timeout occurs before an object * becomes available */ - public Object dequeue(long timeout) + public Object remove(long timeout) throws InterruptedException, TimeoutException { counter.acquire(timeout); @@ -170,6 +170,20 @@ } + /** + * Return the "next" available object from the queue without waiting or + * returning null if there is no object available. + */ + public Object removeNoWait() { + Object value = null; + synchronized (queue) { + if ( ! queue.isEmpty() ) { + value = queue.removeFirst(); + } + } + return value; + } + /** * Add a new available object to the queue, making it available to any @@ -177,7 +191,7 @@ * * @param object The new object to be added */ - public void enqueue(Object object) { + public void add(Object object) { synchronized (queue) { queue.addLast(object); 1.2 +22 -8 jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/LIFOQueue.java Index: LIFOQueue.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/LIFOQueue.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LIFOQueue.java 2001/04/15 00:50:58 1.1 +++ LIFOQueue.java 2001/05/06 16:50:23 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/LIFOQueue.java,v 1.1 2001/04/15 00:50:58 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2001/04/15 00:50:58 $ + * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/LIFOQueue.java,v 1.2 2001/05/06 16:50:23 jstrachan Exp $ + * $Revision: 1.2 $ + * $Date: 2001/05/06 16:50:23 $ * * ==================================================================== * @@ -73,7 +73,7 @@ * in JavaWorld (09/1998 - 04/1999) by Allen Holub.</p> * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/04/15 00:50:58 $ + * @version $Revision: 1.2 $ $Date: 2001/05/06 16:50:23 $ * @see Queue */ @@ -109,7 +109,7 @@ /** * Return the number of objects currently available in the queue. */ - public int getCount() { + public int size() { return (queue.size()); @@ -135,10 +135,10 @@ * * @exception InterruptedException if the waiting thread is interrupted */ - public Object dequeue() throws InterruptedException { + public Object remove() throws InterruptedException { try { - return (dequeue(Long.MAX_VALUE)); + return (remove(Long.MAX_VALUE)); } catch (TimeoutException e) { return (null); // Cannot happen } @@ -158,7 +158,7 @@ * @exception TimeoutException if a timeout occurs before an object * becomes available */ - public Object dequeue(long timeout) + public Object remove(long timeout) throws InterruptedException, TimeoutException { counter.acquire(timeout); @@ -170,6 +170,20 @@ } + /** + * Return the "next" available object from the queue without waiting or + * returning null if there is no object available. + */ + public Object removeNoWait() { + Object value = null; + synchronized (queue) { + if ( ! queue.isEmpty() ) { + value = queue.removeLast(); + } + } + return value; + } + /** * Add a new available object to the queue, making it available to any @@ -177,7 +191,7 @@ * * @param object The new object to be added */ - public void enqueue(Object object) { + public void add(Object object) { synchronized (queue) { queue.addLast(object); 1.2 +4 -4 jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Notifier.java Index: Notifier.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Notifier.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Notifier.java 2001/04/15 00:50:58 1.1 +++ Notifier.java 2001/05/06 16:50:23 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Notifier.java,v 1.1 2001/04/15 00:50:58 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2001/04/15 00:50:58 $ + * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Notifier.java,v 1.2 2001/05/06 16:50:23 jstrachan Exp $ + * $Revision: 1.2 $ + * $Date: 2001/05/06 16:50:23 $ * * ==================================================================== * @@ -72,7 +72,7 @@ * in JavaWorld (09/1998 - 04/1999) by Allen Holub.</p> * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/04/15 00:50:58 $ + * @version $Revision: 1.2 $ $Date: 2001/05/06 16:50:23 $ * @see Publisher * @see Subscriber */ @@ -86,7 +86,7 @@ /** * Return the number of deliveries that are queued, but not yet completed. */ - public int getCount(); + public int size(); /** 1.2 +15 -8 jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Queue.java Index: Queue.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Queue.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Queue.java 2001/04/15 00:50:58 1.1 +++ Queue.java 2001/05/06 16:50:23 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Queue.java,v 1.1 2001/04/15 00:50:58 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2001/04/15 00:50:58 $ + * $Header: /home/cvs/jakarta-commons-sandbox/threading/src/java/org/apache/commons/threading/Queue.java,v 1.2 2001/05/06 16:50:23 jstrachan Exp $ + * $Revision: 1.2 $ + * $Date: 2001/05/06 16:50:23 $ * * ==================================================================== * @@ -68,11 +68,12 @@ * ordering are characteristics of specific implementations of this * interface.</p> * - * <p>This code was inspired by the "Java Threads in the Real Wrold" series + * <p>This code was inspired by the "Java Threads in the Real World" series * in JavaWord (09/1998 - 04/1999) by Allen Holub.</p> * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/04/15 00:50:58 $ + * @author James Strachan + * @version $Revision: 1.2 $ $Date: 2001/05/06 16:50:23 $ */ public interface Queue { @@ -84,7 +85,7 @@ /** * Return the number of objects currently available in the queue. */ - public int getCount(); + public int size(); /** @@ -102,7 +103,7 @@ * * @exception InterruptedException if the waiting thread is interrupted */ - public Object dequeue() throws InterruptedException; + public Object remove() throws InterruptedException; /** @@ -117,9 +118,15 @@ * @exception TimeoutException if a timeout occurs before an object * becomes available */ - public Object dequeue(long timeout) + public Object remove(long timeout) throws InterruptedException, TimeoutException; + /** + * Return the "next" available object from the queue without waiting or + * returning null if there is no object available. + */ + public Object removeNoWait(); + /** * Add a new available object to the queue, making it available to any @@ -127,7 +134,7 @@ * * @param object The new object to be added */ - public void enqueue(Object object); + public void add(Object object); /**