Table of Contents

Class CreateObservable

Namespace
Bonsai.Reactive
Assembly
Bonsai.Core.dll

Represents an expression builder that creates higher-order observable sequences specified by the encapsulated workflow.

Marble diagram

For each notification in the source sequence, CreateObservable constructs a new instance of the asynchronous operation specified in the nested workflow and emits the operation exposed as an observable sequence. However, CreateObservable does not itself subscribe to the sequence, which means the logic inside the nested workflow will not run unless the emitted observables are subscribed downstream.

Note

You can manipulate and schedule each of the emitted observable sequences downstream using higher-order operators such as Merge, Concat or Switch.

The input to the nested workflow represents the element passed as an argument to the asynchronous operation. If the input is itself an observable sequence, the WorkflowInput node will subscribe to all the values in the sequence when the asynchronous operation is finally launched. Otherwise, the input will emit a single value containing the stored argument value.

public class CreateObservable : WorkflowExpressionBuilder, IWorkflowExpressionBuilder, INamedElement, IPropertyMappingBuilder, IExpressionBuilder
Inheritance
CreateObservable
Implements
Inherited Members
Extension Methods

Constructors

CreateObservable()

Initializes a new instance of the CreateObservable class.

public CreateObservable()

CreateObservable(ExpressionBuilderGraph)

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

public CreateObservable(ExpressionBuilderGraph workflow)

Parameters

workflow ExpressionBuilderGraph

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

Properties

ArgumentRange

Gets the range of input arguments that this expression builder accepts.

public override Range<int> ArgumentRange { get; }

Property Value

Range<int>

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.