Timeline now passed via constructor
[Mograsim.git] / era.mi / src / era / mi / logic / components / BasicComponent.java
index 7b4069c..1178568 100644 (file)
@@ -1,16 +1,17 @@
 package era.mi.logic.components;\r
 \r
-import era.mi.logic.Bit;\r
-import era.mi.logic.Simulation;\r
-import era.mi.logic.wires.WireArray;\r
-import era.mi.logic.wires.WireArrayObserver;\r
+import era.mi.logic.timeline.Timeline;\r
+import era.mi.logic.types.BitVector;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.WireObserver;\r
 \r
 /**\r
  * A basic component that recomputes all outputs (with a delay), when it is updated.\r
  * \r
  * @author Fabian Stemmler\r
  */\r
-public abstract class BasicComponent implements WireArrayObserver, Component {\r
+public abstract class BasicComponent extends Component implements WireObserver\r
+{\r
        private int processTime;\r
 \r
        /**\r
@@ -19,15 +20,16 @@ public abstract class BasicComponent implements WireArrayObserver, Component {
         * \r
         * @author Fabian Stemmler\r
         */\r
-       public BasicComponent(int processTime) {\r
+       public BasicComponent(Timeline timeline, int processTime)\r
+       {\r
+               super(timeline);\r
                this.processTime = processTime > 0 ? processTime : 1;\r
        }\r
 \r
        @Override\r
-       public void update(WireArray initiator, Bit[] oldValues) {\r
-               Simulation.TIMELINE.addEvent((e) -> {\r
-                       compute();\r
-               }, processTime);\r
+       public void update(ReadEnd initiator, BitVector oldValues)\r
+       {\r
+               timeline.addEvent(e -> compute(), processTime);\r
        }\r
 \r
        protected abstract void compute();\r