package network;

import java.util.Vector;

/**
 * Queue Klasse
 * beinhaltet Objekt die gesendet werden sollen, od. aus dem
 *  Netzwerk gekommen sind u. verwaltet sie in einer Queue
 */
public class Queue extends Vector{

	/**
	 * Default Konstruktor
	 */
	public Queue(){}
	
	/**
	 * Fügt ein Element in die Queue ein
	 * @param o Objekt das hinzugefügt werden soll
	 */
	public void enqueue(Object o){
	 this.add(o);	
	}
	
	/**
	 * Fügt ein Element an der ersten Stelle in die Queue ein
	 * @param o Objekt das hinzugefügt werden soll
	 */
	public void enqueueFirst(Object o){
	 this.add(0,o);	
	}

	/**
	 * liefert das vorderste Objekt aus der Queue u. löscht es 
	 * @return erstes Objekt aus der Queue
	 */
	public Object dequeue(){
	 Object o = this.firstElement();
	 this.remove(0);
	 return o;	
	}

	/**
	 * liefert das vorderste Objekt aus der Queue
	 * @return erstes Objekt aus der Queue
	 */
	public Object peek(){
	 return this.firstElement();	
	}
}
