public Channel(Router sRouter, Port sPort, Router eRouter, Port ePort) { startRouter = sRouter; sRouter.Channels.Add(this); endRouter = eRouter; eRouter.Channels.Add(this); endPort = ePort; endPort.Connect(this, sRouter); startPort = sPort; startPort.Connect(this, eRouter); endPort.OppositePort = sPort; startPort.OppositePort = ePort; // добавление ребра в сегмент if (sRouter.Area == eRouter.Area) { Area = sRouter.Area; Area.Channels.Add(this); } UpdateOspf(); UpdateCenter(); }
public Channel(Router sRouter, Router eRouter) { Port sPort = null; Port ePort = null; foreach (Port port in sRouter.Ports) { if (port.IsConnected == false) { sPort = port; break; } } foreach (Port port in eRouter.Ports) { if (port.IsConnected == false) { ePort = port; break; } } startRouter = sRouter; sRouter.Channels.Add(this); endRouter = eRouter; eRouter.Channels.Add(this); endPort = ePort; endPort.Connect(this, sRouter); startPort = sPort; startPort.Connect(this, eRouter); endPort.OppositePort = sPort; startPort.OppositePort = ePort; // добавление ребра в сегмент if (sRouter.Area == eRouter.Area) { Area = sRouter.Area; Area.Channels.Add(this); } UpdateOspf(); UpdateCenter(); }