anthill.antsim.impl
Class ScenarioImpl

java.lang.Object
  |
  +--anthill.antsim.impl.ScenarioImpl
All Implemented Interfaces:
Clearable, ResponseListener, Scenario
Direct Known Subclasses:
GeneticScenarioImpl

public class ScenarioImpl
extends java.lang.Object
implements Scenario, ResponseListener

Class ScenarioImpl is a simple implementation of interface Scenario in which a predefined set of resources is inserted in the network and then a certain number of requests are performed and simulate. A ScenarioImpl is composed of a Peernet and a ResourceSet object. Each resource included in the ResourceSet is inserted before starting the simulation in the Peernet. Then, the ResourceSet is used to generate a certain number of requests to be presented to the nests composing the network.

Version:
$Revision$
Author:
Alberto Montresor

Field Summary
protected  Factory factory
          Factory used to instantiate objects
protected  int finalRounds
          Final rounds to be performed; during this phase, requests are not generated and statistics are computed
protected  int initRounds
          Initialization rounds to be performed; during this phase, requests are generated and statistics are not computed
protected  ResponseMonitor monitor
          Responses
protected  Peernet net
          Peernet on which the genetic code will be evaluated
protected  int netVersion
          Version identifier of the peer network; when init params change, the version increase
protected  int nrequests
           
protected  ResourceSet resources
          Set of resources stored in the Anthill network
protected  int rounds
          Regular rounds to be performed; during this phase, requests are generated and statistics are computed
protected  int rsetVersion
          Version identifier of the resource set; when init params change, the version increase
static java.lang.String SCENARIO_ROUNDS
          String name of the parameter used to determine the number of rounds which will be performed in this scenario.
protected  Stats stats
          Stats
 
Constructor Summary
ScenarioImpl(Factory factory, int nrequests, int initRounds, int rounds, int finalRounds)
          Instantiates a new ScenarioImpl.
 
Method Summary
 void clear()
          Restores the object to its initial state.
 void complete()
          Upcall method used to notify this listener that the request associated to it has finished to return resources.
 void evaluate()
          Perform the evaluation of this scenario object by simulating it.
 void returnResources(RequestId rid, Resource[] resources)
          Upcall method used to notify this listener that the request associated to it has returned the specified set of resources.
 void setStats(Stats stats)
          Set the statistics object which will be used throughout the scenario evaluation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SCENARIO_ROUNDS

public static final java.lang.String SCENARIO_ROUNDS
String name of the parameter used to determine the number of rounds which will be performed in this scenario.

factory

protected Factory factory
Factory used to instantiate objects

nrequests

protected int nrequests

initRounds

protected int initRounds
Initialization rounds to be performed; during this phase, requests are generated and statistics are not computed

rounds

protected int rounds
Regular rounds to be performed; during this phase, requests are generated and statistics are computed

finalRounds

protected int finalRounds
Final rounds to be performed; during this phase, requests are not generated and statistics are computed

stats

protected Stats stats
Stats

monitor

protected ResponseMonitor monitor
Responses

net

protected Peernet net
Peernet on which the genetic code will be evaluated

netVersion

protected int netVersion
Version identifier of the peer network; when init params change, the version increase

resources

protected ResourceSet resources
Set of resources stored in the Anthill network

rsetVersion

protected int rsetVersion
Version identifier of the resource set; when init params change, the version increase
Constructor Detail

ScenarioImpl

public ScenarioImpl(Factory factory,
                    int nrequests,
                    int initRounds,
                    int rounds,
                    int finalRounds)
Instantiates a new ScenarioImpl.
Parameters:
factory - the factory object used to generate the peernet and the resource set contained in a scenario
rounds - the number of rounds of the run
Method Detail

clear

public void clear()
Restores the object to its initial state. The network is re-initialized as an empty network.
Specified by:
clear in interface Clearable

setStats

public void setStats(Stats stats)
Set the statistics object which will be used throughout the scenario evaluation.
Specified by:
setStats in interface Scenario
Following copied from interface: anthill.antsim.Scenario
Parameters:
stats - the object used to collect statistics

evaluate

public void evaluate()
Perform the evaluation of this scenario object by simulating it. The simulation is subdivided in rounds. At each iteration, a new request is generated and assigned to one of the nest included in the simulated peer network, which generates an ant for it. Furthermore, for each nest, an ant included in the manager queue is selected and its run() method is executed. Statistics about the simulated execution of the code are collected in the Stats object specified through method setStats().
Specified by:
evaluate in interface Scenario

returnResources

public void returnResources(RequestId rid,
                            Resource[] resources)
Upcall method used to notify this listener that the request associated to it has returned the specified set of resources.
Specified by:
returnResources in interface ResponseListener
Parameters:
resources - the resources found.

complete

public void complete()
Upcall method used to notify this listener that the request associated to it has finished to return resources.
Specified by:
complete in interface ResponseListener