Пример #1
0
        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();
        }
Пример #2
0
        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();
        }