#include <DeploymentComponent.hpp>
It allows to create connections between components, load the properties and scripts for components and setup component activities.
Public Member Functions | |
| DeploymentComponent (std::string name="Configurator") | |
| bool | connectPeers (const std::string &one, const std::string &other) |
| Establish a bidirectional connection between two tasks. | |
| bool | connectPorts (const std::string &one, const std::string &other) |
| Establish a data flow connection between two tasks. | |
| bool | connectPorts (const std::string &one, const std::string &one_port, const std::string &other, const std::string &other_port) |
| Connect two named ports of components. | |
| bool | addPeer (const std::string &from, const std::string &to) |
| Establish a uni directional connection form one task to another. | |
| bool | import (const std::string &path) |
| Import a library or all libraries in a given directory. | |
| bool | loadLibrary (const std::string &name) |
| Use this command to load a dynamic library into the memory of the current process. | |
| bool | loadComponent (const std::string &name, const std::string &type) |
| Load a new component in the current process. | |
| bool | unloadComponent (const std::string &name) |
| Unload a loaded component from the current process. | |
| void | displayComponentTypes () const |
| This function prints out the component types this DeploymentComponent can create. | |
| bool | setPeriodicActivity (const std::string &comp_name, double period, int priority, int scheduler) |
| (Re-)set the activity of a component which was loaded with loadComponent. | |
| bool | setNonPeriodicActivity (const std::string &comp_name, int priority, int scheduler) |
| (Re-)set the activity of a component which was loaded with loadComponent. | |
| bool | setSlaveActivity (const std::string &comp_name, double period) |
| (Re-)set the activity of a component which was loaded with loadComponent. | |
| bool | setActivity (const std::string &comp_name, const std::string &act_type, double period, int priority, int scheduler) |
| (Re-)set the activity of a component which was loaded with loadComponent. | |
| bool | loadComponents (const std::string &config_file) |
| Load a (partial) application XML configuration from disk. | |
| bool | configureComponents () |
| Configure the components with loaded configuration(s). | |
| bool | startComponents () |
| Start all components in the current configuration which have AutoStart set to true. | |
| void | clearConfiguration () |
| Clear all loaded configuration options. | |
| bool | stopComponents () |
| Stop all loaded and running components. | |
| bool | cleanupComponents () |
| Cleanup all loaded and not running components. | |
| bool | unloadComponents () |
| Unload all loaded and not running components. | |
| bool | kickStart (const std::string &file_name) |
| This function runs loadComponents, configureComponents and startComponents in a row, given no failures occur along the way. | |
| bool | kickOut () |
| Stop, cleanup and unload all components which were loaded by this component. | |
| bool | configure (const std::string &name) |
| Configure a component by loading the property file 'name.cpf' for component with name name. | |
| bool | configureFromFile (const std::string &name, const std::string &filename) |
| Configure a component by loading a property file. | |
| bool | loadConfiguration (const std::string &config_file) |
| Load a (partial) application XML configuration from disk. | |
| bool | loadConfigurationString (const std::string &config_text) |
| Identical to loadConfiguration, but reads the XML from a string instead of a file. | |
Protected Types | |
|
typedef std::map < std::string, ConnectionData > | ConMap |
| This maps connection names to associated ports. | |
|
typedef std::map < std::string, ComponentData > | CompList |
| This vector holds the dynamically loaded components. | |
Protected Attributes | |
| RTT::PropertyBag | root |
| This bag stores the current configuration. | |
|
RTT::Property < std::string > | compPath |
| RTT::Property< bool > | autoUnload |
| RTT::Attribute< bool > | validConfig |
| RTT::Constant< int > | sched_RT |
| RTT::Constant< int > | sched_OTHER |
| RTT::Constant< int > | lowest_Priority |
| RTT::Constant< int > | highest_Priority |
| ConMap | conmap |
| CompList | comps |
| void * | handle |
| Handle of last loaded library. | |
| std::string | libname |
| Name of last loaded libarary. | |
Static Protected Attributes | |
|
static std::vector < std::pair < std::string, void * > > | LoadedLibs |
| Keep a list of all loaded libraries such that double loads are avoided during import/loadLibrary. | |
Classes | |
| struct | ComponentData |
| Each configured component is stored in a struct like this. More... | |
| struct | ConnectionData |
| Assembles all ports which share a connection. More... | |
| bool connectPeers | ( | const std::string & | one, | |
| const std::string & | other | |||
| ) |
Establish a bidirectional connection between two tasks.
| one | The first task to connect | |
| other | The second task to connect |
| bool connectPorts | ( | const std::string & | one, | |
| const std::string & | other | |||
| ) |
Establish a data flow connection between two tasks.
The direction of the connection is determined by the read/write port types.3B
| one | The first task to connect | |
| other | The second task to connect |
| bool connectPorts | ( | const std::string & | one, | |
| const std::string & | one_port, | |||
| const std::string & | other, | |||
| const std::string & | other_port | |||
| ) |
Connect two named ports of components.
The direction of the connection is determined by the read/write port types.
| one | Name of the first component | |
| one_port | Name of the port of the first component to connect to other_port | |
| other | Name of the second component | |
| other_port | Name of the port of the second component to connect to one_port |
| bool addPeer | ( | const std::string & | from, | |
| const std::string & | to | |||
| ) |
Establish a uni directional connection form one task to another.
| from | The component where the connection starts. | |
| to | The component where the connection ends. |
| bool import | ( | const std::string & | path | ) |
Import a library or all libraries in a given directory.
This function calls loadLibrary on each found shared library in path.
| bool loadLibrary | ( | const std::string & | name | ) |
Use this command to load a dynamic library into the memory of the current process.
| name | an absolute or relative path to a loadable library. |
| bool loadComponent | ( | const std::string & | name, | |
| const std::string & | type | |||
| ) |
Load a new component in the current process.
It wil appear as a peer with name name of this component.
| name | Name the new component will receive. | |
| type | The type of the component. This is usually a library (.dll or .so) name. |
| bool unloadComponent | ( | const std::string & | name | ) |
Unload a loaded component from the current process.
It may not be running.
| name | The name of a component loaded with loadComponent(). |
| void displayComponentTypes | ( | ) | const |
This function prints out the component types this DeploymentComponent can create.
| bool setPeriodicActivity | ( | const std::string & | comp_name, | |
| double | period, | |||
| int | priority, | |||
| int | scheduler | |||
| ) |
(Re-)set the activity of a component which was loaded with loadComponent.
| comp_name | The name of the component to change. | |
| period | The period of the activity. | |
| priority | The scheduler priority (OS dependent). | |
| scheduler | The scheduler type ORO_SCHED_RT or ORO_SCHED_OTHER. |
| bool setNonPeriodicActivity | ( | const std::string & | comp_name, | |
| int | priority, | |||
| int | scheduler | |||
| ) |
(Re-)set the activity of a component which was loaded with loadComponent.
| comp_name | The name of the component to change. | |
| priority | The scheduler priority (OS dependent). | |
| scheduler | The scheduler type ORO_SCHED_RT or ORO_SCHED_OTHER. |
| bool setSlaveActivity | ( | const std::string & | comp_name, | |
| double | period | |||
| ) |
(Re-)set the activity of a component which was loaded with loadComponent.
| comp_name | The name of the component to change. | |
| period | The period of the activity. |
| bool setActivity | ( | const std::string & | comp_name, | |
| const std::string & | act_type, | |||
| double | period, | |||
| int | priority, | |||
| int | scheduler | |||
| ) |
(Re-)set the activity of a component which was loaded with loadComponent.
| comp_name | The name of the component to change. | |
| act_type | The Activity type: 'PeriodicActivity', 'NonPeriodicActivity' or 'SlaveActivity'. | |
| priority | The scheduler priority (OS dependent). | |
| period | The period of the activity. | |
| scheduler | The scheduler type ORO_SCHED_RT or ORO_SCHED_OTHER. |
| bool loadComponents | ( | const std::string & | config_file | ) |
Load a (partial) application XML configuration from disk.
The necessary components are located or loaded, but no component configuration is yet applied. One can load multiple configurations and call configureComponents() once to apply all settings. In case of duplicate information is the latest loaded configuration option used.
| config_file | A file on local disk containing the XML configuration. |
| bool configureComponents | ( | ) |
Configure the components with loaded configuration(s).
Configure the components with a loaded configuration.
This function connects components and data ports, reads properties for the components, attaches activities and loads program and state machine scripts. If a component XML entry has the AutoConf element, configure() will be called upon this component as well. If the configuration fails halfway, the system is configured as complete as possible. You can try to reconfigure by loading a new configuration (using loadConfiguration ) and call configureComponents again to resolve remaining issues.
This function tries to apply the configuration with a best effort. For example, if a program must be loaded in the component, and a program with that same name is already present, the present one is unloaded and the new one is attempted to be loaded. If that fails, the configuration process leaves the scripts as-is and proceeds with further configuration steps of the same component and other components.
The order of configuration depends on the order of components during loadConfiguration. The first encountered component is configured first. If additional loadConfiguration operations refer to the same component, the configuration order is not changed.
true if all components could be succesfully configured.
| bool startComponents | ( | ) |
Start all components in the current configuration which have AutoStart set to true.
| void clearConfiguration | ( | ) |
Clear all loaded configuration options.
This does not alter any component.
| bool configure | ( | const std::string & | name | ) |
Configure a component by loading the property file 'name.cpf' for component with name name.
| name | The name of the component to configure. The file used will be 'name.cpf'. |
| bool configureFromFile | ( | const std::string & | name, | |
| const std::string & | filename | |||
| ) |
Configure a component by loading a property file.
| name | The name of the component to configure | |
| filename | The filename where the configuration is in. |
| bool loadConfiguration | ( | const std::string & | config_file | ) |
Load a (partial) application XML configuration from disk.
The necessary components are located or loaded, but no component configuration is yet applied. One can load multiple configurations and call configureComponents() once to apply all settings. In case of duplicate information is the latest loaded configuration option used.
| config_file | A file on local disk containing the XML configuration. |
| bool loadConfigurationString | ( | const std::string & | config_text | ) |
Identical to loadConfiguration, but reads the XML from a string instead of a file.
| config_text | A string containing the XML configuration. |
RTT::PropertyBag root [protected] |
This bag stores the current configuration.
It is the cumulation of all loadConfiguration() calls.
1.5.3