2020-05-03 09:04:28 +00:00
|
|
|
package drills.drill09.average
|
2020-05-02 20:27:43 +00:00
|
|
|
|
2020-05-03 12:57:03 +00:00
|
|
|
import util.network.epidemic.packet.EpidemicPacket
|
|
|
|
import util.network.epidemic.packet.FeedbackEpidemicPacket
|
2020-05-02 20:27:43 +00:00
|
|
|
import util.network.simulator.Address
|
|
|
|
import util.network.simulator.Network
|
|
|
|
|
|
|
|
fun main() {
|
|
|
|
val network = Network()
|
|
|
|
|
|
|
|
repeat(17) {
|
2020-05-03 12:57:03 +00:00
|
|
|
AverageNode.createPullNode(Address(it), network, 0.0)
|
2020-05-02 20:27:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
val alpha = network.getRandomNode() as AverageNode
|
|
|
|
val beta = network.getRandomNode() as AverageNode
|
|
|
|
|
2020-05-03 12:57:03 +00:00
|
|
|
val packet = FeedbackEpidemicPacket(
|
2020-05-02 20:27:43 +00:00
|
|
|
alpha.address,
|
|
|
|
beta.address,
|
|
|
|
1,
|
2020-05-03 12:57:03 +00:00
|
|
|
EpidemicPacket.Type.REPLY,
|
2020-05-02 20:27:43 +00:00
|
|
|
false
|
|
|
|
)
|
|
|
|
|
|
|
|
alpha.send(packet)
|
|
|
|
|
|
|
|
network.start()
|
|
|
|
|
|
|
|
Thread.sleep(2000)
|
|
|
|
|
|
|
|
network.forEach {
|
|
|
|
println(1.0 / (it as AverageNode).nodeValue)
|
|
|
|
}
|
|
|
|
}
|