You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by jm...@apache.org on 2002/11/19 21:42:26 UTC

cvs commit: xml-axis/java/src/org/apache/axis/ime/internal/util KeyedBuffer.java NonPersistentKeyedBuffer.java

jmsnell     2002/11/19 12:42:26

  Modified:    java/src/org/apache/axis/ime/internal/util KeyedBuffer.java
                        NonPersistentKeyedBuffer.java
  Log:
  
  
  Revision  Changes    Path
  1.2       +5 -0      xml-axis/java/src/org/apache/axis/ime/internal/util/KeyedBuffer.java
  
  Index: KeyedBuffer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/util/KeyedBuffer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- KeyedBuffer.java	29 Oct 2002 05:15:30 -0000	1.1
  +++ KeyedBuffer.java	19 Nov 2002 20:42:26 -0000	1.2
  @@ -83,6 +83,11 @@
       public Object peek();
   
       /**
  +     * Select, but do not remove all messages on the 
  +     * channel.  This method will not block.
     */
  +    public Object[] peekAll();
  +
  +    /**
        * Put a message onto the channel
        */
       public void put(
  
  
  
  1.3       +50 -0     xml-axis/java/src/org/apache/axis/ime/internal/util/NonPersistentKeyedBuffer.java
  
  Index: NonPersistentKeyedBuffer.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/util/NonPersistentKeyedBuffer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NonPersistentKeyedBuffer.java	29 Oct 2002 23:33:40 -0000	1.2
  +++ NonPersistentKeyedBuffer.java	19 Nov 2002 20:42:26 -0000	1.3
  @@ -60,6 +60,7 @@
   import org.apache.commons.logging.Log;
   
   import java.util.Vector;
  +import java.util.Iterator;
   
   /**
    * Creates a non-persistent KeyedBuffer.  Queued messages
  @@ -95,6 +96,28 @@
           }
       }
   
  +
  +    public Object[] peekAll() {
  +        if (log.isDebugEnabled()) {
  +            log.debug("Enter: KeyedBuffer::selectAll");
  +        }
  +        Vector v = new Vector();
  +        KeyedNode node = null;
  +        synchronized (messages) {
  +            for (Iterator i = messages.iterator(); i.hasNext();) {
  +              v.add(i.next());
  +            }
  +        }
  +        Object[] objects = new
  +                Object[v.size()];
  +        v.copyInto(objects);
  +        if (log.isDebugEnabled()) {
  +            log.debug("Exit: KeyedBuffer::selectAll");
  +        }
  +        return objects;
  +    }
  +
  +
       public void put(
               Object key,
               Object object) {
  @@ -367,6 +390,33 @@
               return node;
           }
   
  +        protected Iterator iterator() {
  +          return new KeyedQueueIterator(head);
  +        }
       }
   
  +    protected static class KeyedQueueIterator
  +      implements Iterator {
  +        protected KeyedNode current;
  +        protected KeyedNode next;
  +        public KeyedQueueIterator(KeyedNode node) {
  +          this.next = node;
  +        }
  +        
  +        public boolean hasNext() {
  +          return (next != null);
  +        }
  +
  +        public Object next() {
  +          KeyedNode node = null;
  +          if (next != null) {
  +            node = next.next;
  +          }
  +          current = next;
  +          next = node;
  +          return current;
  +        }
  +
  +        public void remove() {}
  +    }
   }