import java.util.Vector;

/**
 * Each device in the system will have a DeviceDescriptor that contains its name
 * and a queue on which processes performing I/O on the device can be blocked.
 *  
 * @author Grant Braught
 * @author Dickinson College
 * @version Mar 4, 2005
 */

class DeviceDescriptor {

    private String name;

    private Vector blocked;

    public DeviceDescriptor(String name) {
        this.name = name;
        blocked = new Vector(5, 5);
    }

    public void block(ProcessDescriptor proc) {
        blocked.add(proc);
    }

    public ProcessDescriptor unblock() {
        return (ProcessDescriptor) (blocked.remove(0));
    }

    /*
     * Needed so that DeviceDescriptors can be put in a Hashtable.
     */
    public boolean equals(Object o) {
        return name.equals(((DeviceDescriptor) o).name);
    }
}
