/** FILE: Testbuffer.java **/
import java.io.PrintStream;
/* CLASS Testbuffer
*
* classe di partenza, prende in input dei parametri e crea una interfaccia grafica
* --> vedi interfaccia.java
*/
class Testbuffer
{
/*
* METODO man()
*
* scrive sul terminale il manuale d'uso
*/
static void man()
{
System.out.print("\nAPPLICAZIONE JAVA Testbuffer\t by Caponi, Convertino, Federici\n");
System.out.print("\nSYNOPSIS\n\tjava Testbuffer [OPTION]...[POLITICA]...][SPECIAL]...\n");
System.out.print("\nDESCRIPTION\n\tLancia una interfaccia grafica\n\tPer settare da ");
System.out.print("tastiera i normali parametri vedere OPZIONI\n\tPer settare la politica ");
System.out.print("vedere POLITICA\n\tPer i comandi speciali vedere SPECIAL\n");
System.out.print("\nOPTION\n\t-f=\n\t\tFile dove prendere i messagi di input\n");
System.out.print("\t-a=\n\t\tVelocità relativa tra mittenti(put) \n\t");
System.out.print("\te destinatari(get) (valore float)\n");
System.out.print("\t-b=\n\t\tTempo medio di interarrivo (millisecondi)\n");
System.out.print("\t-h, -?, --help\n\t\tVisualizza questo help\n");
System.out.print("\nPOLITICA\n\t-1, -anarchica:\tpolitica anarchica\n\t-2, -fifo: \t");
System.out.print("politica fifo\n\t-3, -personale:\tpolitica personalizzata\n");
System.out.print("\nSPECIAL\n\t-NOGRAPHICS\n\t\tNon visualizza le finestre di riepilogo\n");
System.out.print("\t-r=\n\t\tQuante volte ripetere la stessa simulazione\n\t\t(per ");
System.out.print("valori maggiori di uno non vilualizza\n\t\tle finestre di riepilogo -NOGRAPHICS)\n");
}
/*
* METODO main()
*
* controlla l'input e imposta i parametri in input. Se sono stati inseriti male visualizza
* il manuale altrimenti crea una finestra di interaccia --> vedi interfaccia.java
*/
public static void main(String args[])
{
boolean flag = true;
for(int i = 0; i < args.length; i++)
if(args[i].charAt(0) == '/' || args[i].charAt(0) == '-')
{
if(args[i].length() > 2 && (args[i].charAt(2) == ':' || args[i].charAt(2) == '='))
{
String s = new String(args[i].toCharArray(), 3, args[i].length() - 3);
switch(args[i].charAt(1))
{
case 102: // 'f'
file = s;
break;
case 97: // 'a'
alpha = (new Float(s)).floatValue();
break;
case 98: // 'b'
beta = Integer.parseInt(s);
break;
case 'r': //
nograp = true;
ripeti = Integer.parseInt(s);
break;
default:
man();
flag = false;
break;
}
}
else
{
String s1 = new String(args[i].toCharArray(), 1, args[i].length() - 1);
if(s1.equalsIgnoreCase("1") || s1.equalsIgnoreCase("anarchica"))
politica = '1';
else
if(s1.equalsIgnoreCase("2") || s1.equalsIgnoreCase("fifo"))
politica = '2';
else
if(s1.equalsIgnoreCase("3") || s1.equalsIgnoreCase("personale"))
politica = '3';
else
if(s1.equalsIgnoreCase("NOGRAPHICS")) // per non visualizzare le finestre di output
{
nograp = true;
}
else
{
man();
flag = false;
}
}
}
else
{
man();
flag = false;
}
if(flag)
new interfaccia(alpha, beta, file, politica, nograp, ripeti); // --> vedi interfaccia.java
}
/*
* variabili preimpostate
*
* questi valori compariranno di default sull'interfaccia se non vengono impostati
*/
static float alpha = 1.5F;
static int beta = 20;
static String file = "prova.txt";
static char politica = '1';
static boolean nograp;
static int ripeti = 1;
}