org.powertac.server

Class CompetitionControlService

    • Method Summary

      Methods 
      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(org.powertac.common.interfaces.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 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.
    • Constructor Detail

      • CompetitionControlService

        public CompetitionControlService()
    • Method Detail

      • init

        public void init()
        Initializes the service in preparation for a new simulation
      • setTimeslotPhaseCount

        public void setTimeslotPhaseCount(int count)
        Sets the number of phases into which a timeslot is divided for processing. Intended to be called by Spring initialization. The value must be at least as large as the maximum value of timeslotPhase among the service modules.
      • setAlwaysAuthorizedBrokers

        public void setAlwaysAuthorizedBrokers(List<String> brokerList)
        Sets the list of broker usernames that are always authorized, even in bootstrap mode. Normally this is just "defaultBroker". This method is intended to be called by Spring initialization.
      • setAuthorizedBrokerList

        public void setAuthorizedBrokerList(List<String> brokerList)
        Sets the list of brokers allowed and expected to log in before starting a simulation. The simulation will not start until all brokers in the list are logged in, unless a timeout is configured.
        Specified by:
        setAuthorizedBrokerList in interface org.powertac.common.interfaces.CompetitionControl
      • runOnce

        public void runOnce(boolean bootstrapMode)
        Runs a simulation that is already set up. This is intended to be called from a method that knows whether we are running a bootstrap sim or a normal sim.
        Specified by:
        runOnce in interface org.powertac.common.interfaces.CompetitionControl
      • loginBroker

        public boolean loginBroker(String username)
        Logs in a broker, just in case the broker is on the authorizedBrokerMap. Returns true if the broker is authorized, otherwise false.
        Specified by:
        loginBroker in interface org.powertac.common.interfaces.CompetitionControl
      • isRunning

        public boolean isRunning()
        Expose simulation-running flag
        Specified by:
        isRunning in interface org.powertac.common.interfaces.CompetitionControl
      • stop

        public void stop()
        Signals the simulation thread to stop after processing is completed in the current timeslot.
      • shutDown

        public void shutDown()
        Shuts down the simulation and cleans up.
        Specified by:
        shutDown in interface org.powertac.common.interfaces.CompetitionControl
      • registerTimeslotPhase

        public void registerTimeslotPhase(org.powertac.common.interfaces.TimeslotPhaseProcessor thing,
                                 int phase)
        Allows instances of TimeslotPhaseProcessor to register themselves to be activated during one of the processing phases in each timeslot.
        Specified by:
        registerTimeslotPhase in interface org.powertac.common.interfaces.CompetitionControl
      • isBootstrapMode

        public boolean isBootstrapMode()
        True just in case the sim is running in bootstrap mode
        Specified by:
        isBootstrapMode in interface org.powertac.common.interfaces.CompetitionControl
      • pause

        public void pause()
        Signals that the clock is paused due to server overrun. The pause must be communicated to brokers.
      • resume

        public void resume(long newStart)
        Signals that the clock is resumed. Brokers must be informed of the new start time in order to sync their own clocks.
      • handleMessage

        public void handleMessage(org.powertac.common.msg.PauseRequest msg)
        Allows a broker to request a pause. It may or may not be allowed. If allowed, then the pause will take effect when the current simulation cycle has finished, or immediately if no simulation cycle is currently in progress.
      • handleMessage

        public void handleMessage(org.powertac.common.msg.PauseRelease msg)
        Releases a broker-initiated pause. After the clock is re-started, the resume() method will be called to communicate a new start time.
      • handleMessage

        public void handleMessage(org.powertac.common.msg.BrokerAuthentication msg)
        Authenticate Broker.
      • setBootstrapTimeslotMillis

        public void setBootstrapTimeslotMillis(long length)
        Allows Spring to set the boostrap timeslot length

Copyright © 2014 Power TAC. All Rights Reserved.