= La classe Hook = Questa classe ascolta i segnali {{{ETP_EXECUTED}}} e {{{NET_COLLISION}}} di {{{Etp}}}. Come detto nel [[../ModuloQSPN|modulo QSPN]], la classe {{{Etp}}} processa, nel suo metodo {{{etp_exec}}}, gli ETP ricevuti dai suoi vicini. <
> Durante questa processazione potrebbe rilevare la collisione di due distinte reti Netsukuku. In questo caso genera l'evento {{{NET_COLLISION}}} e si interrompe. <
> Altrimenti prosegue e, se non ignora l'ETP perché lo aveva già incontrato, processa le informazioni. Questo può comportare delle modifiche alla propria mappa di route (vedi la [[../ClasseMapRoute|classe MapRoute]]). Alla fine genera un evento {{{ETP_EXECUTED}}}. Entrambe queste situazioni portano a operazioni svolte dalla classe Hook. In seguito ad un evento {{{ETP_EXECUTED}}}: * Si avvia l'esecuzione della microfunc communicating_vessels. Essendo una microfunc, essa viene avviata in un nuovo microthread. La prima cosa che esegue è la [[../GnodesSplit|funzione gnodes_split]], che quindi viene eseguita nel microthread appena creato. Se questa rileva uno split e avvia di conseguenza la [[../MicrofuncHook|microfunc hook]] (in un nuovo microthread), la communicating_vessels si ferma. * Altrimenti la [[../CommunicatingVessels|communicating_vessels]] prosegue. In seguito ad un evento {{{NET_COLLISION}}}: * Si avvia l'esecuzione della [[../MicrofuncHook|microfunc hook]].