• Docs
  • Learn
  • Community
    Search Results for

      Show / Hide Table of Contents

      Class GroupWorkflowBuilder

      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.

      Inheritance
      Object
      ExpressionBuilder
      WorkflowExpressionBuilder
      GroupWorkflowBuilder
      Implements
      INamedElement
      IPropertyMappingBuilder
      IWorkflowExpressionBuilder
      IExpressionBuilder
      Inherited Members
      WorkflowExpressionBuilder.Name
      WorkflowExpressionBuilder.Description
      WorkflowExpressionBuilder.INamedElement.Name
      WorkflowExpressionBuilder.Workflow
      WorkflowExpressionBuilder.WorkflowDescriptor
      WorkflowExpressionBuilder.ArgumentRange
      WorkflowExpressionBuilder.BuildWorkflow(IEnumerable<Expression>, Expression, Func<Expression, Expression>)
      ExpressionBuilder.ToString()
      ExpressionBuilder.Unwrap(ExpressionBuilder)
      ExpressionBuilder.GetWorkflowElement(ExpressionBuilder)
      ExpressionBuilder.GetVisualizerElement(ExpressionBuilder)
      ExpressionBuilder.GetVisualizerMappings(ExpressionBuilder)
      ExpressionBuilder.FromWorkflowElement(Object, ElementCategory)
      ExpressionBuilder.GetElementDisplayName(Type)
      ExpressionBuilder.GetElementDisplayName(Object)
      Object.Equals(Object)
      Object.Equals(Object, Object)
      Object.ReferenceEquals(Object, Object)
      Object.GetHashCode()
      Object.GetType()
      Object.MemberwiseClone()
      Namespace: Bonsai.Expressions
      Assembly: Bonsai.Core.dll
      Syntax
      [WorkflowElementCategory(ElementCategory.Workflow)]
      public class GroupWorkflowBuilder : WorkflowExpressionBuilder, INamedElement, IPropertyMappingBuilder, IWorkflowExpressionBuilder, IExpressionBuilder

      Constructors

      | Improve this Doc View Source

      GroupWorkflowBuilder()

      Initializes a new instance of the GroupWorkflowBuilder class.

      Declaration
      public GroupWorkflowBuilder()
      | Improve this Doc View Source

      GroupWorkflowBuilder(ExpressionBuilderGraph)

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

      Declaration
      public GroupWorkflowBuilder(ExpressionBuilderGraph workflow)
      Parameters
      Type Name Description
      ExpressionBuilderGraph workflow

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

      Methods

      | Improve this Doc View Source

      Build(IEnumerable<Expression>)

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

      Declaration
      public override Expression Build(IEnumerable<Expression> arguments)
      Parameters
      Type Name Description
      IEnumerable<Expression> arguments

      A collection of Expression nodes that represents the input arguments.

      Returns
      Type Description
      Expression

      An Expression tree node.

      Overrides
      ExpressionBuilder.Build(IEnumerable<Expression>)

      Implements

      INamedElement
      IPropertyMappingBuilder
      IWorkflowExpressionBuilder
      IExpressionBuilder

      Extension Methods

      ExpressionBuilderGraphExtensions.Build(ExpressionBuilder, Expression[])
      ExpressionBuilderGraphExtensions.IsBuildDependency(ExpressionBuilder)
      ExpressionBuilderGraphExtensions.AsInspectBuilder(ExpressionBuilder)
      • Improve this Doc
      • View Source
      In This Article
      Back to top Generated by DocFX