add state machines

Torsten Grote
2016-03-07 18:38:38 +00:00
parent 87cc997f14
commit 38e5f41428

@@ -35,7 +35,7 @@ The introduction protocol uses three message types. It should be noted that all
* (raw) The session ID
**4: ABORT** - This should be send by a contact that encountered an error, so that it can not complete the protocol. The content is a BDF list with two elements:
* (int) The type of the message, here **3**
* (int) The type of the message, here **4**
* (raw) The session ID
![IntroductionClient](/uploads/d3ba752c95f938395e7cf4566d107aff/IntroductionClient.png)
@@ -53,6 +53,20 @@ Since the messages represent the current state of the introduction protocol, all
* All local messages are shared.
* All remote messages are shared.
# State Machines
The client can take two roles in the protocol, either the introducer or the introducee. Both roles have different states and different actions that trigger different transitions.
## Introducer State Machine
![introducer-state-machine](/uploads/aa817430efef482232c8148c9434118f/introducer-state-machine.png)
Source: [introducer-state-machine.odg](/uploads/78ae0b41c0e637fa5b5ecb1a4f65ca64/introducer-state-machine.odg)
## Introducee State Machine
![introducee-state-machine](/uploads/a464d9eb18a471fe69073f3bb01f6016/introducee-state-machine.png)
Source: [introducee-state-machine.odg](/uploads/0cd56a13dce3909d7b6ce86a8149a156/introducee-state-machine.odg)
# Draft of User Interface
### A user can make the introduction by clicking the toolbar button on the top right of the contact list.