Package chat

Class Summary
ComparaContatto Classe di utilità per ordinare gli elementi all'interno di un Database; contiene solo un metodo che effettua il confronto fra due oggetti di tipo Contatto, ordinandoli in senso crescente sulla base del nome().
Console Classe che rappresenta la finestra di input della chat; possiede un unico metodo: il main().
Contatto Classe atta a rappresentare un individuo, intendendo questi come l'insieme dei seguenti attributi: un nome testuale, composto di un numero variabile da 1 a 32 caratteri, ciascuno dei quali soddisfa il predicato di classe carLecitoNome(char c); una chiave crittografica java.security.Key; una lista contenente uno o più Endpoint.
CreaChiaviRSA Classe di utilità per creare le chiavi relative all'algoritmo RSA.
Crittografia Classe di utilità che semplifica l'uso della crittografia all'interno dei programmi Java.
Cronometro Classe di utilità che realizza un cronometro per misurare intervalli temporali espressi in millisecondi.
Database Classe per costruire un archivio di entità Contatto ordinate in modo crescente sulla base del campo nome.
Endpoint Classe che astrae l'endpoint di una connessione di rete.
Firma Classe di utilità che semplifica l'uso della firma digitale all'interno dei programmi Java.
HistoryEntry Entità che rappresenta un'entry dell'history interna di SocketUDPaffidabile, usata per evitare duplicazioni dei messaggi UDP verso l'utente.
Lexer Implementazione del lexer specifico per la seguente grammatica: scopo ::= nome / chiave @ endpoint
nome ::= ( a |...| z | A |...| Z | 0 |...| 9 | _ | $ ) { a |...| z | A |...| Z | 0 |...| 9 | _ | $ }31
chiave ::= numero { , numero }
endpoint ::= ip : numero { @ ip : numero }
ip ::= numero .
Messaggio 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.
MessaggioBase Implementazione di un generico messaggio scambiato fra due utenti: prevede un mittente, un destinatario ed un buffer di byte dimensionabile a piacere per contenere le informazioni da condividere fra i due.
Monitor Classe che realizza il monitor di output della chat; in questo contesto il termine "monitor" è da indendersi come "video", "area di visualizzazione".
Parser Il parser specifico per la seguente grammatica: scopo ::= nome / chiave @ endpoint
nome ::= ( a |...| z | A |...| Z | 0 |...| 9 | _ | $ ) { a |...| z | A |...| Z | 0 |...| 9 | _ | $ }31
chiave ::= numero { , numero }
endpoint ::= ip : numero { @ ip : numero }
ip ::= numero .
Protocollo Classe che racchiude le costanti definite dal protocollo di dialogo utilizzato dalla chat.
SocketUDPaffidabile Astrazione di un socket UDP che utilizza Automatic Repeat reQuest (ARQ) per consegnare i datagrammi all'altro capo della rete.
Utili Classe contenente solo ed esclusivamente metodi di tipo public static che realizzano funzioni di utilità.