| 84 | The protocol module contains the functionality to define and execute a negotiation protocol. |
| 85 | There are session protocols and tournament protocols. |
| 86 | |
| 87 | The basic classes defining a sessionprotocol are: |
| 88 | * The sessionsettings: these define the settings for the protocol, such as the deadline, the participants and the profile |
| 89 | * The sessionstate: this contains the current state of execution of the protocol. To give some example states: "waiting for bid from party 2", "ended with agreement", "ended because party 1 broke the protocol". A state also has various {{{with()}}} functions defining the new state from an old state and a party doing an action. |
| 90 | * The sessionprotocol: this defines what happens when a session starts, when a participant enters halfway the session, and what the current state is. |
| 91 | |