public void AddConnection(GateConnection connection) { // create a connection from output to input if (OutputConnectionCounterparties.ContainsKey(connection.FromAddr)) { // the "from" in this connection already has a counterparty. want to remove it var oldTo = OutputConnectionCounterparties[connection.FromAddr]; InputConnectionCounterparties.Remove(oldTo); InputAddrs.Add(oldTo); } if (InputConnectionCounterparties.ContainsKey(connection.ToAddr)) { // the "to" in this connection already has a counterparty. want to remove it var oldFrom = InputConnectionCounterparties[connection.ToAddr]; OutputConnectionCounterparties.Remove(oldFrom); OutputAddrs.Add(oldFrom); } OutputConnectionCounterparties[connection.FromAddr] = connection.ToAddr; OutputAddrs.Remove(connection.FromAddr); InputConnectionCounterparties[connection.ToAddr] = connection.FromAddr; InputAddrs.Remove(connection.ToAddr); TopologicalOrderImpl = null; }
public void AddConnection(GateConnection connection) { // create a connection from output to input if (OutputConnectionCounterparties.ContainsKey(connection.FromAddr)) { // the "from" in this connection already has a counterparty. want to remove it var oldTo = OutputConnectionCounterparties[connection.FromAddr]; InputConnectionCounterparties.Remove(oldTo); InputAddrs.Add(oldTo); } if (InputConnectionCounterparties.ContainsKey(connection.ToAddr)) { // the "to" in this connection already has a counterparty. want to remove it var oldFrom = InputConnectionCounterparties[connection.ToAddr]; OutputConnectionCounterparties.Remove(oldFrom); OutputAddrs.Add(oldFrom); } OutputConnectionCounterparties[connection.FromAddr] = connection.ToAddr; OutputAddrs.Remove(connection.FromAddr); InputConnectionCounterparties[connection.ToAddr] = connection.FromAddr; InputAddrs.Remove(connection.ToAddr); TopologicalOrderImpl = null; }
public override bool Equals(object obj) { GateConnection other = obj as GateConnection; if (obj == null) { return(false); } return(FromAddr.Equals(other.FromAddr) && ToAddr.Equals(other.ToAddr)); }