chat
Class Messaggio

java.lang.Object
  |
  +--chat.MessaggioBase
        |
        +--chat.Messaggio

public class Messaggio
extends MessaggioBase

Classe che identifica un messaggio scambiato fra utenti adatto alle esigenze della chat: interpreta il contenuto del buffer interno di MessaggioBase per ottenere un sequence number, un byte che assegna il "tipo" di segmento informativo, un'eventuale firma digitale del testo vero e prorio incluso nella busta rappresentata.

Più precisamente, il buffer interno alla super-classe viene così interpretato da Messaggio:

Globalmente la cosa può esser vista in questo modo: un header iniziale composto da 4 + 4 + 1 = 9 byte, il testo vero e proprio, quindi un footer costituito dalla firma digitale del testo. La lunghezza del footer è maggiore o uguale a zero, e tale valore è mantenuto nell'header, mentre la lunghezza del testo viene calcolata per differenza fra la lunghezza dell'intero buffer e quella di header+footer.

Version:
1.0
Author:
Alessandro Gaspari
See Also:
MessaggioBase, MessaggioBase.che_cosa, Utili.intToArray(int, byte[], int), Utili.intFromArray(byte[], int), Serialized Form

Fields inherited from class chat.MessaggioBase
a_chi, che_cosa, da_chi
 
Constructor Summary
Messaggio(java.lang.String da, java.lang.String a, byte[] cosa)
          Costruttore che richiama quello della super-classe.
Messaggio(java.lang.String da, java.lang.String a, byte tipo, byte[] testo)
          Costruttore più semplice che assegna un valore ai campi più usati dell'istanza di Messaggio.
Messaggio(java.lang.String da, java.lang.String a, int seq_num, byte tipo, byte[] testo, byte[] firma)
          Costruttore che permette di assegnare un valore specifico a tutti i campi dell'istanza di Messaggio.
 
Method Summary
 byte[] firma()
          Selettore primitiva per ottenere il campo "firma digitale".
 void scriviSeqNum(int seq_num)
          Modificatore primitiva che scrive il sequence number.
 int seqNum()
          Selettore primitiva che legge il sequence number.
 byte[] testo()
          Selettore primitiva per accedere al testo del messaggio.
 byte tipo()
          Selettore primitiva che ritorna il "tipo" del messaggio.
 
Methods inherited from class chat.MessaggioBase
aChi, cheCosa, daChi
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

Messaggio

public Messaggio(java.lang.String da,
                 java.lang.String a,
                 byte[] cosa)
Costruttore che richiama quello della super-classe.
Parameters:
da - il mittente del messaggio.
a - il destinatario del suddetto.
cosa - le informazioni da inserire nella busta.
See Also:
MessaggioBase.MessaggioBase(String, String, byte[])

Messaggio

public Messaggio(java.lang.String da,
                 java.lang.String a,
                 int seq_num,
                 byte tipo,
                 byte[] testo,
                 byte[] firma)
Costruttore che permette di assegnare un valore specifico a tutti i campi dell'istanza di Messaggio.
Parameters:
da - il mittente del messaggio.
a - il destinatario del suddetto.
seq_num - il sequence number da assegnargli.
tipo - il "tipo" del segmento informativo.
testo - le informazioni testuali da inserire nella busta.
firma - la firma digitale relativa a testo.

Messaggio

public Messaggio(java.lang.String da,
                 java.lang.String a,
                 byte tipo,
                 byte[] testo)
Costruttore più semplice che assegna un valore ai campi più usati dell'istanza di Messaggio. Equivale a:

Messaggio(da, a, 0, tipo, testo, null);

Parameters:
da - il mittente del messaggio.
a - il destinatario del suddetto.
tipo - il "tipo" del segmento informativo.
testo - le informazioni testuali da inserire nella busta.
See Also:
Messaggio(String, String, int, byte, byte[], byte[])
Method Detail

scriviSeqNum

public void scriviSeqNum(int seq_num)
Modificatore primitiva che scrive il sequence number.
Parameters:
seq_num - il numero di sequenza da assegnare al messaggio.

seqNum

public int seqNum()
Selettore primitiva che legge il sequence number.
Returns:
il numero di sequenza del messaggio.

tipo

public byte tipo()
Selettore primitiva che ritorna il "tipo" del messaggio.
Returns:
il tipo assegnato al Messaggio.

testo

public byte[] testo()
Selettore primitiva per accedere al testo del messaggio. ATTENZIONE: il contenuto del messaggio viene estratto per copia, quindi non è possibile invocare questo metodo per poi accedere in scrittura al messaggio stesso.
Returns:
il testo del messaggio; può essere un byte[] avente lunghezza nulla, ma non null.

firma

public byte[] firma()
Selettore primitiva per ottenere il campo "firma digitale". ATTENZIONE: il contenuto della firma viene estratto per copia, quindi non è possibile invocare questo metodo per poi modificare la firma contenuta nel messaggio.
Returns:
il campo "firma"; può essere un byte[] avente lunghezza nulla, ma non null.