Prechádzať zdrojové kódy

Fixed abuse of bag semantics

Yentl Van Tendeloo 9 rokov pred
rodič
commit
a7eaad5de0
1 zmenil súbory, kde vykonal 6 pridanie a 4 odobranie
  1. 6 4
      model/model.py

+ 6 - 4
model/model.py

@@ -84,8 +84,9 @@ class ModelverseState(AtomicDEVS):
 
     def extTransition(self, inputs):
         self.state.timer -= self.elapsed
-        self.state.queue.append(inputs[self.from_mvk])
-        if len(self.state.queue) == 1:
+        empty = len(self.state.queue) == 0
+        self.state.queue.extend(inputs[self.from_mvk])
+        if empty:
             # First message, so set the timer
             # And already compute the result so it is ready to output
             self.state.output = []
@@ -156,7 +157,7 @@ class ModelverseKernel(AtomicDEVS):
     def outputFnc(self):
         if self.state.mvk is None:
             # Ask the root first
-            return {self.to_mvs: [("RR", [])]}
+            return {self.to_mvs: [[("RR", [])]]}
 
     def timeAdvance(self):
         if self.state.waiting:
@@ -244,7 +245,8 @@ class Network(AtomicDEVS):
         self.state.timer -= self.elapsed
         if self.state.timer == float("inf"):
             self.state.timer = 0
-        self.state.processing.append(json.dumps(inputs[self.input_port]))
+        for v in inputs[self.input_port]:
+            self.state.processing.append(json.dumps(v))
         if len(self.state.processing) > 0:
             self.state.timer = int(len(self.state.processing[0]) / float(self.bandwidth) + self.latency)
         return self.state