Represents a parallel execution plan that can be executed concurrently. This interface extends both ExecutionPlan and PlanStep to provide functionality for parallel processing of template operations.

interface ParallelExecutionPlan {
    circular?: boolean;
    completed: boolean;
    data?: any;
    didUpdate: boolean;
    forkId: string;
    forkStack: Fork[];
    jsonPtr: string;
    lastCompletedStep?: PlanStep;
    op?: Op;
    output: object;
    parallel: ParallelExecutionPlan[];
    restore?: boolean;
    type?: "serial|parallel";
}

Hierarchy (view full)

Implemented by

Properties

circular?: boolean
completed: boolean

Indicates whether the entire execution subtree rooted at this node has finished processing. When true, all child nodes in the parallel array have also completed their execution.

data?: any

The data associated with the plan. May be undefined for initialization plans.

didUpdate: boolean
forkId: string

The identifier for the fork associated with this execution plan. Will be "ROOT" when the plan is not executing a fork

forkStack: Fork[]

The stack of forks involved in this execution plan. Forks will push and pop on top of the ROOT fork corresponding to entering a $forked() and exiting a forked plan on $joined()

jsonPtr: string

A JSON Pointer string that identifies the location in the template being processed. This pointer is used to track and reference specific nodes in the template structure.

lastCompletedStep?: PlanStep

The last completed step in the execution plan, if any.

op?: Op

The operation to perform. If present and op is "set", the data is applied to the first JSON pointer.

output: object

The output object associated with the execution plan.

An array of child ParallelExecutionPlan nodes that can be executed in parallel. This forms the root node of a directed acyclic graph (DAG) of ParallelPlanStep's.

restore?: boolean

Optional flag used to mark plans that are being used during a restore operation. When true, indicates that this plan is part of restoring a previous template state.

type?: "serial|parallel"

Plans can be serialized and stored therefor we need to know what type of ExecutionPlan this is. Defaults to "serial" if not present. Allowed values "serial|parallel"

Generated using TypeDoc