X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fcomponents%2FConnector.java;h=7315e1351371a1cc2eb7b1883841d3a18f7c321c;hb=f14ea37d69488dd51518a36413af7176916b8bd7;hp=16b8e709275d1ef0ff51f5d136dc330e7ff7512c;hpb=07faf07e3acb8b2afdc2bf65a46bc868faaed0f8;p=Mograsim.git diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java index 16b8e709..7315e135 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/components/Connector.java @@ -2,13 +2,13 @@ package net.mograsim.logic.core.components; import java.util.List; +import net.mograsim.logic.core.LogicObservable; +import net.mograsim.logic.core.LogicObserver; import net.mograsim.logic.core.timeline.Timeline; -import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.wires.WireObserver; import net.mograsim.logic.core.wires.Wire.ReadEnd; import net.mograsim.logic.core.wires.Wire.ReadWriteEnd; -public class Connector extends Component implements WireObserver +public class Connector extends Component implements LogicObserver { private boolean connected; private final ReadWriteEnd a; @@ -21,8 +21,8 @@ public class Connector extends Component implements WireObserver throw new IllegalArgumentException(String.format("WireArray width does not match: %d, %d", a.length(), b.length())); this.a = a; this.b = b; - a.addObserver(this); - b.addObserver(this); + a.registerObserver(this); + b.registerObserver(this); } public void connect() @@ -48,13 +48,13 @@ public class Connector extends Component implements WireObserver } @Override - public void update(ReadEnd initiator, BitVector oldValues) + public void update(LogicObservable initiator) { if (connected) - timeline.addEvent(e -> update(initiator), 1); + timeline.addEvent(e -> innerUpdate(initiator), 1); } - private void update(ReadEnd initiator) + private void innerUpdate(LogicObservable initiator) { if (initiator == a) b.feedSignals(a.wireValuesExcludingMe());