La classe RouteNode
TODO: approfondire commento sulla modifica riguardo routes_tobe_synced
Rappresenta un nodo di un certo livello e ID. In sostanza è l'insieme di tutte le route conosciute (vedi la classe RouteGW) verso quel nodo.
Nota: per ogni gateway in questo insieme esiste sempre al massimo una route.
Nota2: per avere un senso dovrebbero essere tutte Route dello stesso Rem-type; così sono usate nella MapRoute.
Questa classe è usata come elemento della classe Map nella sua tipizzazione nella classe MapRoute.
Con il metodo route_getby_gw restituisce la route dato un gateway (per vederne il Rem).
Con il metodo best_route restituisce la route migliore.
Con i metodi route_add e route_del si aggiungono o rimuovono route. In caso di aggiunta il metodo stesso si occupa di scartare le route non interessanti.
Con il metodo gwrem_change si notifica il cambio di rem di un gateway così che viene aggiornata la route che passa per lì (se c'è).
La classe RouteNode si incarica anche di controllare la sincronizzazione delle informazioni che essa detiene riguardo le route verso un (g)nodo con la tabella di routing del kernel. Non è lei che si occupa di modificare la tabella di routing del kernel, ma solo di memorizzare il fatto che la sincronizzazione è avvenuta o deve ancora avvenire.
Lo fa con il membro routes_tobe_synced, numero di routes che devono essere sincronizzate.
I metodi route_add e route_del incrementano questo numero, mentre nei relativi metodi della classe KrnlRoute viene decrementato.