SOMA.network
Class NetworkManager

java.lang.Object
  extended bySOMA.network.NetworkManager
Direct Known Subclasses:
NetworkManagerSecurity

public class NetworkManager
extends java.lang.Object

Gestore delle comunicazioni di rete di un place.

Author:
Livio Profiri

Nested Class Summary
 class NetworkManager.PermanentConnectionsExplorerItem
          Gestisce le connessioni permanenti fra domini.
 
Field Summary
(package private)  int connectionCount
           
(package private)  DirExplorerItem connectionsDir
           
(package private)  ConnectionServer connectionServer
           
 ConnectionStore connectionStore
          Memorizza le connessioni con gli altri place dello stesso dominio.
(package private)  Environment env
           
(package private)  DirExplorerItem networkManagerDir
           
protected  java.util.Hashtable permanentConnections
           
 PlaceInfo placeInfo
          Informazioni sul place.
 
Constructor Summary
NetworkManager(Environment env, int port)
          Costruttore.
 
Method Summary
 int isPermanentConnection(PlaceID placeID)
          Restituisce l'intero relativo alla connessione stabile con il place specificato.
 boolean sendCommand(java.net.InetAddress host, int port, Command aCommand)
          Spedizione di un comando ad un server di indirizzo: host:port.
 boolean sendCommand(PlaceID destID, Command aCommand)
          Spedizione di un comando ad un place.
 int startPermanentConnection(PlaceID placeID)
          Richiede una connessione stabile con il place specificato.
 int stopPermanentConnection(PlaceID placeID)
          Avvia una connessione stabile con il place specificato.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

env

Environment env

connectionServer

ConnectionServer connectionServer

permanentConnections

protected java.util.Hashtable permanentConnections

placeInfo

public PlaceInfo placeInfo
Informazioni sul place.


networkManagerDir

DirExplorerItem networkManagerDir

connectionsDir

DirExplorerItem connectionsDir

connectionCount

int connectionCount

connectionStore

public ConnectionStore connectionStore
Memorizza le connessioni con gli altri place dello stesso dominio.

Constructor Detail

NetworkManager

public NetworkManager(Environment env,
                      int port)
               throws java.io.IOException,
                      ConnectionServer.ConnectionServerException,
                      NameException
Costruttore.

Parameters:
env - L'environment del place.
port - La porta su cui avviare il server per le connessioni.
Method Detail

sendCommand

public boolean sendCommand(PlaceID destID,
                           Command aCommand)
Spedizione di un comando ad un place.

Returns:
true se la spedizione ha avuto successo.

sendCommand

public boolean sendCommand(java.net.InetAddress host,
                           int port,
                           Command aCommand)
Spedizione di un comando ad un server di indirizzo: host:port.

Returns:
true se la spedizione ha avuto successo.

startPermanentConnection

public int startPermanentConnection(PlaceID placeID)

Richiede una connessione stabile con il place specificato.

Questo metodo altera la politica di gestione delle connessioni fra domini. Normalemnte le connessioni fra domini vengono attivate al momento della spedizione di un messaggio e disattivate subito dopo. Dopo una chiamata a startPermanentConnection, se siamo in un default place e se il place specificato appartiene ad un altro dominio, allora la connessione diretta a quel dominio non verra' interrotta dopo la spedizione di un messaggio, ma rimarra' attiva, pronta per la spedizione di eventuali successivi messaggi.

E' possibile ritornare al funzionamento normale con una chiamata a #stopPermanentConnection(placeID).

E' previsto un meccanismo per gestire più chiamate successive al metodo startPermanentConnection: ad ogni connessione e' associato un intero uguale a (NUMERO di start) - (NUMERO di stop). Questo intero corrisponde al numero di "procedure" che hanno fatto richiesta di connessione stabile e non hanno ancora terminato il loro compito. Quando l'intero va a zero si comunica all'altro pari la possiiblità di interrompere la connessione. Se anche all'altro capo della connessione nessuno ne ha piu' bisogno, la connessione viene terminata.


stopPermanentConnection

public int stopPermanentConnection(PlaceID placeID)

Avvia una connessione stabile con il place specificato.

See Also:


isPermanentConnection

public int isPermanentConnection(PlaceID placeID)

Restituisce l'intero relativo alla connessione stabile con il place specificato.

See Also:


toString

public java.lang.String toString()


Copyright © 2004 Luca Foschini