⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 networkreader.java

📁 中間件開發详细说明:清华大学J2EE教程讲义(ppt)-Tsinghua University J2EE tutorial lectures (ppt) [上载源码成为会员下载此源码] [成为VIP会
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                flag = str.nextToken();     // get the optional entry                if (flag.equalsIgnoreCase("true") == true) {                    log = true;                }            }            // create a specific Router object            if (rate == true) {                router = new RateControlledRouter(name, log);            }            else {                router = new RIPRouter(name, log);            }            routerList.add(router);     // add the router into the list        }        return routerList;    }    /**     * Creates a network topology from a given buffered reader     * @param buf   a Buffered Reader object     * @return a list of Router objects or <tt>null</tt> if an error occurs     */    private static LinkedList createNetworkFIFO(BufferedReader buf)                                                throws Exception    {        if (buf == null) {            return null;        }        // create the Router objects first        LinkedList routerList = createRouter(buf, false);        int GB = 1000000000;  // 1 GB in bits        String line;        String name1, name2;        StringTokenizer str = null;        Router r1, r2;        Link tempLink = null;        // creating the linking between two routers        while ((line = buf.readLine()) != null)        {            str = new StringTokenizer(line);            if (str.hasMoreTokens() == false) {     // ignore newlines                continue;            }            // parse the name of the connected routers            name1 = str.nextToken();    // router name            if (name1.startsWith("#") == true) {    // ignore comments                continue;            }            name2 = str.nextToken();    // router name            r1 = getRouter(name1, routerList);            r2 = getRouter(name2, routerList);            if (r1 == null || r2 == null)            {                System.out.println("NetworkReader.createNetworkFIFO(): " +                    "Warning - unable to connect both "+name1+" and "+name2);                continue;            }            // get baud rate of the link            String baud = str.nextToken();       // bandwidth (Gbps)            String propDelay = str.nextToken();  // latency (in millisec)            String mtu = str.nextToken();        // link MTU (in byte)            tempLink = new SimpleLink(r1.get_name() + "_" + r2.get_name(),                    Double.parseDouble(baud) * GB,                    Double.parseDouble(propDelay), Integer.parseInt(mtu));            FIFOScheduler r1Sched = new FIFOScheduler(r1.get_name()                    + "_to_" + r2.get_name());            FIFOScheduler r2Sched = new FIFOScheduler(r2.get_name()                    + "_to_" + r1.get_name());            r1.attachRouter(r2, tempLink, r1Sched, r2Sched);        }        return routerList;    }    /**     * Creates a network topology from a given buffered reader     * @param buf   a Buffered Reader object     * @param weight    a linear array of the weights to be assigned to     *                  different classes of traffic.     * @return a list of Router objects or <tt>null</tt> if an error occurs     */    private static LinkedList createNetworkSCFQ(BufferedReader buf,                                    double[] weight) throws Exception    {        if (buf == null) {            return null;        }        // create the Router objects first        LinkedList routerList = createRouter(buf, false);        int GB = 1000000000;  // 1 GB in bits        String line;        String name1, name2;        StringTokenizer str = null;        Router r1, r2;        Link tempLink = null;        // creating the linking between two routers        while ((line = buf.readLine()) != null)        {            str = new StringTokenizer(line);            if (str.hasMoreTokens() == false) {     // ignore newlines                continue;            }            // parse the name of the connected routers            name1 = str.nextToken();    // router name            if (name1.startsWith("#") == true) {    // ignore comments                continue;            }            name2 = str.nextToken();    // router name            r1 = getRouter(name1, routerList);            r2 = getRouter(name2, routerList);            if (r1 == null || r2 == null)            {                System.out.println("NetworkReader.createNetworkSCFQ(): " +                    "Warning - unable to connect both "+name1+" and "+name2);                continue;            }            // get baud rate of the link            String baud = str.nextToken();       // bandwidth (Gbps)            String propDelay = str.nextToken();  // latency (in millisec)            String mtu = str.nextToken();        // link MTU (in byte)            tempLink = new SimpleLink(r1.get_name() + "_" + r2.get_name(),                    Double.parseDouble(baud) * GB,                    Double.parseDouble(propDelay), Integer.parseInt(mtu));            SCFQScheduler r1Sched = new SCFQScheduler(r1.get_name()                    + "_to_" + r2.get_name());            SCFQScheduler r2Sched = new SCFQScheduler(r2.get_name()                    + "_to_" + r1.get_name());            r1Sched.setWeights(weight);            r2Sched.setWeights(weight);            r1.attachRouter(r2, tempLink, r1Sched, r2Sched);        }        return routerList;    }    /**     * Creates a network topology from a given buffered reader     * @param buf   a Buffered Reader object     * @param numClass  the number of classes     * @param percentage  a linear array of bandwidth percentage to be assigned     *                    to different classes of traffic.     * @return a list of Router objects or <tt>null</tt> if an error occurs     */    private static LinkedList createNetworkRate(BufferedReader buf,                        int numClass, double[] percentage) throws Exception    {        if (buf == null) {            return null;        }        // create the Router objects first        LinkedList routerList = createRouter(buf, true);        int GB = 1000000000;  // 1 GB in bits        String line;        String name1, name2;        StringTokenizer str = null;        Router r1, r2;        Link tempLink = null;        // creating the linking between two routers        while ((line = buf.readLine()) != null)        {            str = new StringTokenizer(line);            if (str.hasMoreTokens() == false) {     // ignore newlines                continue;            }            // parse the name of the connected routers            name1 = str.nextToken();    // router name            if (name1.startsWith("#") == true) {    // ignore comments                continue;            }            name2 = str.nextToken();    // router name            r1 = getRouter(name1, routerList);            r2 = getRouter(name2, routerList);            if (r1 == null || r2 == null)            {                System.out.println("NetworkReader.createNetworkRate(): " +                    "Warning - unable to connect both "+name1+" and "+name2);                continue;            }            // get baud rate of the link            String baud = str.nextToken();       // bandwidth (Gbps)            String propDelay = str.nextToken();  // latency (in millisec)            String mtu = str.nextToken();        // link MTU (in byte)            double baud_rate = Double.parseDouble(baud) * GB;            tempLink = new SimpleLink(r1.get_name() + "_" + r2.get_name(),                                baud_rate, Double.parseDouble(propDelay),                                Integer.parseInt(mtu));            RateControlledScheduler r1Sched = new RateControlledScheduler(                r1.get_name() + "_to_" + r2.get_name(), numClass);            RateControlledScheduler r2Sched = new RateControlledScheduler(                r2.get_name() + "_to_" + r1.get_name(), numClass);            // calculates the exact rate based on the given percentage            double[] rate = new double[numClass];            for (int k = 0; k < numClass; k++) {                double value = baud_rate * percentage[k] / 100;                rate[k] = value;            }            r1Sched.setRates(rate);            r2Sched.setRates(rate);            r1.attachRouter(r2, tempLink, r1Sched, r2Sched);        }        return routerList;    }} // end class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -