@Service public class CompetitionControlService extends Object implements CompetitionControl
init() method must be
called. There are two versions of this method; the init()
version runs a "bootstrap" simulation that runs the customer models and
the wholesale market for a limited period of time to collect an initial
dataset from which brokers can bootstrap their internal models. During
a bootstrap simulation, external brokers cannot log in; only the default
broker is active. The init(filename) version loads bootstrap
data from the named file, validates it, and then opens up the
broker login process, most of which is delegated to the BrokerProxy.step() method is called every
timeslotLength seconds. This runs through
timeslotPhaseCount phases, calling the activate()
methods on registered components. Phases start at 1; by default there
are four phases.timeslotCount, the
simulation is ended.| Constructor and Description |
|---|
CompetitionControlService() |
| Modifier and Type | Method and Description |
|---|---|
void |
handleMessage(org.powertac.common.msg.BrokerAuthentication msg)
Authenticate Broker.
|
void |
handleMessage(org.powertac.common.msg.PauseRelease msg)
Releases a broker-initiated pause.
|
void |
handleMessage(org.powertac.common.msg.PauseRequest msg)
Allows a broker to request a pause.
|
void |
init()
Initializes the service in preparation for a new simulation
|
boolean |
isBootstrapMode()
True just in case the sim is running in bootstrap mode
|
boolean |
isRunning()
Expose simulation-running flag
|
boolean |
loginBroker(String username)
Logs in a broker, just in case the broker is on the authorizedBrokerMap.
|
void |
pause()
Signals that the clock is paused due to server overrun.
|
void |
registerTimeslotPhase(TimeslotPhaseProcessor thing,
int phase)
Allows instances of TimeslotPhaseProcessor to register themselves
to be activated during one of the processing phases in each timeslot.
|
void |
resume(long newStart)
Signals that the clock is resumed.
|
void |
runOnce(boolean bootstrapMode)
Runs a simulation that is already set up.
|
void |
runOnce(boolean bootstrapMode,
boolean dumpConfigOnly) |
void |
setAlwaysAuthorizedBrokers(List<String> brokerList)
Sets the list of broker usernames that are always authorized, even in
bootstrap mode.
|
void |
setAuthorizedBrokerList(List<String> brokerList)
Sets the list of brokers allowed and expected to log in before
starting a simulation.
|
void |
setBootstrapTimeslotMillis(long length)
Allows Spring to set the boostrap timeslot length
|
void |
setTimeslotPhaseCount(int count)
Sets the number of phases into which a timeslot is divided for processing.
|
void |
shutDown()
Shuts down the simulation and cleans up.
|
void |
stop()
Signals the simulation thread to stop after processing is completed in
the current timeslot.
|
public void init()
public void setTimeslotPhaseCount(int count)
public void setAlwaysAuthorizedBrokers(List<String> brokerList)
public void setAuthorizedBrokerList(List<String> brokerList)
setAuthorizedBrokerList in interface CompetitionControlpublic void runOnce(boolean bootstrapMode)
runOnce in interface CompetitionControlpublic void runOnce(boolean bootstrapMode,
boolean dumpConfigOnly)
runOnce in interface CompetitionControlpublic boolean loginBroker(String username)
loginBroker in interface CompetitionControlpublic boolean isRunning()
isRunning in interface CompetitionControlpublic void stop()
public void shutDown()
shutDown in interface CompetitionControlpublic void registerTimeslotPhase(TimeslotPhaseProcessor thing, int phase)
registerTimeslotPhase in interface CompetitionControlpublic boolean isBootstrapMode()
isBootstrapMode in interface CompetitionControlpublic void pause()
public void resume(long newStart)
public void handleMessage(org.powertac.common.msg.PauseRequest msg)
public void handleMessage(org.powertac.common.msg.PauseRelease msg)
public void handleMessage(org.powertac.common.msg.BrokerAuthentication msg)
public void setBootstrapTimeslotMillis(long length)
Copyright © 2018 Power TAC. All rights reserved.