UnCoVer (Using Coverability for Verification)
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
Scenario Class Referenceabstract

A scenario is a subprogram using a set of input parameters to execute some algorithms, producing desired output. More...

#include <Scenario.h>

Inheritance diagram for Scenario:
Inheritance graph
[legend]
Collaboration diagram for Scenario:
Collaboration graph
[legend]

Public Member Functions

virtual ~Scenario ()
 The destructor of the current Scenario.
 
void initialize (vector< string > &params)
 Initializes the current Scenario with the given vector of parameters. More...
 
virtual void run ()=0
 Executes the scenario. More...
 
string getName () const
 Returns the name of this Scenario, which is a string beginning with 'scn_'. More...
 
bool isInitialized () const
 Check whether the Scenario was already initialized or not. More...
 
string getScenarioDesciption () const
 Returns a full description of the given Scenario. More...
 

Protected Member Functions

 Scenario (string name, string desciptor, vector< string > const &alternateNames=vector< string >())
 Generates an uninitialized Scenario with the given name and call descriptor. More...
 
virtual void initialize (unordered_map< string, string > &parameters)=0
 Initializes the scenario with the given mapping, where the keys are parameter names. More...
 
void addParameter (string paramName, string description, bool mandatory=true)
 Defined a new input parameter with the name 'paramName' the description 'description'. More...
 
void addSynonymFor (string original, string synonym)
 Stores that the parameter 'original' is also meant if 'synonym' was given as parameter. More...
 
void checkInitializationAndThrow () const
 Check if the Scenario was initialized and throws a RunException if it was not. More...
 

Protected Attributes

const string scenarioName
 A unique name of this scenario starting with "scn_".
 
const vector< string > alternateNames
 A vector containing all names for this Scenario, beyond scenarioName.
 
const string scenarioDescriptor
 Contains a description of how a call of this scenario may look like. More...
 

Private Attributes

vector< string > parameterNames
 Contains the names of all parameters of the Scenario. More...
 
unordered_map< string, pair
< string, bool > > 
parameterDescriptor
 Stores detailed description of every parameter of this Scenario and whether the parameter is mandatory or not.
 
unordered_map< string, string > synonyms
 Stores all synonyms for parameters.
 
bool wasInitialized
 Stores whether the Scenario was initialized or not.
 

Detailed Description

A scenario is a subprogram using a set of input parameters to execute some algorithms, producing desired output.

Input, output and used algorithms are scenario dependent. Scenarios are usually started from the user and may have arbitrary long execution times.

Author
Jan Stückrath

Constructor & Destructor Documentation

Scenario ( string  name,
string  desciptor,
vector< string > const &  alternateNames = vector<string>() 
)
protected

Generates an uninitialized Scenario with the given name and call descriptor.

Parameters
namethe name of the current scenario
desciptorthe call descriptor of the current scenario
alternateNamesa list of all synonyms for this scenario

Member Function Documentation

void addParameter ( string  paramName,
string  description,
bool  mandatory = true 
)
protected

Defined a new input parameter with the name 'paramName' the description 'description'.

The boolean specifies whether the parameter is mandatory or not. The order in which the parameters are defined using this method also specifies the order in which the parameters are expected if this scenario is called without parameter names, i.e. if the i-th input has only a value and no name, the name given at the i-th call of this method is used.

Parameters
paramNamea unique name for this parameter
descriptiona description of the defines parameter (for documentary purposes)
mandatorytrue if and only if the parameter should be mandatory
void addSynonymFor ( string  original,
string  synonym 
)
protected

Stores that the parameter 'original' is also meant if 'synonym' was given as parameter.

Using a defined parameter as 'synonym' will lead to undefined behavior.

Parameters
originalan already defined parameter name
synonyma name which will from now on be handled as if 'original' was given
void checkInitializationAndThrow ( ) const
protected

Check if the Scenario was initialized and throws a RunException if it was not.

See Also
exceptions::RunException
string getName ( ) const

Returns the name of this Scenario, which is a string beginning with 'scn_'.

Returns
the name of this Scenario
string getScenarioDesciption ( ) const

Returns a full description of the given Scenario.

The description thereby contains an abstract description of the Scenarios functionality and a detailed description of all its parameters.

Returns
a full descrription ot the given Scenario
void initialize ( vector< string > &  params)

Initializes the current Scenario with the given vector of parameters.

Each element of 'params' must be of the form 'key=value' and 'key' has to be a defined parameter of the scenario.

Parameters
paramsa key-value vector of the scenario parameters
virtual void initialize ( unordered_map< string, string > &  parameters)
protectedpure virtual

Initializes the scenario with the given mapping, where the keys are parameter names.

May throw a uncover::basic_types::InitialisationException if parameters are invalid.

Parameters
parametersa mapping containing parameter names as keys and their values

Implemented in BackwardAnalysisScenario, LEQCheckScenario, GXLtoPicConverter, GTXLtoLatexConverter, LeaderElectionRuleCreater, XMLTestScenario, BackwardStepTest, MatcherScenario, and RulePreparerTest.

bool isInitialized ( ) const

Check whether the Scenario was already initialized or not.

Returns
true iff the Scenario was initialized
virtual void run ( )
pure virtual

Executes the scenario.

The scenario has to be fully initialized before calling this function.

Implemented in BackwardAnalysisScenario, LEQCheckScenario, GXLtoPicConverter, GTXLtoLatexConverter, LeaderElectionRuleCreater, XMLTestScenario, BackwardStepTest, MatcherScenario, and RulePreparerTest.

Member Data Documentation

vector<string> parameterNames
private

Contains the names of all parameters of the Scenario.

The position of each name specifies the name of nameless parameter (if the name of the ith is not given, the name is parameterNames[i]).

const string scenarioDescriptor
protected

Contains a description of how a call of this scenario may look like.

This does not include detailed description of the parameters.


The documentation for this class was generated from the following files: