products/Sources/formale Sprachen/VDM/VDMPP/SmokingPP/lib image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: VDMUtil.vdmpp   Sprache: VDM

Original von: VDM©

class Busstop is subclass of Waypoint

 instance variables
  waiting : set of Passenger := {};

 operations
  public Busstop : Waypoint`BusStops ==> Busstop
  Busstop(s) == 
  (
   id := s;
   isStop := true;
  );

  --number of passenger waiting
  pure public GetWaitingCount : () ==> nat
  GetWaitingCount() ==
   return card waiting;
  
  --get passengers waiting
  pure public GetWaiting : () ==> set of Passenger
  GetWaiting() ==
   return waiting;

  -- get passengers waiting on a bus which passes specific stops 
  pure public GetWaitingOn : seq of Waypoint==> set of Passenger
  GetWaitingOn(stopsAt)==
   let stops = elems stopsAt in
   return  {p | p in set waiting & {p.GetDestination()} inter stops <> {}};

  --passenger arrived at the busstop
  public AddPassenger : Passenger ==> ()
  AddPassenger(p) == 
   waiting := waiting union {p}; 
  
  --passenger got on a bus
  public PassengerLeft : set of Passenger ==> ()
  PassengerLeft(p) ==
   waiting := waiting \ p
  pre p inter waiting <> {};

sync
 ---protect waiting instance variable
 mutex(AddPassenger, PassengerLeft)

end Busstop

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤





Druckansicht
unsichere Verbindung
Druckansicht
sprechenden Kalenders

Eigene Datei ansehen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff