Browse Source

Adds improved encapsulation possibility for Connection & Link

Andreas T. Meyer-Berg 5 years ago
parent
commit
b117eac782

+ 8 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/Connection.java

@@ -95,6 +95,7 @@ public interface Connection {
 	 *            Duration of the simulation interval in milliseconds
 	 * @return packets that were sent in this interval
 	 */
+	@Deprecated
 	public Collection<Packet> simulateTimeInterval(long startTime, long duration);
 
 	/**
@@ -107,6 +108,13 @@ public interface Connection {
 	 */
 	public Collection<Packet> getTerminationPackages(long startTime);
 
+	/**
+	 * Encapsulates the given Packets
+	 * @param packets Packets which should be encapsulated
+	 * @return Encapsulated Packets
+	 */
+	public Collection<Packet> encapsulatePackages(Collection<Packet> packets);
+	
 	/**
 	 * Returns the Protocol which is used on this Connection
 	 * 

+ 6 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/ConnectionPerformance.java

@@ -107,6 +107,12 @@ public class ConnectionPerformance implements Connection {
 		returnPackets.sort((a,b)->(Long.compare(a.getTimestamp(),b.getTimestamp())));
 		return returnPackets;
 	}
+	
+	@Override
+	public Collection<Packet> encapsulatePackages(Collection<Packet> packets) {
+		return packets;
+	}
+
 
 	@Override
 	public Collection<Packet> getTerminationPackages(long startTime) {

+ 8 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/Link.java

@@ -63,7 +63,15 @@ public interface Link {
 	 * @param duration
 	 *            Duration of the simulation interval in milliseconds
 	 */
+	@Deprecated
 	public void simulateTimeInterval(long startTime, long duration);
+	
+	/**
+	 * Encapsulates the given Packets
+	 * @param packets Packets which should be encapsulated
+	 * @return Encapsulated Packets
+	 */
+	public Collection<Packet> encapsulatePackages(Collection<Packet> packets);
 
 	/**
 	 * Returns all packets which where sent during the last Simulation time step

+ 9 - 2
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/Port.java

@@ -308,10 +308,17 @@ public class Port implements Schedulable {
 		if(connection==null || connection.getProtocol()==null || connection.getLink()==null)
 			return;
 		
+		/**
+		 * Packets of the transfer initiated by this port
+		 */
 		Collection<Packet> packets = connection.getProtocol().generateNextPackets(this, getEventTime(), false);
-		//Packets encapsulate in Connection
 		
-		//Encapsulate in Links
+		//Packets encapsulated by Connection
+		packets = connection.encapsulatePackages(packets);
+		
+		//Encapsulate packets in Links
+		packets = connection.getLink().encapsulatePackages(packets);
+		
 		connection.getLink().addPackets(packets);
 		
 		if(status==Port.SENDING)

+ 8 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/PrecisionLink.java

@@ -48,6 +48,9 @@ public class PrecisionLink implements Link {
 	 */
 	private boolean statusChanged;
 
+	/**
+	 * Delay between two devices, fixed
+	 */
 	private long fixedDelay=3;
 
 	/**
@@ -155,6 +158,11 @@ public class PrecisionLink implements Link {
 			last = packets.getLast();
 		}
 	}
+	
+	@Override
+	public Collection<Packet> encapsulatePackages(Collection<Packet> packets){
+		return packets;
+	}
 
 	@Override
 	public Collection<Packet> getPackets() {

+ 2 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/scheduler/ScheduleComparator.java

@@ -13,7 +13,8 @@ public class ScheduleComparator implements Comparator<Schedulable> {
 	@Override
 	public int compare(Schedulable o1, Schedulable o2) {
 		int res = Long.compare(o1.getEventTime(), o2.getEventTime());
-		if(res==0)//Advanced handling ? TODO: Maybe microtime ? Some random alternation or event priority
+		if(res==0)
+			//Advanced handling ? TODO: Maybe microtime ? Some random alternation or event priority
 			return 0;
 		return res;
 	}

+ 5 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/simpleImplementation/SimpleConnection.java

@@ -118,6 +118,11 @@ public class SimpleConnection implements Connection {
 		return list;
 	}
 
+	@Override
+	public Collection<Packet> encapsulatePackages(Collection<Packet> packets) {
+		return packets;
+	}
+
 	@Override
 	public Collection<Port> getParticipants() {
 		return new LinkedList<Port>(Arrays.asList(source, destination));

+ 5 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/simpleImplementation/SimpleLink.java

@@ -138,6 +138,11 @@ public class SimpleLink implements Link {
 		 * Unsorted Packets from multiple sorted Connections
 		 */
 	}
+	
+	@Override
+	public Collection<Packet> encapsulatePackages(Collection<Packet> packets){
+		return packets;
+	}
 
 	@Override
 	public Collection<Packet> getPackets() {