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.

Definition at line 61 of file Executor.h.

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.

Definition at line 47 of file Executor.cpp.

+ Here is the call graph for this function:

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

Definition at line 116 of file Executor.cpp.

+ Here is the call graph for this function:

◆ getDefaultStopStrategy()

Exec::StopStrategyPtr getDefaultStopStrategy ( )

Definition at line 316 of file Executor.cpp.

◆ getStarter()

Definition at line 296 of file Executor.cpp.

+ Here is the caller graph for this function:

◆ getStopStrategy()

Definition at line 306 of file Executor.cpp.

+ Here is the caller graph for this function:

◆ 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)

Definition at line 218 of file Executor.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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

Definition at line 89 of file Executor.cpp.

+ Here is the call graph for this function:

◆ 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

Definition at line 163 of file Executor.cpp.

◆ 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

Definition at line 278 of file Executor.cpp.

+ Here is the caller graph for this function:

◆ 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

Definition at line 272 of file Executor.cpp.

+ Here is the caller graph for this function:

◆ setStarter()

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

Definition at line 290 of file Executor.cpp.

◆ setStopStrategy()

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

Definition at line 284 of file Executor.cpp.

◆ 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.

Definition at line 67 of file Executor.cpp.

+ Here is the call graph for this function:

◆ 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

Definition at line 149 of file Executor.cpp.

◆ stopApplication()

void stopApplication ( Data_Structure::ApplicationInstancePtr application)

Requests that an application be stopped.

Parameters
applicationapplication to be stopped

Definition at line 81 of file Executor.cpp.

+ Here is the call graph for this function:

◆ 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

Definition at line 157 of file Executor.cpp.

◆ 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.

Definition at line 101 of file Executor.cpp.

+ Here is the caller graph for this function:

◆ waitForScenario()

void waitForScenario ( const Data_Structure::ScenarioPtr & scenario)

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

Definition at line 107 of file Executor.cpp.

+ Here is the call graph for this function:

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