Sfoglia il codice sorgente

fixed selector for DCP implementation

Snej69420 7 mesi fa
parent
commit
48e39f1ed7

+ 12 - 13
pythonpdevs2.4.2/src/pypdevs/DEVS.py

@@ -764,19 +764,18 @@ class RootDEVS(BaseDEVS):
             p.cached_routes = None
 
         # Rebuild the routes for the affected ports
-        for p in unique_worklist:
-            if self.routing_mode == "memoised":
-                for p in unique_worklist:
-                    p.cached_routes = None
-                for p in unique_worklist:
-                    directConnectPortMem(p, self.listeners)
-
-            elif self.routing_mode == "old":
-                for p in unique_worklist:
-                    directConnectPortOLD(p, self.listeners)
-            else:
-                for p in unique_worklist:
-                    directConnectPort(p, self.listeners)
+        if self.routing_mode == "memoised":
+            for p in unique_worklist:
+                p.cached_routes = None
+            for p in unique_worklist:
+                directConnectPortMem(p, self.listeners)
+
+        elif self.routing_mode == "old":
+            for p in unique_worklist:
+                directConnectPortOLD(p, self.listeners)
+        else:
+            for p in unique_worklist:
+                directConnectPort(p, self.listeners)
 
     def directConnect(self):
         """

+ 3 - 2
pythonpdevs2.4.2/src/pypdevs/basesimulator.py

@@ -69,6 +69,7 @@ class BaseSimulator(Solver):
         self.use_DSDEVS = False
         self.activity_tracking = False
         self.memoization = False
+        self.routing_mode = ""
         self.total_activities = defaultdict(float)
         self.msg_sent = 0
         self.msg_recv = 0
@@ -261,9 +262,9 @@ class BaseSimulator(Solver):
 
         self.local = local
         if isinstance(model, CoupledDEVS):
-            self.model = RootDEVS(self.local, model.component_set, scheduler_type)
+            self.model = RootDEVS(self.local, model.component_set, scheduler_type, self.routing_mode)
         elif isinstance(model, AtomicDEVS):
-            self.model = RootDEVS(self.local, [model], scheduler_type)
+            self.model = RootDEVS(self.local, [model], scheduler_type, self.routing_mode)
 
         self.activities = {}