X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FConnector.java;fp=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FConnector.java;h=0000000000000000000000000000000000000000;hb=c1d0ddc342c482051fa6c455bb286617135bd3c3;hp=17c9f3c8ae22eba02dca835a86b9eb9ede7cca9a;hpb=c18c04011cab0040c2287608eeefc9c3cc4536c2;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/components/Connector.java b/era.mi/src/era/mi/logic/components/Connector.java deleted file mode 100644 index 17c9f3c8..00000000 --- a/era.mi/src/era/mi/logic/components/Connector.java +++ /dev/null @@ -1,79 +0,0 @@ -package era.mi.logic.components; - -import java.util.List; - -import era.mi.logic.Bit; -import era.mi.logic.Simulation; -import era.mi.logic.wires.WireArray; -import era.mi.logic.wires.WireArray.WireArrayEnd; -import era.mi.logic.wires.WireArrayObserver; - -public class Connector implements WireArrayObserver, Component -{ - private boolean connected; - private final WireArray a; - private final WireArray b; - private final WireArrayEnd aI; - private final WireArrayEnd bI; - - public Connector(WireArray a, WireArray b) - { - if (a.length != b.length) - 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); - aI = a.createInput(); - bI = b.createInput(); - } - - public void connect() - { - connected = true; - update(a); - update(b); - } - - public void disconnect() - { - connected = false; - aI.clearSignals(); - bI.clearSignals(); - } - - public void setConnection(boolean connected) - { - if (connected) - connect(); - else - disconnect(); - } - - @Override - public void update(WireArray initiator, Bit[] oldValues) - { - if (connected) - Simulation.TIMELINE.addEvent(e -> update(initiator), 1); - } - - private void update(WireArray initiator) - { - if (initiator == a) - bI.feedSignals(aI.wireValuesExcludingMe()); - else - aI.feedSignals(bI.wireValuesExcludingMe()); - } - - @Override - public List getAllInputs() - { - return List.of(a, b); - } - - @Override - public List getAllOutputs() - { - return List.of(a, b); - } -}