Executor Class Reference

Starts, stops and restarts applications and scenarios. More...

#include <ArmarXCore/util/ScenarioManagerCommon/executor/Executor.h>

Public Member Functions

 Executor (StopStrategyPtr strategy, ApplicationStarterPtr starter)
 Constructor that sets StopStrategy and ApplicationStarter.
 
std::string getApplicationStatus (Data_Structure::ApplicationInstancePtr application)
 Returns the status of an application.
 
StopStrategyPtr getDefaultStopStrategy ()
 
ApplicationStarterPtr getStarter (Data_Structure::ScenarioPtr scenario)
 
StopStrategyPtr getStopStrategy (Data_Structure::ScenarioPtr scenario)
 
void restartApplication (Data_Structure::ApplicationInstancePtr application, bool printOnly=false)
 Requests that an application be restarted.
 
void restartScenario (Data_Structure::ScenarioPtr scenario, bool printOnly=false)
 Restarts a scenario.
 
void setDefaultStarter (ApplicationStarterPtr appStarter)
 Sets the appStarter this Executor uses to start applications and request statuses.
 
void setDefaultStopStrategy (StopStrategyPtr strategy)
 Sets the strategy this Executor uses to stop applications.
 
void setStarter (ApplicationStarterPtr appStarter, Data_Structure::ScenarioPtr scenario)
 
void setStopStrategy (StopStrategyPtr strategy, Data_Structure::ScenarioPtr scenario)
 
void startApplication (Data_Structure::ApplicationInstancePtr application, bool printOnly=false, const std::string &commandLineParameters="")
 Requests that an application be started.
 
void startScenario (Data_Structure::ScenarioPtr scenario, bool printOnly=false, const std::string &commandLineParameters="")
 Starts a scenario.
 
void stopApplication (Data_Structure::ApplicationInstancePtr application)
 Requests that an application be stopped.
 
void stopScenario (Data_Structure::ScenarioPtr scenario)
 Stops a scenario.
 
void waitForApplication (const Data_Structure::ApplicationInstancePtr &application)
 Blocks until the application has no operation requested or running any more.
 
void waitForScenario (const Data_Structure::ScenarioPtr &scenario)
 Blocks until no application of the scenario has an operation requested or running.
 

Static Public Member Functions

static void loadAndSetCachedProperties (Data_Structure::ApplicationPtr application, std::string path, bool reload=false, bool set=true)
 Generates an XML file of the given application and saves it in the specified path.
 

Detailed Description

Starts, stops and restarts applications and scenarios.

Can also be used to request the status of an application. The proper system-specific stopstrategy and starter have to be set in the constructor.

Constructor & Destructor Documentation

◆ Executor()

Constructor that sets StopStrategy and ApplicationStarter.

Parameters
strategyStrategy used to stop applications.
starterStarter used to start applications and request their status.

Member Function Documentation

◆ getApplicationStatus()

std::string getApplicationStatus ( Data_Structure::ApplicationInstancePtr application)

Returns the status of an application.

Uses the ApplicationStarter to request the status, therefore the proper system-specific starter has to be set, even to use this method.

Parameters
applicationapplication whose status is returned
Returns
status of the application

◆ getDefaultStopStrategy()

Exec::StopStrategyPtr getDefaultStopStrategy ( )

◆ getStarter()

◆ getStopStrategy()

◆ loadAndSetCachedProperties()

void loadAndSetCachedProperties ( Data_Structure::ApplicationPtr application,
std::string path,
bool reload = false,
bool set = true )
static

Generates an XML file of the given application and saves it in the specified path.

If there already is an XML file at that location it only reloads the file if the executable is more recently changed than the Xml file

Parameters
applicationApplication whose XML file is to be generate
pathlocation to save the XML, must be a folder
reloadforces to reload the cached XML
setif true the newly Cached Xml gets loaded into the Application (Warning: If you load an ApplicationInstance the cfg parameter have to be reloaded)

◆ restartApplication()

void restartApplication ( Data_Structure::ApplicationInstancePtr application,
bool printOnly = false )

Requests that an application be restarted.

An application that is not running is started.

Parameters
applicationapplication to be restarted

◆ restartScenario()

void restartScenario ( Data_Structure::ScenarioPtr scenario,
bool printOnly = false )

Restarts a scenario.

Iterates over the applications in the scenario and restarts them.

Parameters
scenarioscenario to be restarted
Returns
true if all applications were successfully restarted

◆ setDefaultStarter()

void setDefaultStarter ( ApplicationStarterPtr appStarter)

Sets the appStarter this Executor uses to start applications and request statuses.

Needs to be system specific. Use the Factory-Classes to get the proper appStarter for your system.

Parameters
appStarterappStarter to be set
See also
StarterFactory
StarterFactoryLinux

◆ setDefaultStopStrategy()

void setDefaultStopStrategy ( StopStrategyPtr strategy)

Sets the strategy this Executor uses to stop applications.

Needs to be system specific. Use the Factory-Classes to get the proper strategy for your system.

Parameters
strategystrategy to be set
See also
StopStrategyFactory

◆ setStarter()

void setStarter ( ApplicationStarterPtr appStarter,
Data_Structure::ScenarioPtr scenario )

◆ setStopStrategy()

void setStopStrategy ( StopStrategyPtr strategy,
Data_Structure::ScenarioPtr scenario )

◆ startApplication()

void startApplication ( Data_Structure::ApplicationInstancePtr application,
bool printOnly = false,
const std::string & commandLineParameters = "" )

Requests that an application be started.

All of these methods record an intent and return immediately; the work happens on a worker thread owned by the application's ApplicationLifecycle. A request supersedes any intent that has not been carried out yet, so the last thing the user asked for is what happens. Nothing is ever refused.

Parameters
applicationapplication to be started.

◆ startScenario()

void startScenario ( Data_Structure::ScenarioPtr scenario,
bool printOnly = false,
const std::string & commandLineParameters = "" )

Starts a scenario.

Iterates over the applications in the scenario and starts them.

Parameters
scenarioscenario to be started
Returns
true if all applications were successfully started

◆ stopApplication()

void stopApplication ( Data_Structure::ApplicationInstancePtr application)

Requests that an application be stopped.

Parameters
applicationapplication to be stopped

◆ stopScenario()

void stopScenario ( Data_Structure::ScenarioPtr scenario)

Stops a scenario.

Iterates over the applications in the scenario and stops them.

Parameters
scenarioscenario to be stopped
Returns
true if all applications were successfully stopped

◆ waitForApplication()

void waitForApplication ( const Data_Structure::ApplicationInstancePtr & application)

Blocks until the application has no operation requested or running any more.

The GUI never needs this - it watches the status instead - but a caller that exits right afterwards, such as the command line interface, has to see the operation through.

◆ waitForScenario()

void waitForScenario ( const Data_Structure::ScenarioPtr & scenario)

Blocks until no application of the scenario has an operation requested or running.


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