source: geniuswebcore/geniusweb/protocol/session/SessionSettings.py@ 94

Last change on this file since 94 was 90, checked in by Bart Vastenhouw, 3 years ago

Refactor to help reusing partiesserver.

File size: 1.6 KB
Line 
1from typing import List
2
3from tudelft_utilities_logging.Reporter import Reporter
4
5from geniusweb.protocol.NegoSettings import NegoSettings
6from geniusweb.protocol.session.SessionProtocol import SessionProtocol
7from geniusweb.protocol.session.TeamInfo import TeamInfo
8from geniusweb.references.PartyWithProfile import PartyWithProfile
9
10
11class SessionSettings(NegoSettings):
12 '''
13 interface for settings for session protocols. Immutable.
14 '''
15 def getTeams(self)->List[TeamInfo] :
16 '''
17 Get the {@link TeamInfo}s.
18
19 @return list of {@link PartyWithProfile} items.
20 '''
21
22 def getTeamSize(self) -> int:
23 '''
24 @return the size of each {@link TeamInfo}. Usually 1 (SAOP etc) or
25 sometimes 2 (SHAOP). Used eg by tournament runner to determine
26 proper team construction.
27 '''
28
29 def With(self, partyprofteam:TeamInfo ) -> "SessionSettings" :
30 '''
31 Allows modification of SessionSettings to include a party. This is needed
32 for tournament auto-configuration of sessions.
33
34 @param partyprofteam the {@link TeamInfo} to be added
35 @return new modified SessionSettings object
36 '''
37
38 def getAllParties(self) -> List[PartyWithProfile]:
39 '''
40 @return all parties from all teams, as a flattened ordered list. The
41 order : start with all parties from team 1, then all from team 2,
42 etc. The specific order of the parties from a team depends on the
43 protocol.
44 '''
45
46 def getProtocol(self, logger:Reporter)->SessionProtocol :
47 '''
48 @param logger the logger where the protocol can log events to.
49 @return the an initialized and ready to use {@link SessionProtocol} that
50 can handle this Negotiation.
51 '''
Note: See TracBrowser for help on using the repository browser.