/** * Title: Data Transfer/Routing Simulation

* Description:

* Copyright: Copyright (c) Aaron Morris

* Company: CS522

* @author Aaron Morris * @version 1.0 */ //package datasend; public class DataHandler { protected boolean Idle; // Is Idle? protected int Delay; // Propogation Delay protected int ID; // ID Assigned to each DataHandler protected int CurrentLoad; // Current Load on DataHandler protected String Name; // Name of DataHandler protected Stats stats; // Pointer to Stats object protected MessageQueue requests; // Personal MessageQueue protected Channel srcChannel; // Channel leading from DH to Director protected Channel destChannel; // Channel leading from Director to DH protected RandNum randGen; // Pointer to RandNum object protected EventQueue eventList; // Pointer to Event List // Placeholding Constructor public DataHandler() {} // Constructor public DataHandler(String Name, ClientQueue c, ServerQueue s, RandNum r, EventQueue eq) { Idle = true; this.Name = Name; this.eventList = eq; requests = new MessageQueue(); randGen = r; } // General Purpose Methods public void receive(int T, Message m) { System.out.print("DHandler Receive"); } public Message send() { return requests.deQueue(); } public void SetSrcChannel(Channel c) { srcChannel = c; } public void SetDestChannel(Channel c) { destChannel = c; } public int getDelay() { return Delay; } public Channel getSrcChannel() { return srcChannel; } public Channel getDestChannel() { return destChannel; } public RequestEvent genRequest(int Time) { return null; } public int getID() { return this.ID; } public String getName() { return Name; } public int getQueueLength() { return this.requests.getNumQueued(); } public void setIdle() { this.Idle = true; } public void setBusy() { this.Idle = false; } public boolean isIdle() { return this.Idle; } public int getCurrentLoad() { return CurrentLoad; } public void setCurrentLoad(int x) { CurrentLoad = x; } public ResponseEvent genResponse(int Time,Message m) { return null; } // Generate a Transfer Event public TransferEvent genTransfer(int time, Message m) { TransferEvent TE = new TransferEvent("TO",time + srcChannel.getDelay(m.getHeaderSize()), m,this,srcChannel); return TE; } }