Server
Class Groups

java.lang.Object
  |
  +--Server.Groups

public class Groups
extends java.lang.Object

Gestione dei gruppi, con manutenzione delle strutture dati ad essi associati e correttezza dei dati.

Version:
0.7
Author:
Antonio D'Errico

Field Summary
(package private)  java.lang.String allUsr
          Rappresentazione in forma di stringa della lista dei clienti partecipanti al gruppo da fornire ai clienti connessi
(package private)  java.util.HashMap clientConnected
          Clienti connessi a questo gruppo sia direttamente (a questo server) sia indirettamente (connessi ad altri server)
(package private)  java.util.ArrayList clientOn
          Lista di clienti connessi direttamente a questo server
(package private)  java.lang.String compAllUsr
          Rappresentazione in forma di stringa della lista dei clienti partecipanti al gruppo da fornire ai server in caso di variazioni
(package private)  ServerStdProtocol currentProtocol
          Protocollo di messaggi che si sta usando attualmente
(package private)  java.lang.String ipServAddr
          Indirizzo Ip della macchina dove il server sta girando
(package private)  java.lang.String nome
          Server username
(package private)  int portServAddr
          Porta di ascolto per i client attuale
 
Constructor Summary
Groups(java.lang.String nome, java.lang.String ipServAddr, int portServAddr, ServerStdProtocol currentProtocol)
          Costruttore.
 
Method Summary
 boolean addClient(ComClient client)
          Modifica le strutture dati in modo che il cliente connesso direttamente a questo server figuri inserito in questo gruppo.
 int getNumClientConnected()
          Numero di clients connessi al server direttamente.
 boolean removeClient(ComClient client)
          Rimozione del client dal gruppo cui era connesso.
 void sendAll(java.lang.String message)
          Manda a tutti i client connessi a questo server e facenti parte del gruppo il messaggio presente in message.
 void serverDown(java.lang.String servIpAddr, int servIpPort)
          Caso in cui un server si disconnette, bisogna eliminare in una sola volta dalle liste gestite i client ad esso connesso.
 void variationClient(java.lang.String msgUsr)
          Se un nuovo client si connette ad un server questo manda una stringa di variazione del gruppo che viene poi qui elaborata e spedita ai client connessi a questo gruppo
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

clientConnected

java.util.HashMap clientConnected
Clienti connessi a questo gruppo sia direttamente (a questo server) sia indirettamente (connessi ad altri server)

clientOn

java.util.ArrayList clientOn
Lista di clienti connessi direttamente a questo server

allUsr

java.lang.String allUsr
Rappresentazione in forma di stringa della lista dei clienti partecipanti al gruppo da fornire ai clienti connessi

compAllUsr

java.lang.String compAllUsr
Rappresentazione in forma di stringa della lista dei clienti partecipanti al gruppo da fornire ai server in caso di variazioni

nome

java.lang.String nome
Server username

ipServAddr

java.lang.String ipServAddr
Indirizzo Ip della macchina dove il server sta girando

portServAddr

int portServAddr
Porta di ascolto per i client attuale

currentProtocol

ServerStdProtocol currentProtocol
Protocollo di messaggi che si sta usando attualmente
Constructor Detail

Groups

public Groups(java.lang.String nome,
              java.lang.String ipServAddr,
              int portServAddr,
              ServerStdProtocol currentProtocol)
Costruttore.
Parameters:
nome - String nome del gruppo
ipServAddr - String indirizzo Ip della macchina
portServAddr - int numero porta di ascolto
currentProtocol - ServerStdProtocol protocollo di messaggi che si sta usando
Method Detail

addClient

public boolean addClient(ComClient client)
Modifica le strutture dati in modo che il cliente connesso direttamente a questo server figuri inserito in questo gruppo.
Parameters:
client - ComClient l'oggetto che gestisce di fatto le comunicazioni da e verso il client
Returns:
true se il client e' stato inserito nel gruppo false altrimenti

removeClient

public boolean removeClient(ComClient client)
Rimozione del client dal gruppo cui era connesso.
Parameters:
client - ComClient il cliente da rimuovere
Returns:
true se l'operazione e' andata a buon fine false altrimenti

serverDown

public void serverDown(java.lang.String servIpAddr,
                       int servIpPort)
Caso in cui un server si disconnette, bisogna eliminare in una sola volta dalle liste gestite i client ad esso connesso.
Parameters:
servIpAddr - String indirizzo Ip del server che si e' disconnesso
servIpPort - String porta di ascolto verso i client di quel server

variationClient

public void variationClient(java.lang.String msgUsr)
Se un nuovo client si connette ad un server questo manda una stringa di variazione del gruppo che viene poi qui elaborata e spedita ai client connessi a questo gruppo
Parameters:
msgUser - String rappresentazione della lista dei client connessi

sendAll

public void sendAll(java.lang.String message)
Manda a tutti i client connessi a questo server e facenti parte del gruppo il messaggio presente in message. NB E' compito del metodo che invia costruire il messaggio.
Parameters:
message - String messaggio da inviare.

getNumClientConnected

public int getNumClientConnected()
Numero di clients connessi al server direttamente.
Returns:
numero di clients connessi al server direttamente.