Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright 1999,2004 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.catalina.util;
A simple FIFO queue class which causes the calling thread to wait if the queue is empty and notifies threads that are waiting when it is not empty.

Author(s):
Anil V (akv@eng.sun.com)
public class Queue {
    private Vector vector = new Vector();

    
Put the object into the queue.

Parameters:
object the object to be appended to the queue.
    public synchronized void put(Object object) {
        .addElement(object);
        notify();
    }

    
Pull the first object out of the queue. Wait if the queue is empty.
    public synchronized Object pull() {
        while (isEmpty())
            try {
                wait();
            } catch (InterruptedException ex) {
            }
        return get();
    }

    
Get the first object out of the queue. Return null if the queue is empty.
    public synchronized Object get() {
        Object object = peek();
        if (object != null)
            .removeElementAt(0);
        return object;
    }

    
Peek to see if something is available.
    public Object peek() {
        if (isEmpty())
            return null;
        return .elementAt(0);
    }

    
Is the queue empty?
    public boolean isEmpty() {
        return .isEmpty();
    }

    
How many elements are there in this queue?
    public int size() {
        return .size();
    }
New to GrepCode? Check out our FAQ X