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
ExpressionBuilderGraphThe 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.