12.2. States

T.B.D.

item def DataPacket;
item def Exit;
part def Relay {
  port incoming;
  port outgoing;
  state relay_behavior[1] {
    transition first start then waiting;
    state waiting;
       
    transition
      first waiting
      accept Exit via incoming
      then done;
         
    transition receiveData
      first waiting
      accept packet : DataPacket via incoming
      then sending;
         
    state sending {
      entry send receiveData.packet via outgoing;
    }
    transition first sending then waiting;
  }
}