fesa-core  5.0.1
fesa::AbstractRTAction Class Referenceabstract

This class represents a real time action on the system. More...

#include <AbstractRTAction.h>

Inheritance diagram for fesa::AbstractRTAction:
fesa::HasMetrics fesa::RTAction< DeviceType > fesa::RTDiagnosticSetting

Public Member Functions

 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...
 
- Public Member Functions inherited from fesa::AbstractAction
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
 
- Public Member Functions inherited from fesa::HasMetrics
 HasMetrics (const std::string &componentName)
 

Protected Member Functions

void releaseSettingFieldsReadLock ()
 
- Protected Member Functions inherited from fesa::AbstractAction
virtual void registerManualNotification (const std::string aPropertyName, const std::string aDeviceName)
 Adds a property/device pair for the manual notification.
 
- Protected Member Functions inherited from fesa::HasMetrics
template<typename T >
void registerMetric (const std::string &name, T &value)
 
template<typename T >
void registerMetric (const std::string &name, boost::atomic< T > &value)
 

Protected Attributes

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
 
- Protected Attributes inherited from fesa::AbstractAction
std::string name_
 name of the action
 
std::string className_
 name of the FESA-class, which controls this action
 
NotificationProducertheNotificationProducer_
 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
 

Detailed Description

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

Constructor & Destructor Documentation

fesa::AbstractRTAction::AbstractRTAction ( RTActionConfig rtActionConfig,
const AbstractServiceLocator *  serviceLocator,
const std::map< std::string, const AbstractServiceLocator * > &  serviceLocatorRelatedClasses 
)

Stores the RT action configuration.

Parameters
rtActionConfigstructure that contains all the necessary parameters to configure a real time action

Member Function Documentation

virtual void fesa::AbstractRTAction::execute ( RTEvent event)
pure virtual

this method contains the logic of the real time action

Parameters
eventthat 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
eventthat 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: