public class Session
extends java.lang.Object
Session
consists of Round
s with in turn consists of
Turn
. From this session object some information about the current
negotiation can be extracted. Important is the
startNewRound(Round)
method which is used to add a new round
to the session. At this moment (05-08-2014) adding new rounds to the session
is the responsibility of the SessionManager
.Constructor and Description |
---|
Session(Deadline deadlines,
SessionsInfo info)
Create a new instance of the session object.
|
Modifier and Type | Method and Description |
---|---|
Deadline |
getDeadlines()
Gets the deadline constraints
|
SessionsInfo |
getInfo() |
Action |
getMostRecentAction()
Get the most recently executed action.
|
Round |
getMostRecentRound()
Get the most recent round.
|
int |
getRoundNumber()
Get the current round number.
|
java.util.List<Round> |
getRounds()
Gets the rounds currently in this session.
|
long |
getRuntimeInNanoSeconds() |
double |
getRuntimeInSeconds() |
Timeline |
getTimeline() |
int |
getTurnNumber()
Get the current turn number within the current round.
|
boolean |
isDeadlineReached()
Check whether one of the deadlines is reached.
|
boolean |
isFirstRound()
Check whether this is the first round (round 1).
|
boolean |
isTimerRunning() |
void |
removeLastRound()
Removes the last (supposedly incomplete) round, if there is a last round
|
void |
setRuntimeInNanoSeconds(long nanoSeconds) |
void |
setRuntimeInSeconds(double seconds) |
void |
setTimeline(Timeline timeline) |
void |
startNewRound(Round round)
Add a round to this session.
|
void |
startTimer()
Updates the timestamp of this
Session . |
void |
stopTimer()
Updates the timestamp of this
Session . |
public Session(Deadline deadlines, SessionsInfo info)
Session
. This also creates a timeline that starts running the
moment Session is created.deadlines
- Map of deadline constraintsinfo
- the global SessionsInfo
public Deadline getDeadlines()
public void startTimer()
Session
. Use just before starting
the negotiation for most accurate timing. Timing is used in for example
time deadline constraints. But might also be used in log messages as well
as statistics.public void stopTimer()
Session
. Use just after finish the
negotiation for most accurate timing. Timing is used in for example time
deadline constraints. But might also be used in log messages as well as
statistics. If you need to manually set it, consider using the
setRuntimeInNanoSeconds(long)
function.public java.util.List<Round> getRounds()
startNewRound(Round)
is called a new round will be added. Each
round already includes all its Turn
s, but some turns might not
yet been done.public Round getMostRecentRound()
getRounds()
method, or null if no
round has been done yet.public void startNewRound(Round round)
MultilateralProtocol.getRoundStructure(java.util.List, Session)
round
- The round to add to this session.public int getRoundNumber()
public int getTurnNumber()
public boolean isFirstRound()
getRoundNumber()
equals 1public void removeLastRound()
public Action getMostRecentAction()
public boolean isDeadlineReached()
public long getRuntimeInNanoSeconds()
public double getRuntimeInSeconds()
public void setRuntimeInNanoSeconds(long nanoSeconds)
public void setRuntimeInSeconds(double seconds)
public boolean isTimerRunning()
public Timeline getTimeline()
public void setTimeline(Timeline timeline)
public SessionsInfo getInfo()