Inheritance: RoutingInfo, IEnumerable
Example #1
0
 void handleUpdate(DijkstraUpdate update)
 {
     foreach (DijkstraLinkStateUpdate linkUpdate in update)
     {
         LinkEntry entry = links[linkUpdate.Link];
         if (entry.WhenUpdated < linkUpdate.When)
         {
             entry.IsBroken    = linkUpdate.IsBroken;
             entry.WhenUpdated = linkUpdate.When;
         }
     }
 }
Example #2
0
//CALLBACKS
    void onLinkBreakChange(LinkSide linkSide)
    {
        if (!node.IsAvailable)
        {
            return;
        }
        LinkEntry entry = links[linkSide.Link];

        entry.IsBroken    = linkSide.IsBroken;
        entry.WhenUpdated = Timer.CurrentTime;
        List <DijkstraLinkStateUpdate> list = new List <DijkstraLinkStateUpdate>();

        foreach (LinkEntry linkEntry in links.Values)
        {
            DijkstraLinkStateUpdate linkUpdate = new DijkstraLinkStateUpdate(linkEntry.Link, linkEntry.WhenUpdated, linkEntry.IsBroken);
            list.Add(linkUpdate);
        }
        DijkstraUpdate    update = new DijkstraUpdate(list.ToArray());
        RoutingInfoBundle bundle = new RoutingInfoBundle(node, null, update);
        NetworkInterface  ignore = linkSide.IsBroken? node.NetworkInterfaces.Find(linkSide.Link):null;

        broadcast(bundle, ignore);
    }