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

📄 contact.java

📁 DTNSim2 is a simulator for Delay-Tolerant Networks (DTNs) written in Java. It is based on Sushant Ja
💻 JAVA
字号:
/** * simulator/Contact.java */package simulator;/** * A unidirectional contact between two nodes. This contact may periodically go * up and down. */public abstract class Contact extends CommandParser{	public static final int CONTACT_DOWN = 0;	public static final int CONTACT_UP = 1;	public static final int CONTACT_MSG_SENT = 2;	public static final int CONTACT_MSG_DELIVERED = 3;	protected Node srcNode = null;	protected Node dstNode = null;	protected String name = null;	protected Contact reverseContact = null;	protected Stats.StatCntEntry statCntEntry = new Stats.StatCntEntry();	public Contact()	{		super((Network) null);		useLocalEventQueue(true);	}	public Contact(Contact org)	{		super(org);		name = org.name;		srcNode = org.srcNode;		dstNode = org.dstNode;	}	public String toString()	{		return "CONTACT_'" + name + "'";	}	public void setName(String nName)	{		name = nName;	}	public String getName()	{		return name;	}	public void setSource(Node sN)	{		srcNode = sN;	}	public Node getSource()	{		return srcNode;	}	public void setDest(Node dN)	{		dstNode = dN;	}	public Node getDest()	{		return dstNode;	}	public String getReverseContactName()	{		String name = getName();		int idx1 = name.indexOf("->");		if (idx1 > 0)		{			String a = name.substring(0, idx1);			int idx2 = name.lastIndexOf(':');			if (idx2 < 0 || idx2 > idx1 + 2)			{				if (idx2 > 0)				{					return name.substring(idx1 + 2, idx2) + "->" + a + ":" + name.substring(idx2);				}				else				{					return name.substring(idx1 + 2) + "->" + a;				}			}		}		throw new RuntimeException("Contact name is incorrect: " + name);	}	public Contact getReverseContact()	{		if (reverseContact == null)		{			String revName = getReverseContactName();			if (revName != null)				reverseContact = network.getContact(revName);			if (reverseContact == null)			{				throw new RuntimeException(						"getReverseContact called for contact without its reverseContact! Called in: " + this								+ "; Checked name: " + revName);			}		}		return reverseContact;	}	public boolean abortSending()	{		return false;	}	abstract public double getLatency();	abstract public double getTransferTime(Message msg);	abstract public boolean isUp();	abstract public boolean isIdle();	abstract public boolean sendMessage(Message msg);	abstract public boolean contactUp();	abstract public boolean contactDown();}

⌨️ 快捷键说明

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