/* -------------------------------------------------------- * * Aaron Morris * * CS567 * * Object-Oriented Event-Driven Simulation * * * * Extended SimEvent class representing Finish events in * * the simulation. * * * * -------------------------------------------------------- */ //package datasend; import java.awt.*; public class ResponseEvent extends SimEvent { // Basic Object Constructor. Initializes all Members from parameters public ResponseEvent(String ETYPE,int ToArrive,Message m,DataHandler d) { super.eventType = ETYPE; super.arrivalTime = ToArrive; super.message = m; super.sortValue = ToArrive; super.Creator = d; super.next = null; } // Override the Base SimEvent Class' Execute with specific Execute // Instructions for an Arrival Type Event public void execute(EventQueue eventList,Stats stats,int MaxFileSize, RandNum randGen) { int Time; Time = stats.getGlobalTime(); writeExecute(stats.getGlobalTime(),stats); // Schedule Transmit Event from Server To Director TransferEvent newTE = Creator.genTransfer(Time,message); eventList.enQueue(newTE); // See if Server has Outstanding Requests in Queue if (Creator.getQueueLength() > 0) { SimEvent ev; Message temp; temp = Creator.send(); ev = Creator.genResponse(Time,temp); Creator.setCurrentLoad(Creator.getCurrentLoad()-1); eventList.enQueue(ev); //stats.report.write("Message " + temp.getMsgID() + " Removed " + // "From Queue of " + Creator.getName()); } // If no outstanding requests, set server back to idle else { Creator.setIdle(); Creator.setCurrentLoad(0); } } }