package schedframe.scheduling.queue; import gridsim.Gridlet; import gssim.schedframe.scheduling.queues.AbstractStatsSupportingQueue; import org.joda.time.DateTime; import schedframe.scheduling.tasks.WorkloadUnit; public class TaskQueue extends AbstractStatsSupportingQueue implements Queue{ private static final long serialVersionUID = 6576299222910508209L; protected String name; protected int priority; protected boolean supportReservation; public TaskQueue (boolean supportReservation){ name = "Queue"; priority = 0; this.supportReservation = supportReservation; } public boolean add(WorkloadUnit wu){ try { wu.setStatus(Gridlet.QUEUED); } catch(Exception e){ throw new RuntimeException(e); } //updateStats(); return super.add(wu); } public void add(int pos, WorkloadUnit wu){ try { wu.setStatus(Gridlet.QUEUED); } catch(Exception e){ throw new RuntimeException(e); } //updateStats(); super.add(pos, wu); } public DateTime getArrivalTime(int pos) throws IndexOutOfBoundsException { //return get(pos).getSubmissionTimeToBroker(); return null; } public String getName() { return name; } public int getPriority() { return priority; } public void setName(String name) { this.name = name; } public void setPriority(int priority) { this.priority = priority; } public boolean supportReservations() { return supportReservation; } /*public boolean contains (WorkloadUnitInterface wu) { for(int i = 0; i< size();i++){ try { if(get(i).getId().equals(wu.getId())) return true; } catch (NoSuchFieldException e) { return false; } } return false; } public boolean remove (WorkloadUnitInterface wu) { boolean found = false; int index = 0; for(int i = 0; i< size() && !found;i++){ try { if(get(i).getId().equals(wu.getId())) { found = true; index = i; } } catch (NoSuchFieldException e) { return false; } } remove(index); return true; }*/ }