cz.cuni.amis.pogamut.udk.utils
Class MultipleUDKBotRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>

Package class diagram package MultipleUDKBotRunner
java.lang.Object
  extended by cz.cuni.amis.pogamut.base.agent.utils.runner.impl.MultipleAgentRunner<BOT,PARAMS,MODULE>
      extended by cz.cuni.amis.pogamut.udk.utils.MultipleUDKBotRunner<BOT,PARAMS,MODULE>
All Implemented Interfaces:
IMultipleAgentRunner<BOT,PARAMS,MODULE>

public class MultipleUDKBotRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>
extends MultipleAgentRunner<BOT,PARAMS,MODULE>

This class has only one purpose - execute ONE OR MORE BOTS inside 'main' method. You can't use it for anything else! It is THE SHORTCUT of all SHORTCUTS to execute multiple bots, wait till they finishe and close the whole Pogamut.

Designed especially for the usage inside NetBeans projects.

NOTE: by default, all bots get paused after they start and they are resumed after all bots are present in UDK. To change this behaviour pass 'false' through MultipleAgentRunner.setPausing(boolean).

NOTE: It's not even meant to be instantiated twice for two different batch of bots and consequently executed in two different threads! Single-purpose class only ;-)

NOTE: It might be very interesting for you to check out the source of method MultipleUDKBotRunner#startAgent() to see how the agent should be instantiated via UDKBotFactory using UDKBotModule.

Author:
Jimmy

Field Summary
protected  String host
          Default host where the instances are going to be connected as defaults, see IAgentParameters.assignDefaults(IAgentParameters).
protected  String name
          Default name that will serve as a basis for IAgentId, see IAgentParameters.assignDefaults(IAgentParameters).
protected  int port
          Default port where the instances are going to be connected as defaults, see IAgentParameters.assignDefaults(IAgentParameters).
 
Fields inherited from class cz.cuni.amis.pogamut.base.agent.utils.runner.impl.MultipleAgentRunner
agents, consoleLogging, defaultLogLevel, killed, latch, listener, log, main, mutex
 
Constructor Summary
MultipleUDKBotRunner(String name)
          Construct the runner + specify the default name, host:port will be taken from the Pogamut platform properties.
MultipleUDKBotRunner(String name, String host, int port)
          Construct the runner + specify all defaults.
 
Method Summary
 String getHost()
          Returns host, where newly launched bots will be connected to.
 String getName()
          Returns name that is going to be used to form new IAgentId of the bots.
 int getPort()
          Returns port, where newly launched bots will be connected to.
protected  IAgentFactory newAgentFactory(MODULE agentModule)
          Uses UDKBotFactory for agent construction.
protected  IAgentParameters newDefaultAgentParameters()
          Provides default parameters that is, IAgentId using name and SocketConnectionAddress using host and port.
protected  void preStartHook(BOT agent)
          We're setting the logging level to Level.WARNING here so the bot won't log much.
 MultipleUDKBotRunner<BOT,PARAMS,MODULE> setHost(String host)
          Sets host, where newly launched bots will be connected to.
 MultipleUDKBotRunner<BOT,PARAMS,MODULE> setName(String name)
          Sets name that is going to be used to form new IAgentId of the bots.
 MultipleUDKBotRunner<BOT,PARAMS,MODULE> setPort(int port)
          Sets port, where newly launched bots will be connected to.
 List<BOT> startAgents(IAgentDescriptor<PARAMS,MODULE>... agentDescriptors)
           
 
Methods inherited from class cz.cuni.amis.pogamut.base.agent.utils.runner.impl.MultipleAgentRunner
createAgentWithParams, getAgentCount, getLog, isMain, isPausing, killAgent, killAgents, newAgentId, postStartedHook, postStartHook, preInitHook, preResumeHook, setConsoleLogging, setLog, setLogLevel, setMain, setPausing, startAgent, startAgentsMain, startAgentsMain, startAgentsStandard, startAgentsStandard
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

host

protected String host
Default host where the instances are going to be connected as defaults, see IAgentParameters.assignDefaults(IAgentParameters).


port

protected int port
Default port where the instances are going to be connected as defaults, see IAgentParameters.assignDefaults(IAgentParameters).


name

protected String name
Default name that will serve as a basis for IAgentId, see IAgentParameters.assignDefaults(IAgentParameters).

Constructor Detail

MultipleUDKBotRunner

public MultipleUDKBotRunner(String name,
                            String host,
                            int port)
Construct the runner + specify all defaults.

Parameters:
name - default name that serve as a basis for IAgentId
host - default host where the instances are going to be connected
port - default port where the instances are going to be connected

MultipleUDKBotRunner

public MultipleUDKBotRunner(String name)
Construct the runner + specify the default name, host:port will be taken from the Pogamut platform properties.

Parameters:
factory - factory to be used for creating new IUDKBot instances
name - default name that serve as a basis for IAgentId
Method Detail

getName

public String getName()
Returns name that is going to be used to form new IAgentId of the bots.

Returns:
name used for the newly started bots

setName

public MultipleUDKBotRunner<BOT,PARAMS,MODULE> setName(String name)
Sets name that is going to be used to form new IAgentId of the bots.

If null is passed, generic "UDKBot" will be set.

Parameters:
name - name used for the newly started bots
Returns:
this instance

getHost

public String getHost()
Returns host, where newly launched bots will be connected to.

Returns:
host running GBUDK server

setHost

public MultipleUDKBotRunner<BOT,PARAMS,MODULE> setHost(String host)
Sets host, where newly launched bots will be connected to.

Parameters:
host - host running GBUDK server (can't be null)
Returns:
this instance

getPort

public int getPort()
Returns port, where newly launched bots will be connected to.

Returns:
port at the host where GBUDK server is listening for bot connections

setPort

public MultipleUDKBotRunner<BOT,PARAMS,MODULE> setPort(int port)
Sets port, where newly launched bots will be connected to.

Parameters:
port - at the host where GBUDK server is listening for bot connections
Returns:
this instance

preStartHook

protected void preStartHook(BOT agent)
                     throws cz.cuni.amis.utils.exception.PogamutException
We're setting the logging level to Level.WARNING here so the bot won't log much.

Overrides:
preStartHook in class MultipleAgentRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>
Throws:
cz.cuni.amis.utils.exception.PogamutException

newDefaultAgentParameters

protected IAgentParameters newDefaultAgentParameters()
Provides default parameters that is, IAgentId using name and SocketConnectionAddress using host and port.

Specified by:
newDefaultAgentParameters in class MultipleAgentRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>

newAgentFactory

protected IAgentFactory newAgentFactory(MODULE agentModule)
Uses UDKBotFactory for agent construction.

Specified by:
newAgentFactory in class MultipleAgentRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>

startAgents

public List<BOT> startAgents(IAgentDescriptor<PARAMS,MODULE>... agentDescriptors)
Specified by:
startAgents in interface IMultipleAgentRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>
Overrides:
startAgents in class MultipleAgentRunner<BOT extends UDKBot,PARAMS extends UDKAgentParameters,MODULE extends UDKBotModule>


Copyright © 2013 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.