You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.0 KiB
Java

// IP.java (C) I. A. Robin, K. J. Turner 04/03/06
package protocol;
import java.util.*;
import support.*;
public class IP extends Protocol {
private IPService userA;
private IPService userB;
private IPProtocol protA;
private IPProtocol protB;
public IP() {
medium = new IPMedium();
userA = new IPService("User A");
userB = new IPService("User B");
protA = new IPProtocol(medium, "Protocol A");
protB = new IPProtocol(medium, "Protocol B");
userA.setProvider(protA);
userB.setProvider(protB);
protA.setUser(userA);
protA.setPeer(protB);
protB.setUser(userB);
protB.setPeer(protA);
entities = new Vector<ProtocolEntity>();
entities.addElement(userA);
entities.addElement(protA);
entities.addElement(medium);
entities.addElement(protB);
entities.addElement(userB);
}
public void setParameter(String param, String value) {
IPMedium ipMedium = (IPMedium)medium;
if (param.equals("misordering")) {
ipMedium.setMisordering(Boolean.valueOf(value).booleanValue());
System.out.println(param + " set: " + value);
return;
}
try {
if (param.equals("lossRate")) {
ipMedium.setLossRate(Float.valueOf(value).floatValue());
System.out.println(param + " set: " + value);
return;
}
int size = Integer.parseInt(value);
if (param.equals("userMessageSize")) {
userA.setMessageSize(size);
userB.setMessageSize(size);
System.out.println(param + " set: " + size);
return;
}
if (param.equals("maxProtocolMessageSize")) {
protA.setMaxMessageSize(size);
protB.setMaxMessageSize(size);
System.out.println(param + " set: " + size);
return;
}
if (param.equals("maxMediumMessageSize")) {
ipMedium.setMaxMessageSize(size);
System.out.println(param + " set: " + size);
return;
}
}
catch (NumberFormatException e) { // invalid number value
System.out.println(param + " number format exception: " + value);
}
}
}