亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? network.java

?? DTNSim2 is a simulator for Delay-Tolerant Networks (DTNs) written in Java. It is based on Sushant Ja
?? JAVA
字號(hào):
/** * simulator/Network.java */package simulator;import implementations.SimpleContact;import implementations.SimpleNode;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.lang.reflect.Constructor;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import util.CommandStatus;import util.Verbose;/** *  */public class Network extends Simulator{	private TrafficGenerator traffic = null;	private Node defaultNode = null;	private Constructor newNodeConstructor = null;	private Contact defaultContact = null;	private Constructor newContactConstructor = null;	private HashMap<String, Node> nodes = new HashMap<String, Node>();	private HashMap<String, Contact> contacts = new HashMap<String, Contact>();	private Stats stats = new Stats(this);	private int nextMessageId = 1;	private int nextRoutingMessageId = 1;	public Network()	{		setDefaultNode(new SimpleNode());		setDefaultContact(new SimpleContact());		setTrafficGenerator(new TrafficGenerator());	}	public Stats stats()	{		return stats;	}	public int getNextMessageId()	{		if (vShouldLog(Verbose.DEBUG5))			vprint("USED_MSG_ID: " + nextMessageId);		return nextMessageId++;	}	public int getNextRoutingMessageId()	{		if (vShouldLog(Verbose.DEBUG5))			vprint("USED_R_MSG_ID: " + nextRoutingMessageId);		return nextRoutingMessageId++;	}	public Iterator<Node> getAllNodes()	{		if (nodes == null)			return (new ArrayList<Node>()).iterator();		return nodes.values().iterator();	}	public Node getDefaultNode()	{		return defaultNode;	}	public Node getNode(String nodeName)	{		String tmpN = nodeName.toLowerCase();		Node n = nodes.get(tmpN);		if (n == null)		{			Throwable t;			try			{				n = (Node) newNodeConstructor.newInstance(new Object[] { defaultNode });			}			catch (InstantiationException e)			{				if (e.getCause() == null)					t = e;				else					t = e.getCause();				// Rethrow with a friendly message				// Did I mention that I hate checked exceptions?				// TODO: We could use Bruce Eckel's ExceptionAdapter to preserve				// the stack:				// http://www.mindview.net/Etc/Discussions/CheckedExceptions				throw new RuntimeException("Constructing the node failed: " + t);			}			catch (IllegalAccessException e)			{				if (e.getCause() == null)					t = e;				else					t = e.getCause();				throw new RuntimeException("Constructing the node failed: " + t);			}			catch (java.lang.reflect.InvocationTargetException e)			{				if (e.getCause() == null)					t = e;				else					t = e.getCause();				throw new RuntimeException("Constructing the node failed: " + t);			}			n.initNode();			n.setName(nodeName);			nodes.put(tmpN, n);			if (vShouldLog(Verbose.DEBUG1))				vprint("CREATED: " + n);			return n;		}		return n;	}	public Contact getDefaultContact()	{		return defaultContact;	}	public Iterator<Contact> getAllContacts()	{		if (contacts == null)			return (new ArrayList<Contact>()).iterator();		return contacts.values().iterator();	}	// This will not create new contact if one does not exist,	// the other getContact versions will	public Contact getContact(String contactName)	{		return contacts.get(contactName.toLowerCase());	}	public Contact getContact(String a, String b)	{		return getContact(a, b, null);	}	public Contact getContact(String cNameA, String cNameB, String cNameC)	{		String cName;		if (cNameC == null || cNameC.length() < 1)		{			cName = cNameA + "->" + cNameB;		}		else		{			cName = cNameA + "->" + cNameB + ":" + cNameC;		}		String tmpC = cName.toLowerCase();		Contact c = contacts.get(tmpC);		if (c == null)		{			Throwable t;			try			{				c = (Contact) newContactConstructor.newInstance(new Object[] { defaultContact });			}			catch (InstantiationException e)			{				if (e.getCause() == null)					t = e;				else					t = e.getCause();				throw new RuntimeException("Constructing the contact failed: " + t);			}			catch (IllegalAccessException e)			{				if (e.getCause() == null)					t = e;				else					t = e.getCause();				throw new RuntimeException("Constructing the contact failed: " + t);			}			catch (java.lang.reflect.InvocationTargetException e)			{				if (e.getCause() == null)					t = e;				else					t = e.getCause();				throw new RuntimeException("Constructing the contact failed: " + t);			}			assert c != null;			c.setName(cName);			Node src = getNode(cNameA);			c.setSource(src);			c.setDest(getNode(cNameB));			src.addContact(c);			contacts.put(tmpC, c);			if (vShouldLog(Verbose.DEBUG1))				vprint("CREATED: " + c);			return c;		}		return c;	}	public CommandStatus parseLocalCommand(String cmd, ArrayList<ArrayList<String>> args, String parentPath)	{		if (cmd.equals("network_element"))		{			String ret = setElementType(args);			if (ret != null)				return new CommandStatus(ret);			return new CommandStatus(CommandStatus.COMMAND_OK);		}		else if (cmd.equals("traffic") || cmd.equals("default_traffic"))		{			assert traffic != null;			return traffic.parseLocalCommand(cmd, args, parentPath);		}		else if (cmd.equals("stats"))		{			assert stats != null;			return stats.parseLocalCommand(cmd, args, parentPath);		}		else if (cmd.equals("simulator"))		{			if (args.size() < 1 || args.get(0).size() != 2 || !args.get(0).get(0).equals("notify_step"))			{				return new CommandStatus("Wrong simulator command");			}			else			{				try				{					setTimeNotifyStep(Double.parseDouble(args.get(0).get(1)));					return new CommandStatus(CommandStatus.COMMAND_OK);				}				catch (NumberFormatException e)				{					return new CommandStatus("Error parsing value of parameter '" + args.get(0).get(0) + "': " + e);				}			}		}		else if (cmd.equals("network_graph"))		{			if (args.size() != 1 || args.get(0).size() != 2 || !args.get(0).get(0).equals("file"))			{				return new CommandStatus("You have to give file=filename parameter for network_graph command!");			}			File outputFile = new File(parentPath, args.get(0).get(1));			if (outputFile.exists())			{				return new CommandStatus("File '" + args.get(0).get(1) + "' exists.");			}			BufferedWriter output = null;			try			{				output = new BufferedWriter(new FileWriter(outputFile, true));			}			catch (IOException e)			{				return new CommandStatus("Error opening file '" + outputFile + "' for writing/appending: " + e);			}			try			{				output.append("graph G {\n");				Iterator<Node> i1 = nodes.values().iterator();				HashSet<Node> nDone = new HashSet<Node>();				while (i1.hasNext())				{					Node n1 = i1.next();					Iterator<Contact> i2 = n1.getContacts();					while (i2.hasNext())					{						Node n2 = i2.next().getDest();						if (!nDone.contains(n2))						{							output.append("\t" + n1.getName() + " -- " + n2.getName() + ";\n");						}					}					nDone.add(n1);				}				output.append("}\n");			}			catch (IOException e)			{				return new CommandStatus("Error writing to file '" + outputFile + "': " + e);			}			try			{				output.close();			}			catch (IOException e)			{				return new CommandStatus("Error closing file '" + outputFile + "' after writing: " + e);			}			return new CommandStatus(CommandStatus.COMMAND_OK);		}		return null;	}	public void setDefaultContact(Contact dC)	{		defaultContact = dC;		dC.setNetwork(this);		try		{			newContactConstructor = dC.getClass().getConstructor(new Class[] { dC.getClass() });		}		catch (NoSuchMethodException e)		{			throw new RuntimeException("Could not create new constructor for specified class '"					+ dC.getClass().getName() + "': " + e);		}		assert newContactConstructor != null;	}	public void setDefaultNode(Node dN)	{		assert dN != null;		if (defaultNode != null)			defaultNode.defaultUnload();		defaultNode = dN;		dN.setNetwork(this);		Constructor newConstr = null;		try		{			newConstr = dN.getClass().getConstructor(new Class[] { dN.getClass() });		}		catch (NoSuchMethodException e)		{			throw new RuntimeException("Could not get the constructor for specified class '" + dN.getClass().getName()					+ "': " + e);		}		assert newConstr != null;		newNodeConstructor = newConstr;		defaultNode.defaultLoad();		return;	}	public void setTrafficGenerator(TrafficGenerator tg)	{		assert tg != null;		traffic = tg;		traffic.setNetwork(this);		return;	}	public String setElementType(ArrayList<ArrayList<String>> cmd)	{		if (cmd.size() < 1)		{			return "Error! Command network_element needs parameters!";		}		Class newType = null;		for (int i = 0, sz = cmd.size(); i < sz; ++i)		{			if (cmd.get(i).size() != 2)			{				return "Error! Command needs parameters with single values!";			}			try			{				newType = Class.forName(cmd.get(i).get(1));			}			catch (ClassNotFoundException e)			{				throw new IllegalArgumentException("Specified class not found: " + e.getMessage());			}			assert newType != null;			Object newDefault = null;			try			{				newDefault = newType.newInstance();			}			catch (Exception e)			{				throw new RuntimeException("Could not create new instance of specified class '" + newType.getName()						+ "': " + e);			}			assert newDefault != null;			if (cmd.get(i).get(0).equals("node"))			{				if (!Node.class.isAssignableFrom(newType))				{					return "simulator.Node can not be assigned from specified class '" + newType + "'!";				}				setDefaultNode((Node) newDefault);				if (vShouldLog(Verbose.DEBUG1))					vprint("NEW_NODE_CLASS: " + cmd.get(i).get(1));			}			else if (cmd.get(i).get(0).equals("contact"))			{				if (!Contact.class.isAssignableFrom(newType))				{					return "simulator.Contact can not be assigned from specified class '" + newType + "'!";				}				setDefaultContact((Contact) newDefault);				if (vShouldLog(Verbose.DEBUG1))					vprint("NEW_CONTACT_CLASS: " + cmd.get(i).get(1));			}			else if (cmd.get(i).get(0).equals("traffic_generator"))			{				if (!TrafficGenerator.class.isAssignableFrom(newType))				{					return "simulator.TrafficGenerator can not be assigned from specified class '" + newType + "'!";				}				setTrafficGenerator((TrafficGenerator) newDefault);				if (vShouldLog(Verbose.DEBUG1))					vprint("NEW_TRAFFIC_GEN_CLASS: " + cmd.get(i).get(1));			}			else			{				return "Unknown default element type: '" + cmd.get(i).get(0) + "'!";			}		}		return null;	}}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美男男青年gay1069videost | 91精品国产综合久久久久久漫画| 3atv一区二区三区| 精品婷婷伊人一区三区三| 美女免费视频一区二区| 国产精品人妖ts系列视频| 欧美肥妇毛茸茸| 成人av动漫在线| 精品中文字幕一区二区| 亚洲永久精品大片| 亚洲国产成人自拍| 日韩午夜激情免费电影| 欧美日韩一区 二区 三区 久久精品| 国产一区二区美女| 日韩激情视频网站| 亚洲欧美另类图片小说| 日本一区二区成人| 精品国产乱码久久久久久浪潮| 欧美日韩一区中文字幕| 成人h动漫精品一区二区| 精品无人码麻豆乱码1区2区 | 日本韩国一区二区三区视频| 亚洲五码中文字幕| 国产精品一区二区三区网站| 4438成人网| 成人午夜精品一区二区三区| 成人免费电影视频| 欧美专区日韩专区| 欧美网站大全在线观看| 欧美美女直播网站| 久久综合色鬼综合色| 国产欧美日韩麻豆91| 久久久久久久av麻豆果冻| 久久久久国色av免费看影院| 久久精品一区八戒影视| 3atv在线一区二区三区| 色狠狠一区二区| 不卡的电视剧免费网站有什么| 亚洲第一会所有码转帖| 精品国产一区二区三区不卡| 欧美日韩在线播放三区| 91视频在线看| 午夜精品久久久久久久久久久| www.日本不卡| 国产成人av电影在线| 国产精品一区专区| 国产成人免费av在线| 国产成人精品在线看| 国产二区国产一区在线观看| 国产精品一区二区男女羞羞无遮挡| 美女www一区二区| 麻豆国产精品777777在线| 免费在线一区观看| 奇米精品一区二区三区四区| 免费一级片91| 狠狠色丁香久久婷婷综合_中 | 欧美激情一区在线| 欧美国产日韩a欧美在线观看| 久久麻豆一区二区| 国产精品理论片在线观看| 国产精品网曝门| 自拍偷拍亚洲激情| 亚洲成va人在线观看| 丝袜美腿成人在线| 激情图区综合网| 成人免费电影视频| 欧美怡红院视频| 欧美午夜免费电影| 一区二区在线看| 国产成人精品综合在线观看 | 国产一区91精品张津瑜| 狠狠色综合日日| 中文字幕第一页久久| 国产精品亲子伦对白| 精品一区二区在线播放| 欧美精品v国产精品v日韩精品| 亚洲精品国产精华液| 色婷婷精品久久二区二区蜜臂av | 一区二区三区四区在线免费观看| 一区二区三区四区不卡在线 | 精品免费99久久| 国产亚洲福利社区一区| 亚洲曰韩产成在线| 日韩经典一区二区| 国产精品激情偷乱一区二区∴| 成人免费在线视频| 午夜精品久久一牛影视| 国产精品一区在线观看你懂的| 色94色欧美sute亚洲13| 欧美mv日韩mv亚洲| 一区二区三区在线视频免费| 国产自产v一区二区三区c| 色视频欧美一区二区三区| 日韩美女视频一区二区在线观看| 亚洲丝袜精品丝袜在线| 久久91精品久久久久久秒播| 91色在线porny| 久久久久久久综合日本| 亚洲综合激情另类小说区| 国产一区二区福利视频| 欧美亚洲精品一区| 国产精品久久久久久久久晋中| 日韩精品成人一区二区在线| av成人动漫在线观看| 精品久久久久久久一区二区蜜臀| 一区二区三区在线观看欧美 | 国产在线精品一区二区夜色| 91官网在线观看| 国产精品麻豆久久久| 免费在线欧美视频| 欧美怡红院视频| 一色屋精品亚洲香蕉网站| 久久电影网站中文字幕| 久久精品二区亚洲w码| 国产精品网曝门| 久久嫩草精品久久久精品一| 一区二区三区欧美亚洲| 日韩精品高清不卡| 日韩欧美国产一二三区| 成人黄色免费短视频| 日韩电影免费在线| 夫妻av一区二区| 懂色av一区二区三区蜜臀 | 日本在线播放一区二区三区| 最新日韩在线视频| 欧美激情在线免费观看| 久久久久久麻豆| 国产精品欧美精品| 欧美变态口味重另类| 日本高清不卡在线观看| 国产乱妇无码大片在线观看| 亚洲国产综合91精品麻豆| 日韩三级在线免费观看| 99精品欧美一区二区蜜桃免费| 亚洲综合视频在线| 中文字幕一区三区| 精品久久久久香蕉网| 风间由美中文字幕在线看视频国产欧美| 日韩福利视频网| 色综合久久中文综合久久97| 亚洲视频一区二区在线| 不卡的av电影| 国产精品福利电影一区二区三区四区| 成人激情免费视频| 中文字幕一区二区视频| 色偷偷成人一区二区三区91 | 一本在线高清不卡dvd| 亚洲视频 欧洲视频| 色激情天天射综合网| 亚洲成av人片在线| 欧美一区二区三区男人的天堂| 免费在线看一区| 久久蜜桃av一区二区天堂| 丁香婷婷综合五月| 亚洲精品国产无套在线观| 欧美在线制服丝袜| 日本欧美一区二区三区| 久久亚洲精品小早川怜子| 成人av电影观看| 亚洲一区二区在线免费观看视频| 欧美午夜视频网站| 久久精品国产99久久6| 久久精品亚洲精品国产欧美kt∨| 成人激情开心网| 亚洲成人av电影在线| 精品理论电影在线| a级高清视频欧美日韩| 亚洲一区二区精品视频| 日韩久久免费av| av不卡在线播放| 成人av电影在线| 欧美一区二区三区成人| 奇米精品一区二区三区四区| 精品一区二区三区在线播放视频 | 欧美一卡2卡三卡4卡5免费| 91啪九色porn原创视频在线观看| 欧美日韩国产综合视频在线观看| 久久久久久亚洲综合影院红桃| 国产一区二区精品久久91| 色94色欧美sute亚洲13| 国产精品卡一卡二卡三| 亚洲欧美偷拍卡通变态| 国产一区二区三区久久久| 91热门视频在线观看| 亚洲色图视频免费播放| 国产成人高清视频| 精品国产一区a| 精品一区二区三区在线播放视频| 经典三级在线一区| 色就色 综合激情| 日韩久久免费av| 日本一区二区三级电影在线观看 | 亚洲欧美乱综合| 国产精品三级视频| 亚洲综合图片区| 丝袜美腿亚洲色图| 欧美日韩另类国产亚洲欧美一级| 一区二区三区丝袜| 国产精品日韩精品欧美在线| 日韩av中文字幕一区二区三区|