source: protocol/src/main/java/geniusweb/protocol/NegoSettings.java

Last change on this file was 52, checked in by ruud, 13 months ago

Fixed small issues in domaineditor.

File size: 1.6 KB
Line 
1package geniusweb.protocol;
2
3import com.fasterxml.jackson.annotation.JsonAutoDetect;
4import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
5import com.fasterxml.jackson.annotation.JsonSubTypes;
6import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
7import com.fasterxml.jackson.annotation.JsonTypeInfo;
8
9import geniusweb.protocol.session.SessionSettings;
10import geniusweb.protocol.tournament.TournamentSettings;
11import tudelft.utilities.logging.Reporter;
12
13/**
14 * Interface for negotiation settings. A negotiation can be either a single
15 * session or a tournament
16 */
17@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE)
18@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
19@JsonSubTypes({ @Type(value = SessionSettings.class),
20 @Type(value = TournamentSettings.class) })
21
22public interface NegoSettings {
23
24 /**
25 *
26 * @return the maximum run time (seconds). In deterministic runs this can be
27 * an exact number (#sessions * runtime per session) but this
28 * interface also allows more random tournament protocols. The
29 * protocol should stick closely with the maximum it provides to
30 * enable planning of tournaments properly.
31 */
32 public Double getMaxRunTime();
33
34 /**
35 * @param logger the logger where the protocol can log events to.
36 * @return an initialized and ready to use {@link NegoProtocol} that can
37 * handle this Negotiation.
38 */
39 public NegoProtocol getProtocol(Reporter logger);
40}
Note: See TracBrowser for help on using the repository browser.