
==================
=== Blockscope ===
==================

x) Input Hook:
===============

*) Collect port values from predecessors (can only be at the same level or immediate parents).


x) Output Hook:
================

*) Collect port values from children only.




===================
=== Atomic Task ===
===================

x) Input Hook:
===============

*) Collect port values from predecessors (can only be at the same level or immediate parents).


x) Exec Hook:
==============

1) Provide input values (declare some pointers and let them point to the input).
2) Execute atomic task.
3) Store output values into output struct.




=============================
=== Parallel ForEach Task ===
=============================

x) Input Hook:
===============

*) Collect port values from predecessors (can only be at the same level or immediate parents, no need to differentiate between input and loopelement ports here).


x) Counter Hook:
=================

*) Calculates the counters start/step/stop out of input values.


x) Iteration Hook:
===================

*) Is executed after each iteration (useless for parallel loops?)


x) Output Hook:
================

*) Collect output values from children only (one value for each loop iteration)




===============
=== If Task ===
===============

x) Input Hook:
===============

*) Collect port values from predecessors (can only be at the same level or immediate parents, no need to differentiate between input and loopelement ports here).


x) Condition Hook:
=================

*) Evaluates the condition (only needs to be done once before the conditional is executed)


x) Output Hook:
================

*) Collect port values from children only (Multiple data-link with same to-port because of multiple branches).




