コード例 #1
0
        /// <summary>
        /// Aktualizuje wartości SNPPów po zmianie w krawędziach ścieżki.
        /// </summary>
        public void actualizeSNPPs()
        {
            snpps = new List <SubNetworkPointPool>();
            foreach (Wezel w in path.WezlySciezki)
            {
                SubNetworkPoint snp = new SubNetworkPoint(IPAddress.Parse(w.ip));

                SubNetworkPointPool snpp = new SubNetworkPointPool();

                snpp.Add(snp);

                snpps.Add(snpp);
            }
        }
コード例 #2
0
        public List <SubNetworkPointPool> getPathOfSNPPs(SubNetworkPointPool beginningNetworkPointPool,
                                                         SubNetworkPointPool endNetworkPointPool, short band, Siec network)
        {
            //Zamiana adresow IP na inty
            int beginID = ipToInt(beginningNetworkPointPool.snps[0].ipaddress);
            int endID   = ipToInt(endNetworkPointPool.snps[0].ipaddress);

            //Tworzenie wezlow
            Wezel beginNode = new Wezel(beginID, beginID, beginID, beginningNetworkPointPool.snps[0].ipaddress.ToString());
            Wezel endNode   = new Wezel(endID, endID, endID, endNetworkPointPool.snps[0].ipaddress.ToString());

            //Wyszukiwanie sciezki
            Sciezka path = new Sciezka();

            path.wyznaczSciezke(beginNode, endNode, network.zwrocTabliceKierowaniaLaczami,
                                network.zwrocTabliceKierowaniaWezlami, ref network.wezly, band, network.Koszty);

            if (path.KrawedzieSciezki.Count != 0)
            {
                network.sciezki.Add(path);
            }

            //network.zwroc_sciezki.Find((x) => x.Wezel1 == beginNode && x.Wezel2 == endNode));network.zwroc_sciezki.Find((x) => x.Wezel1 == beginNode && x.Wezel2 == endNode);

            //Gdy sciezki w networki nie ma, to nie da sie ustanowic polaczenia
            if (path == null)
            {
                return(null);
            }
            else
            {
                List <SubNetworkPointPool> SNPPs = new List <SubNetworkPointPool>();
                foreach (Wezel w in path.WezlySciezki)
                {
                    SubNetworkPoint snp = new SubNetworkPoint(IPAddress.Parse(w.ip));

                    SubNetworkPointPool snpp = new SubNetworkPointPool();

                    snpp.Add(snp);

                    SNPPs.Add(snpp);
                }

                //Zwracanie listy SNPPów, gdzie kazdy z nich zawiera po jednym SNP.
                return(SNPPs);
            }
        }