FleCSI User API Version: 2.3.0
 
Loading...
Searching...
No Matches
Control Model

Types for defining, extending, and executing control-flow graphs. More...

Classes

struct  control< P >
 The control type provides a control model for specifying a set of control points as a coarse-grained control flow graph, with each node of the graph specifying a set of actions as a directed acyclic graph (DAG). More...
 
struct  control_base
 Base class for providing default implementations for optional interfaces. More...
 
struct  control_policy
 An example control policy that is not really implemented. More...
 

Typedefs

using call = control< call_policy >
 A trivial control model that calls a single function.
 
template<auto CP>
using control_point = run_impl::control_point< CP >
 A control point for application use.
 
template<bool(*)() P, typename... CP>
using cycle = run_impl::cycle< P, CP... >
 A control-flow cycle.
 

Functions

const char * operator* (control_policy::control_points_enum)
 A control policy must provide names for its control points.
 

Detailed Description

Types for defining, extending, and executing control-flow graphs.

Typedef Documentation

◆ control_point

template<auto CP>
using control_point = run_impl::control_point<CP>

A control point for application use.

Template Parameters
CPcontrol point enumerator
Deprecated:
Use control_base::point.

◆ cycle

template<bool(*)() P, typename... CP>
using cycle = run_impl::cycle<P, CP...>

A control-flow cycle.

Template Parameters
Ptested before each iteration
CPcontrol_point or cycle types
Deprecated:
Use control_base::cycle.

◆ call

using call = control<call_policy>

A trivial control model that calls a single function.

Its control policy object can be constructed from any callable with the signature int().

Function Documentation

◆ operator*()

const char * operator* ( control_policy::control_points_enum  )

A control policy must provide names for its control points.