Connections determine the execution order of objects as well as data exchange. Connections between objects are drawn in the workspace with the right mouse button. When connecting to an object with input variables the connection dialog automatically pops up. This dialog also can be shown by double clicking on an object connection arrow.
Fig. 1: The connection dialog

Figure 1 shows a typical connection dialog. In the upper part the called actions can be specified. Each object may offer different actions, for example a memory object may offer the actions add and clear etc.. Each object normally has at least an action called "Standard", which represents the action that is executed normally. All avaliable actions can be added to the right list "Called actions". Each connection can therefore cause multiple calls of different actions of the target object. The calling order is top to bottom. Each action can also be called multiple times (if this should ever be needed). It is also possible to specify no action at all. Then the target object does nothing at all and execution continues at the following objects.

There are two connection options "Continue execution" and "Nonparallel sub branch". If the first one is checked, only the target object is executed and execution stops after that. If this option is checked, the appropriate connection arrow is drawn as a dashed line to indicate a different program flow.
Fig. 2: Non parallel execution
If the second option "Nonparallel sub branch" is checked than the creation of a parallel execution thread is inhibited if the origin of the connection is the origin of multiple connections. Non parallel connections appear as a thick line in the workspace. If one parallel and one or more non parallel branches exist, the parallel branch is executed after the non parallel branches. If more than one parallel branches exist and more than one non parallell branches it is still guaranteed that the non parallel branches do not execute parallel to each other. All except one of the parallel branches are in this case executed parallel to this first one of the non parallel branches. One of the parallel branches is executed after the last non parallel branches. Figure 2 shows an example of the use of the non parallel branch. In this case the object "After Display" is not called until all of the display objects have been executed.

The non parallel execution must be used in the following cases:

The lower part of the connection dialog contains the variables and there connections. The left side shows the output variables of all preceding objects. The right side shows the input variables of the target object. A connection is drawn with the left mouse button and deleted by a click with the right mouse button on the source variable. An output variable can be connected to multiple input variables but not vice-versa. Property variables are a special kind of variables and are displayed inverted. Properties can normally also be assigned during editing time in the property dialog. During execution property values are saved within the object. All other variables only contain data if the object has been previously executed within the current thread. To save variable contents during execution and share it between threads use a VarBridge object.


Vimms user manual
F. Hitzel, 2003