Table of Contents

Class GroupWorkflowBuilder

Namespace
Bonsai.Expressions
Assembly
Bonsai.Core.dll

Represents an expression builder that encapsulates complex expression builder logic into a single workflow element.

The workflow nested inside GroupWorkflow specifies the entire behavior of this operator. Group nodes are used to organize larger workflows into modular building blocks. For most purposes, moving operations into a group workflow will not have any effects on the performance or function of the program.

All observable sequences passed as arguments to the outer GroupWorkflow will be routed to the inner WorkflowInput nodes. Conversely, all notifications emitted by the sequence connected to the single WorkflowOutput node will be passed to any observers of the group node. It is possible to subscribe multiple times to the same group, in which case the nested workflow will run potentially in parallel and is considered to be reentrant.

Tip

Use ExternalizedMapping operators to expose configurable properties when selecting the nested workflow node. Externalized properties in a nested workflow work the same way as regular properties in other operators. They can be further externalized as part of other nested operators or dynamically assigned using PropertyMapping or InputMapping operators.

Warning

If the nested workflow is reentrant, properties of inner nodes are shared by all asynchronous operations which are running simultaneously. If the shared state never changes across reentrant operations (i.e. the state is immutable), this is not a problem. If shared state is changing dynamically, you should consider using synchronization primitives to make sure that state updates are coordinated across the different asynchronous operations.

[WorkflowElementCategory(ElementCategory.Workflow)]
public class GroupWorkflowBuilder : WorkflowExpressionBuilder, INamedElement, IPropertyMappingBuilder, IWorkflowExpressionBuilder, IExpressionBuilder
Inheritance
GroupWorkflowBuilder
Implements
Inherited Members
Extension Methods

Constructors

GroupWorkflowBuilder()

Initializes a new instance of the GroupWorkflowBuilder class.

public GroupWorkflowBuilder()

GroupWorkflowBuilder(ExpressionBuilderGraph)

Initializes a new instance of the GroupWorkflowBuilder class with the specified expression builder workflow.

public GroupWorkflowBuilder(ExpressionBuilderGraph workflow)

Parameters

workflow ExpressionBuilderGraph

The expression builder workflow instance that will be used by this builder to generate the output expression tree.

Methods

Build(IEnumerable<Expression>)

Generates an Expression node from a collection of input arguments. The result can be chained with other builders in a workflow.

public override Expression Build(IEnumerable<Expression> arguments)

Parameters

arguments IEnumerable<Expression>

A collection of Expression nodes that represents the input arguments.

Returns

Expression

An Expression tree node.