Quine.Graph Namespace

[Missing <summary> documentation for "N:Quine.Graph"]

Classes

ChannelClosedException Used internally to signal that the channel is 1) empty and 2) in closed state, i.e., that no more messages will be produced.
DemultiplexorNodeTPayload 
DrainNodeTState Terminal node for a graph. Needed because all output ports must be connected to at least one input port.
GraphSchemaHook Provides a way to access the state defined by schema classes.
GraphSchemaHookT Generic version of GraphSchemaHook.
GraphShell Container and controller for nodes.
InputPortT Type-erased implementation of input port; InputPortT for a strongly-typed class.
InteractiveQueryEventData Event data for an interactive query event. Query contains the query object which must be completed with one of SetResult(Object), SetError(Exception) or Cancel methods.
ItemProcessingEventData Event data common for begin/progress/end processing events. This is a stateful class where it is intended that every node has a single instance of a subclass implementing GraphMessageTotalSize in a suitable way. Implementation note: This data cannot be part of GraphMessage because a single message can be queued at and processed by multiple nodes.
NodeConcurrencyLimiter

Limits the number of concurrently running nodes of the same type. Various kinds of limits (per-graph, per-process, etc.) can be achieved by considering the scope and lifetime of the DI registrations.

This type is not for public consumption, but it must be registered with DI.

NodeShell Base functionality shared by all node implementations. New node types can be implemented outside of this assembly only by deriving from one of the generic node classes.
NodeShellT 
OutputPortT Type-erased implementation of output port.
SourceNodeTState, TMessage Source node has no inputs and generates messages on its only output.
TransformNodeTState, TInput Transform node has at least one input and zero outputs. It calls [!:Process(TInput)] method for each received message. The node exits when all of its predecessors have exited and closes all output channels.
TransformNodeTState, TInput, TOutput0 Transform node with one output. Arbitrary number of messages can be produced for a single input message.
TransformNodeTState, TInput, TOutput0, TOutput1 Transform node with two outputs. Arbitrary number of messages can be produced for a single input message.

Interfaces

IInputPort 
INodeEventSource This interface allows components that run as a part of a node to publish events.