public static void init() { EventHandler.setController(new PullBasedPeerController()); Network.init(); OverlayFactory.init(); PeerFactory.init(); Network.init(); Message.init(); Iterator<Video> itv = Repository.getVideoIterator(); p2pOverlay = new ArrayList<Overlay>(); Servers = new ArrayList<Server>(); while (itv.hasNext()) { p2pOverlay.add(OverlayFactory.genOverlay(itv.next())); } Peer tmp = PeerFactory.genPeer(null); while (tmp != null) { Output.printP2PEvent( "Server" + tmp.getPeerID() + " created! Bandwidth:" + Utilities.displayDouble(tmp.getUploadBW())); Servers.add((Server) tmp); tmp = PeerFactory.genPeer(null); } }
public static void dropService(User who) { Iterator<Video> itvr = who.getPlayedIterator(); while (itvr.hasNext()) { getOverlay(itvr.next()).leaveOverlay(who); } who.leave(); who.getPeer().destroy(); Output.printTrack( who, "User" + who.getUserID() + " stayed in system for:" + Utilities.displayDouble(who.getLeaveTime() - who.getInitTime()) + " network overload:" + Utilities.displayPercentage(who.getPeer().networkOverload()) + "% be interrupted:" + who.getInterruptedTime() + "s"); Output.stopTracing(who); }
public static void printOverlay() { // 输出服务器繁忙率 Iterator<Server> its = Servers.iterator(); Server tmp; while (its.hasNext()) { tmp = its.next(); Output.printSTAT( "server" + tmp.getServerID() + ": percentage of busy time: " + Utilities.displayPercentage(tmp.getUtilizationRate()) + "%"); } // 输出每个Overlay信息。 Iterator<Overlay> ito = p2pOverlay.iterator(); while (ito.hasNext()) { ito.next().printInfo(); } }