Documentation ¶
Index ¶
- func AllSequenceFlows(sequenceFlows *[]sequence_flow.SequenceFlow, ...) (result []*sequence_flow.SequenceFlow)
- type ActionTransformer
- type CancellationTrace
- type CompleteAction
- type FlowAction
- type FlowActionResponse
- type FlowNodeMapping
- type IAction
- type IFlowNode
- type IOutgoing
- type NewFlowNodeTrace
- type NoAction
- type ProbeAction
- type Terminate
- type Wiring
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllSequenceFlows ¶
func AllSequenceFlows( sequenceFlows *[]sequence_flow.SequenceFlow, exclusion ...func(*sequence_flow.SequenceFlow) bool, ) (result []*sequence_flow.SequenceFlow)
Types ¶
type ActionTransformer ¶
type CancellationTrace ¶
type CancellationTrace struct {
Node schema.FlowNodeInterface
}
func (CancellationTrace) TraceInterface ¶
func (t CancellationTrace) TraceInterface()
type CompleteAction ¶
type CompleteAction struct{}
type FlowAction ¶
type FlowAction struct { Response *FlowActionResponse SequenceFlows []*sequence_flow.SequenceFlow // Index of sequence flows that should flow without // conditionExpression being evaluated UnconditionalFlows []int // The actions produced by the targets should be processed by // this function ActionTransformer ActionTransformer // If supplied channel sends a function that returns true, the flow action // is to be terminated if it wasn't already Terminate Terminate }
type FlowActionResponse ¶
type FlowNodeMapping ¶
type FlowNodeMapping struct {
// contains filtered or unexported fields
}
func NewLockedFlowNodeMapping ¶
func NewLockedFlowNodeMapping() *FlowNodeMapping
func (*FlowNodeMapping) Finalize ¶
func (mapping *FlowNodeMapping) Finalize()
func (*FlowNodeMapping) RegisterElementToFlowNode ¶
func (mapping *FlowNodeMapping) RegisterElementToFlowNode(element schema.FlowNodeInterface, flowNode IFlowNode) (err error)
func (*FlowNodeMapping) ResolveElementToFlowNode ¶
func (mapping *FlowNodeMapping) ResolveElementToFlowNode( element schema.FlowNodeInterface, ) (flowNode IFlowNode, found bool)
type IFlowNode ¶
type IFlowNode interface { IOutgoing Element() schema.FlowNodeInterface }
type IOutgoing ¶
type IOutgoing interface {
NextAction(flow flow_interface.T) chan IAction
}
type NewFlowNodeTrace ¶
type NewFlowNodeTrace struct {
Node schema.FlowNodeInterface
}
func (NewFlowNodeTrace) TraceInterface ¶
func (t NewFlowNodeTrace) TraceInterface()
type ProbeAction ¶
type ProbeAction struct { SequenceFlows []*sequence_flow.SequenceFlow // ProbeReport is a function that needs to be called // wth sequence flow indices that have successful // condition expressions (or none) ProbeReport func([]int) }
type Wiring ¶
type Wiring struct { ProcessInstanceId id.Id FlowNodeId schema.Id Definitions *schema.Definitions Incoming []sequence_flow.SequenceFlow Outgoing []sequence_flow.SequenceFlow EventIngress event.IConsumer EventEgress event.ISource Tracer tracing.ITracer Process schema.Element FlowNodeMapping *FlowNodeMapping FlowWaitGroup *sync.WaitGroup EventDefinitionInstanceBuilder event.IDefinitionInstanceBuilder Locator data.IFlowDataLocator }
Wiring holds all necessary "wiring" for functioning of flow nodes: definitions, process, sequence flow, event management, tracer, flow node mapping and a flow wait group
func NewWiring ¶
func NewWiring( processInstanceId id.Id, process schema.Element, definitions *schema.Definitions, flowNode *schema.FlowNode, eventIngress event.IConsumer, eventEgress event.ISource, tracer tracing.ITracer, flowNodeMapping *FlowNodeMapping, flowWaitGroup *sync.WaitGroup, eventDefinitionInstanceBuilder event.IDefinitionInstanceBuilder, locator data.IFlowDataLocator, ) (node *Wiring, err error)
Click to show internal directories.
Click to hide internal directories.