Remotable Functions

Sono le funzioni (metodi) richiamabili attraverso il meccanismo RPC (vedi il modulo RPC).

Si può specificare quali metodi di una certa classe sono remotable.

A partire da un certo oggetto (istanza di una classe) chiamato root_instance, che viene specificato al momento dell'avvio del MicroTCPServer o MicroUDPServer, tutti i suoi attributi si possono "accedere" da remoto. E per ogni attributo che contiene un oggetto, di nuovo tutti i suoi attributi si possono "accedere" da remoto.

Dicendo che "si può accedere" si intende che si possono richiamare i suoi metodi.

Bisogna poi vedere quali di questi metodi si possono veramente richiamare. Questo si controlla appunto specificando quali metodi di una data classe sono remotable.

Oggetto radice e suoi attributi

La root_instance fornita dal demone di Netsukuku è l'unica istanza della classe NtkNode.

Tra i suoi attributi sono:

In particolare l'attributo p2p è un oggetto P2PAll. Questo ha un numero dinamico di attributi interessanti, perché richiamando un suo attributo con nome PID_n (dove n è un qualsiasi intero) si ottiene un oggetto della classe P2P.

I TCPClient sono memorizzati sull'attributo ntkd dell'oggetto Neigh.
Gli oggetti Neigh si passano insieme agli eventi NEIGH_NEW, NEIGH_REM_CHGED, NEIGH_DELETED oppure si richiedono alla istanza locale di Neighbour con il metodo neigh_list.

Quindi sul codice si trovano pezzi simili a questo:
    neigh.ntkd.etp.etp_exec(...)
neigh è un oggetto Neigh ricevuto attraverso un evento. Attraverso l'attributo ntkd esegue una chiamata RPC. La root_instance (sull'host remoto) è l'oggetto NtkNode, il quale ha un attributo etp che è una istanza della classe Etp. La classe Etp ha la funzione remotable etp_exec. La chiamata quindi risulta corretta.

Altro esempio potrebbe essere:
    n.ntkd.p2p.PID_12.msg_send(...)
n è un oggetto Neigh richiesto alla istanza locale di Neighbour. Attraverso l'attributo ntkd esegue una chiamata RPC. La root_instance (sull'host remoto) è l'oggetto NtkNode, il quale ha un attributo p2p che è una istanza della classe P2PAll. La classe P2PAll ha un attributo (dinamico) PID_12 che è una istanza della classe P2P. La classe P2P ha la funzione remotable msg_send. La chiamata quindi risulta corretta.

Elenco delle funzioni remotable

Modulo radar

Modulo qspn

Modulo hook

Modulo p2p

Modulo coord