Class Comando

java.lang.Object
  |
  +--Comando

public class Comando
extends java.lang.Object
implements java.io.Serializable

Rappresenta i comandi scambiati nelle interazioni FrontEnd ReplicaManager per richiedere le operazioni di servizio.

Author:
Matteo Albini, Mauro Barbieri
See Also:
Serialized Form

Field Summary
static int ACK
          Costante che identifica il comando che indica che non si tentera' piu' di postare un messaggio.
static int COD_MAX
          Costante che indica il numero massimo usato per identificare i comandi.
static int GET
          Costante che identifica il comando per richiedere il corpo di un messaggio data un'intestazione.
static int LIST
          Costante che identifica il comando per richiedere la lista delle intestazioni.
static int LOOKUP
          Costante che identifica il comando richiedere al RM gli indirizzi degli altri RM a lui noti.
static int NUM
          Costante che identifica il comando richiedere il numero di RM che fanno parte del sistema.
 MultipartTimestamp prev
          Rappresenta il multipart timestamp del FE che ha inviato il comando al RM.
static int PUT
          Costante che identifica il comando per richiedere di postare un messaggio.
private  int type
          Indica il tipo di comando.
 
Constructor Summary
Comando(int t, MultipartTimestamp mpts)
          Crea un'istanza di Comando dati il tipo e il multipart timestamp del FE.
 
Method Summary
 int getType()
          Restituisce un intero che identifica il comando.
static void main(java.lang.String[] args)
          Rende la classe un'applicazione stand-alone per il testing.
 java.lang.String toString()
          Ridefinisce l'omonimo metodo della classe java.lang.Object per rappresentare come stringa un'istanza di Comando.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

LIST

public static final int LIST
Costante che identifica il comando per richiedere la lista delle intestazioni.

GET

public static final int GET
Costante che identifica il comando per richiedere il corpo di un messaggio data un'intestazione.

PUT

public static final int PUT
Costante che identifica il comando per richiedere di postare un messaggio.

ACK

public static final int ACK
Costante che identifica il comando che indica che non si tentera' piu' di postare un messaggio.

NUM

public static final int NUM
Costante che identifica il comando richiedere il numero di RM che fanno parte del sistema.

LOOKUP

public static final int LOOKUP
Costante che identifica il comando richiedere al RM gli indirizzi degli altri RM a lui noti.

COD_MAX

public static final int COD_MAX
Costante che indica il numero massimo usato per identificare i comandi. Poiche' ad ogni costante che rappresenta un comando e' associato un numero intero progressivo e poiche' l'insieme dei comandi possibili potra' variare nel tempo, per verificare se un comando e' valido si usa questa ulteriore costante.

type

private int type
Indica il tipo di comando. Puo' essere uguale a LIST, GET, PUT, ACK, NUM o LOOKUP. La variabile e' dichiarata private per non essere modificabile dall'esterno della classe una volta creata l'istanza di Comando. Il valore che identifica il comando puo' essere ottenuto mediante il metodo getType().

prev

public MultipartTimestamp prev
Rappresenta il multipart timestamp del FE che ha inviato il comando al RM.
Constructor Detail

Comando

public Comando(int t,
               MultipartTimestamp mpts)
        throws UnknownCommandException
Crea un'istanza di Comando dati il tipo e il multipart timestamp del FE. L'argomento t deve essere una delle costanti LIST, GET, PUT, ACK, NUM o LOOKUP altrimenti viene sollevata un'eccezione. Non e' obbligatorio racchiudere l'istruzione di creazione di un oggetto Comando in un blocco try{}cath{} perche' l'eccezione UnknownCommandException che potrebbe essere lanciata discende da lava.lang.RuntimeException.
Parameters:
t - identifica il tipo di comando. Deve essere uguale ad una delle costanti LIST, GET, PUT, ACK, NUM o LOOKUP altrimenti viene sollevata l'eccezione UnknownCommandException.
mpts - multipart timestamp del FE che invia il comando al RM.
Throws:
UnknownCommandException - se il tipo del comando non e' uguale ad una delle costanti LIST, GET, PUT, ACK, NUM o LOOKUP.
Method Detail

getType

public int getType()
Restituisce un intero che identifica il comando. Il valore restituito e' una delle costanti LIST, GET, PUT, ACK, NUM o LOOKUP.
Returns:
il valore intero che identifica il comando : e' una delle costanti LIST, GET, PUT, ACK, NUM o LOOKUP.

toString

public java.lang.String toString()
Ridefinisce l'omonimo metodo della classe java.lang.Object per rappresentare come stringa un'istanza di Comando. Usato principalmente per il debugging. La rappresentazione scelta e' del tipo :
	[LIST,prev] o 
[GET,prev] o
[PUT,prev] o
[ACK] o
[NUM] o
[LOOKUP]

a seconda del tipo di comando.
Returns:
la stringa che rappresenta il Comando.
Overrides:
toString in class java.lang.Object

main

public static void main(java.lang.String[] args)
Rende la classe un'applicazione stand-alone per il testing.