📄 fifonetworkstub.java
字号:
/* * @(#)$Id: FifoNetworkStub.java,v 1.6 2005/08/02 19:50:44 huebsch Exp $ * * Copyright (c) 2001-2004 Regents of the University of California. * All rights reserved. * * This file is distributed under the terms in the attached BERKELEY-LICENSE * file. If you do not find these files, copies can be found by writing to: * Computer Science Division, Database Group, Universite of California, * 617 Soda Hall #1776, Berkeley, CA 94720-1776. Attention: Berkeley License * * Copyright (c) 2003-2004 Intel Corporation. All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE file. * If you do not find these files, copies can be found by writing to: * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, * Berkeley, CA, 94704. Attention: Intel License Inquiry. */package simulator.schedulers.network.node.fifo;import java.net.InetAddress;import simulator.schedulers.network.NetworkScheduler;import simulator.schedulers.network.node.naive.NaiveNetworkStub;/** * Class FifoNetworkStub * */public class FifoNetworkStub extends NaiveNetworkStub { protected double[] nextSlot; /** * Constructor FifoNetworkStub * * @param scheduler * @param inBandwidth * @param outBandwidth * @param shareBandwidth * @param myIP */ public FifoNetworkStub(NetworkScheduler scheduler, double inBandwidth, double outBandwidth, boolean shareBandwidth, InetAddress myIP) { super(scheduler, inBandwidth, outBandwidth, shareBandwidth, myIP); nextSlot = new double[2]; for (int i = 0; i < (shareBandwidth ? 1 : 2); i++) { nextSlot[i] = 0; } } /** * Method deliveryTime * * @param direction * @param curTime * @param size * @return */ protected double deliveryTime(int direction, double curTime, int size) { double startTime = (curTime > nextSlot[direction]) ? curTime : nextSlot[direction]; double queueTime = size / getBandwidth(direction); nextSlot[direction] = startTime + queueTime; return nextSlot[direction]; } /** * Method setStatus * * @param status */ public void setStatus(boolean status) { online = status; // Remove any backlog for (int i = 0; i < (shareBandwidth ? 1 : 2); i++) { nextSlot[i] = 0; } } /** * Method getQueueDelay * * @param direction * @param curTime * @return */ public double getQueueDelay(int direction, double curTime) { double queueDelay = (nextSlot[direction] > curTime) ? nextSlot[direction] - curTime : 0; return queueDelay; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -