From 98cff0ae47ceb5384caf95a6d449f65dbe902a80 Mon Sep 17 00:00:00 2001 From: Sam Hadow Date: Mon, 17 Mar 2025 17:46:08 +0100 Subject: [PATCH] simplify Event class --- src/main.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main.py b/src/main.py index b7545e1..b15d419 100644 --- a/src/main.py +++ b/src/main.py @@ -3,14 +3,9 @@ import random from heapq import heappush, heappop class Event: - def __init__(self, event_type, additional_options): - self.event_type = event_type - if event_type == "request": - self.request = additional_options['request'] - elif event_type == "router_finish": - self.request = additional_options['request'] - elif event_type == "process_finish": - self.request = additional_options['request'] + def __init__(self, event_type, request): + self.event_type = event_type # 'request', 'router_finish', 'process_finish' + self.request = request class Request: def __init__(self, category, arrival_time): @@ -53,7 +48,7 @@ class Simulation: category = random.randint(0, self.C-1) if self.C>1 else 0 request = Request(category, arrival_time) - request_event = Event("request", {"request": request}) + request_event = Event("request", request) heappush(self.event_queue, (arrival_time, request_event)) @@ -72,7 +67,7 @@ class Simulation: def router_process(self, request): if self.router_state == "idle": self.router_state = 'processing' - router_finish = Event("router_finish", {"request": request}) + router_finish = Event("router_finish", request) finish_time = self.current_time + self.router_processing_time heappush(self.event_queue, (finish_time, router_finish)) else: @@ -99,7 +94,7 @@ class Simulation: def process_request(self, request): interval = random.expovariate(self.service_rate) finish_time = self.current_time + interval - process_finish = Event("process_finish", {"request": request}) + process_finish = Event("process_finish", request) heappush(self.event_queue, (finish_time, process_finish)) def process_request_finish(self, request):