All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class it.unipi.di.vserver.ServerProtocol

java.lang.Object
   |
   +----it.unipi.di.vserver.ServerProtocol

public abstract class ServerProtocol
extends Object
implements Runnable

Questa classe è la classe base per la realizzazione del protocollo dal lato server. È in grado infatti di trasmettere in broadcast le informazioni potendo enumerare le connessioni aperte. Il server invoca il costruttore senza parametri. Si raccomanda di assegnare nel costruttore il numero della porta da monitorare.

Version:
1.0
Author:
Antonio Cisternino

Variable Index

 o connection
Link col client.
 o parent
Server del protocollo.
 o PROTOCOL_PORT
Porta del protocollo
 o protocolThread
Thread della connessione
 o serverPLog
Log manager del protocollo.
 o stat
Informazioni statistiche relative alla connessione.

Constructor Index

 o ServerProtocol()

Method Index

 o addLog(int, String)
Aggiunge un messaggio di log al log manager, se presente.
 o getClients()
Restituisce i clienti del server.
 o getConnection()
Restituisce la connessione associata al cliente.
 o getProtocolPort()
Restituisce la porta associata al servizio.
 o getSharedObject(String)
Restituisce un oggetto associato ad una certa chiave.
 o init(LogManager, Socket, Server, SecurityFilter)
Inizializza il protocollo.
 o registerSharedObject(String, Object)
Registra un oggetto condiviso presso il server.
 o removeSharedObject(String)
Rimuove un oggetto dalla lista degli oggetti condivisi.
 o replaceSharedObject(String, Object)
Rimpiazza un oggetto condiviso nella tabella degli oggetti condivisi.
 o run()
Avvia il thread chiamando il metodo speak.
 o setPort(int)
Setta la porta del protocollo
 o setStatisticData(Object)
Registra nelle statistiche relative alla connessione dei dati dipendenti dal protocollo.
 o speak(Connection)
Questa classe implementa il protocollo dal lato del server.
 o stop()
Chiude la connessione e arresta il thread associato al protocollo.

Variables

 o PROTOCOL_PORT
 private int PROTOCOL_PORT
Porta del protocollo

 o connection
 private Connection connection
Link col client.

 o parent
 private Server parent
Server del protocollo.

 o protocolThread
 private Thread protocolThread
Thread della connessione

 o serverPLog
 private LogManager serverPLog
Log manager del protocollo.

 o stat
 private StatisticInfo stat
Informazioni statistiche relative alla connessione.

Constructors

 o ServerProtocol
 public ServerProtocol()

Methods

 o addLog
 protected final void addLog(int type,
                             String msg)
Aggiunge un messaggio di log al log manager, se presente.

Parameters:
type - Classe di log.
type - Messaggio da inserire nel log.
 o init
 void init(LogManager log,
           Socket s,
           Server p,
           SecurityFilter f) throws IOException
Inizializza il protocollo.

Parameters:
log - Log manager da utilizzare
s - Socket della connessione.
p - Server a cui fa riferimento il protocollo.
f - Filtro di sicurezza.
 o speak
 protected abstract void speak(Connection conn)
Questa classe implementa il protocollo dal lato del server. Usare la connessione passata come parametro per leggere e scrivere.

Parameters:
conn - Connessione da utilizzare per dialogare col server.
 o run
 public void run()
Avvia il thread chiamando il metodo speak. Al termine del metodo chiude la connessione chiamando il metodo close() della classe Connection.

 o getProtocolPort
 public final int getProtocolPort()
Restituisce la porta associata al servizio.

Returns:
Restituisce la porta del protocollo.
 o setPort
 public final synchronized void setPort(int port)
Setta la porta del protocollo

Parameters:
port - Porta del protocollo.
 o getClients
 protected final Enumeration getClients()
Restituisce i clienti del server. Può essere utilizzato per comunicazioni broadcast.

Returns:
Un'enumerazione contenente ServerProtocol
 o getConnection
 public Connection getConnection()
Restituisce la connessione associata al cliente.

Returns:
Connessione associata al cliente
 o stop
 void stop()
Chiude la connessione e arresta il thread associato al protocollo.

 o registerSharedObject
 protected boolean registerSharedObject(String key,
                                        Object obj)
Registra un oggetto condiviso presso il server.

Parameters:
key - Nome dell'oggetto condiviso.
obj - L'oggetto condiviso
Returns:
Viene restituito true se l'oggetto è stato registrato, false se esisteva già un oggetto registrato con un dato nome. Usare la funzione replaceSharedObject() per sostituire un oggetto dalla tabella degli oggetti condivisi oppure removeSharedObject() per eliminarlo.
 o getSharedObject
 protected Object getSharedObject(String key)
Restituisce un oggetto associato ad una certa chiave.

Parameters:
key - Chiave associato all'oggetto condiviso.
Returns:
L'oggetto condiviso, se questo non esiste viene restituito null.
 o removeSharedObject
 protected void removeSharedObject(String key)
Rimuove un oggetto dalla lista degli oggetti condivisi.

Parameters:
key - Chiave associata all'oggetto da rimuovere.
 o replaceSharedObject
 protected Object replaceSharedObject(String key,
                                      Object obj)
Rimpiazza un oggetto condiviso nella tabella degli oggetti condivisi.

Parameters:
key - Nome dell'oggetto condiviso.
obj - L'oggetto condiviso
Returns:
L'oggetto sostituito, null se non era presente nessun oggetto con una data chiave.
 o setStatisticData
 protected void setStatisticData(Object obj)
Registra nelle statistiche relative alla connessione dei dati dipendenti dal protocollo. Si ricorda che un array è instanceof Object.

Parameters:
obj - Informazioni statistiche dipendenti dal protocollo.

All Packages  Class Hierarchy  This Package  Previous  Next  Index