2024-05-09 14:29:10 +09:00
|
|
|
import simpy
|
|
|
|
|
|
2024-05-13 08:49:09 +09:00
|
|
|
from node import Node
|
|
|
|
|
from p2p import P2p
|
2024-05-09 19:37:39 +09:00
|
|
|
|
2024-05-09 14:29:10 +09:00
|
|
|
|
|
|
|
|
class Simulation:
|
2024-05-14 14:36:05 +09:00
|
|
|
def __init__(self, num_nodes: int, node_params: Node.Parameters):
|
2024-05-09 14:29:10 +09:00
|
|
|
self.env = simpy.Environment()
|
2024-05-09 19:37:39 +09:00
|
|
|
self.p2p = P2p(self.env)
|
2024-05-14 14:36:05 +09:00
|
|
|
self.nodes = [Node(i, self.env, self.p2p, node_params) for i in range(num_nodes)]
|
2024-05-09 19:37:39 +09:00
|
|
|
self.p2p.add_node(self.nodes)
|
2024-05-09 14:29:10 +09:00
|
|
|
|
|
|
|
|
def run(self, until):
|
|
|
|
|
self.env.run(until=until)
|