|
@@ -8,6 +8,7 @@ import java.util.LinkedList;
|
|
|
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Packet;
|
|
|
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Port;
|
|
|
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Protocol;
|
|
|
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.SmartDevice;
|
|
|
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.protocols.packets.MQTT_packet;
|
|
|
import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.util.Pair;
|
|
|
|
|
@@ -302,7 +303,8 @@ public class MQTT_protocol implements Protocol {
|
|
|
@Override
|
|
|
public Collection<Port> getDevices(){
|
|
|
LinkedList<Port> returnDevices = new LinkedList<Port>();
|
|
|
- returnDevices.add(broker);
|
|
|
+ if(broker!=null)
|
|
|
+ returnDevices.add(broker);
|
|
|
returnDevices.addAll(pubSubs);
|
|
|
returnDevices.addAll(pubs);
|
|
|
returnDevices.addAll(subs);
|
|
@@ -317,12 +319,29 @@ public class MQTT_protocol implements Protocol {
|
|
|
@Override
|
|
|
public Collection<Pair<Port,Port>> getTopology(){
|
|
|
LinkedList<Pair<Port,Port>> topology = new LinkedList<Pair<Port,Port>>();
|
|
|
+ Port center = broker;
|
|
|
+ if(broker == null){
|
|
|
+ int x = 0, y = 0, noP = 0;
|
|
|
+ for(Port p: getDevices()){
|
|
|
+ if(p!=null && p.getOwner()!=null){
|
|
|
+ x += p.getOwner().getX();
|
|
|
+ y += p.getOwner().getY();
|
|
|
+ noP++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(noP==0)
|
|
|
+ return topology;
|
|
|
+ SmartDevice deletedBroker = new SmartDevice("DeltedBroker");
|
|
|
+ deletedBroker.setX(((int)(x*1.0)/noP));
|
|
|
+ deletedBroker.setY(((int)(y*1.0)/noP));
|
|
|
+ center = new Port(deletedBroker, (short)-1);
|
|
|
+ }
|
|
|
for(Port p: pubSubs)
|
|
|
- topology.add(new Pair<Port, Port>(broker, p));
|
|
|
+ topology.add(new Pair<Port, Port>(center, p));
|
|
|
for(Port p: pubs)
|
|
|
- topology.add(new Pair<Port, Port>(broker, p));
|
|
|
+ topology.add(new Pair<Port, Port>(center, p));
|
|
|
for(Port p: subs)
|
|
|
- topology.add(new Pair<Port, Port>(broker, p));
|
|
|
+ topology.add(new Pair<Port, Port>(center, p));
|
|
|
return topology;
|
|
|
}
|
|
|
|