A Component is the fundamental data processing element. It can have a number of Ports, and can also be Invocable.

The traits of a component are held in a ComponentTraits type. There are multiple ways of registering the ComponentTraits for a Component (see examples below).

Notation

C

A Component type.

CT

The ComponentTraits type of C.

c

An object of type C.

S

A Side type.

M

A Mechanism type.

Refines
Component Requirements

Name

Expression

Result Type

Semantics

Component Traits

traits_of<C, T>::type

CT

The ComponentTraits of the component.

IsComponent Trait

is_component<C, T>::type

Boolean metafunction that evaluates to true

A trait encapsulating adherence to the Component concept.

Has Default Port

has_default_port<C,S,M,T>::type

Boolean MPL Metafunction

Specifies whether the component has a default port for the provided Side and Mechanism.

Get Default Port

get_default_port<S,M,T>(c)

A Port type

Returns the component's default port for the provided Side and Mechanism, if the component has one.

ComponentTraits Requirements

Name

Expression

Result Type

Semantics

Port Traits

CT::ports

MPL Sequence of PortTraits types

An enumeration of the PortTraits of the exposed Ports.

Header

#include <boost/dataflow/support/component.hpp> // or
#include <boost/dataflow/support.hpp>

Notes
Examples

... to come ...