This class represents a real time action on the system.
More...
#include <AbstractRTAction.h>
|
| AbstractRTAction (RTActionConfig &rtActionConfig, const AbstractServiceLocator *serviceLocator, const std::map< std::string, const AbstractServiceLocator * > &serviceLocatorRelatedClasses) |
| Stores the RT action configuration. More...
|
|
virtual | ~AbstractRTAction () |
| destructor
|
|
void | executeAction (RTEvent *event) |
| This method will be called by the scheduler when the event arrives. More...
|
|
virtual void | execute (RTEvent *event)=0 |
| this method contains the logic of the real time action More...
|
|
void | sendManualNotification (const MultiplexingContext *context) const |
| this method sends a manual notification message in order to notify the properties and devices specified in the message
|
|
void | resetManualNotification () const |
| Clears any registered properties/devices for the manual notification.
|
|
void | disableAutomaticNotification () |
|
void | enableAutomaticNotification () |
|
bool | isAutomaticNotificationDisabled () const |
|
| HasMetrics (const std::string &componentName) |
|
|
void | releaseSettingFieldsReadLock () |
|
virtual void | registerManualNotification (const std::string aPropertyName, const std::string aDeviceName) |
| Adds a property/device pair for the manual notification.
|
|
template<typename T > |
void | registerMetric (const std::string &name, T &value) |
|
template<typename T > |
void | registerMetric (const std::string &name, boost::atomic< T > &value) |
|
|
std::string | logicalEventName_ |
| name of the logical-event that fires the action
|
|
std::string | concreteEventName_ |
| name of the concrete-event that fires the action
|
|
std::string | selectionCriterion_ |
| selection criterion to select devices used for notification
|
|
std::string | eventSourceName_ |
| event source name (timing, timingSim, timer, user, <custom-name>)
|
|
std::vector< AbstractDevice * > | abstractDeviceCol_ |
| set of devices to which the real time action has access
|
|
DiagnosticsDefs::DiagStateCounter | completedActionCount_ |
| number of completed actions
|
|
uint32_t | abortedActionCount_ |
| number of real time actions aborted
|
|
std::string | name_ |
| name of the action
|
|
std::string | className_ |
| name of the FESA-class, which controls this action
|
|
NotificationProducer * | theNotificationProducer_ |
| the notification producer is used to send properties' notifications to the server side
|
|
std::set< std::string > | automaticallyNotifiedPropertiesCol_ |
| list of properties that will be notified automatically, after the action has finished
|
|
This class represents a real time action on the system.
Real time actions are fired by an event source to carry out operations in the devices
fesa::AbstractRTAction::AbstractRTAction |
( |
RTActionConfig & |
rtActionConfig, |
|
|
const AbstractServiceLocator * |
serviceLocator, |
|
|
const std::map< std::string, const AbstractServiceLocator * > & |
serviceLocatorRelatedClasses |
|
) |
| |
Stores the RT action configuration.
- Parameters
-
rtActionConfig | structure that contains all the necessary parameters to configure a real time action |
virtual void fesa::AbstractRTAction::execute |
( |
RTEvent * |
event | ) |
|
|
pure virtual |
this method contains the logic of the real time action
- Parameters
-
event | that triggers the execution |
Implemented in fesa::RTDiagnosticSetting.
void fesa::AbstractRTAction::executeAction |
( |
RTEvent * |
event | ) |
|
This method will be called by the scheduler when the event arrives.
- Parameters
-
event | that triggers the execution |
void fesa::AbstractRTAction::releaseSettingFieldsReadLock |
( |
| ) |
|
|
protected |
Releases the read lock on setting fields. After this method is called, reading setting fields from any device is forbidden and attempting to do so will throw an exception. Releasing this lock is recommended in real time actions that take a lot of time to execute (more than one second):
- More recent setting fields values will be available faster for other real time actions
- On demand events will be processed faster, as FESA must wait for setting fields to be synchronized before they can be processed.
The documentation for this class was generated from the following files:
- AbstractRTAction.h
- AbstractRTAction.cpp