Pages: [1]   Go Down
Print
Author Topic: Protocollo globale dell'ATM in Scribble  (Read 508 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rondey
Matricola
*
Offline Offline

Posts: 74


« on: 22-06-2016, 09:38:38 »

Code:
module ATM;

type <java> "java.lang.Integer" from "rt.jar" as int;
type <java> "java.lang.String" from "rt.jar" as String;

global protocol ProtocolName(role C, role S, role A) {
  //C invia le proprie credenziali e Pin ad A
  login(String, int) from C to A;
  //A decide se accettare o meno le redenziali ricevute
  choice at A{//A accetta le credenziali
   
    //Informo sia C
    success() from A to C;
    //che S
    success() from A to S;
   
    //Inizio il loop
    rec CONTINUE{
      //S invia il saldo a C
      balance(int) from S to C;
      //C può decidere se
      choice at C{//effettuare un deposito
       
        //C invia quanto vuole depositare
        deposit(int) from C to S;
        //continua il ciclo
        continue CONTINUE;
       
      } or{//oppure effettuare un prelievo
       
        //C invia quanto vuole prelevare
        withdrawal(int) from C to S;
       
        //S controlla se il saldo è sufficiente da permettere il prelievo
        choice at S{//Saldo sufficiente
         
          //S informa C
          dispense() from S to C;
                   
        } or{//Saldo insufficiente
         
          //S informa C
          overdraw() from S to C;
         
        }
        //continua il ciclo
        continue CONTINUE;
       
      } or{//oppure uscire
       
        quit() from C to S;
       
      }
    }
  }
  or{//A non accetta le credenziali e informa sia C che S
   
    failure() from A to C;
    failure() from A to S;
   
  }
 
}

Logged
Pages: [1]   Go Up
Print
Jump to: