/// <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); } }
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); } }