Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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));
        }