FleCSI User API Version: 2.3.0
 
Loading...
Searching...
No Matches
control< P >::action< T, CP, M > Struct Template Reference

The action type provides a mechanism to add execution elements to the FleCSI control model. More...

Public Member Functions

 action ()
 Add a function to be executed under the specified control point.
 
template<typename... Args>
 action (Args &&... args)
 Add a function to be executed under the specified control point.
 
template<target_type U, control_points_enum V>
dependency add (action< U, V > const &from)
 Add a dependency on the given action.
 

Detailed Description

template<typename P>
template<target_type T, control_points_enum CP, bool M = false>
struct flecsi::run::control< P >::action< T, CP, M >

The action type provides a mechanism to add execution elements to the FleCSI control model.

The P::node_policy structure that gets instantiated was intended originally for sharing of data across actions. This usage is deprecated, and P::node_policy now should be defined as an empty struct.

Template Parameters
Tfunction to call, of type void(P&) if P inherits from control_base and int() otherwise
CPThe control point under which this action is executed.
MBoolean indicating whether or not the action is a meta action. This is intended for specialization developers; application developers should omit this parameter (defaulting it to false).

Constructor & Destructor Documentation

◆ action() [1/2]

template<typename P >
template<target_type T, control_points_enum CP, bool M = false>
action ( )

Add a function to be executed under the specified control point.

◆ action() [2/2]

template<typename P >
template<target_type T, control_points_enum CP, bool M = false>
template<typename... Args>
action ( Args &&...  args)

Add a function to be executed under the specified control point.

Deprecated:
Use the argument-less constructor.
Parameters
argsA variadic list of arguments that are forwarded to the user-defined node type, as specified in the control policy

Member Function Documentation

◆ add()

template<typename P >
template<target_type T, control_points_enum CP, bool M = false>
template<target_type U, control_points_enum V>
dependency add ( action< U, V > const &  from)

Add a dependency on the given action.

Template Parameters
Vmust be the same as ControlPoint
Parameters
fromThe upstream node in the dependency.