\r\n

51Degrees Pipeline .NET  4.4

51Degrees Pipeline for .NET

FiftyOne.Pipeline.Core.FlowElements.Pipeline Class Reference

Detailed Description

A pipeline is used to create IFlowData instances which then automatically use the pipeline when their Process method is called.

See the Specification

Inheritance diagram for FiftyOne.Pipeline.Core.FlowElements.Pipeline:

[legend]

Collaboration diagram for FiftyOne.Pipeline.Core.FlowElements.Pipeline:

[legend]

Public Member Functions

IFlowData  CreateFlowData ()
Create a new IFlowData instance that will use this pipeline when processing. More...
void  Process (IFlowData data)
Process the given IFlowData using the IFlowElements in the pipeline. More...
TElement  GetElement< TElement > ()
Get the specified element from the pipeline. More...
bool  HasExpectedElementAfter< TElement, TExpectedElement > ()
Check if the pipeline contains an instance of TExpectedElement that will be executed after TElement . More...
IElementPropertyMetaData  GetMetaDataForProperty (string propertyName)
Get the meta data for the specified property name. More...
void  Dispose ()
Dispose More...

Public Attributes

bool  SuppressProcessExceptions => _suppressProcessExceptions
Control field that indicates if the Pipeline will throw an aggregate exception during processing or suppress it and ignore the exceptions added to IFlowData.Errors. More...

Protected Member Functions

virtual void  Dispose (bool disposing)
Dispose of any resources. More...

Properties

IEvidenceKeyFilter  EvidenceKeyFilter [get]
Get a filter that will only include the evidence keys that can be used by at least one IFlowElement within this pipeline. More...
bool  IsConcurrent [get]
True if multiple IFlowElement instances will run concurrently within this pipeline. More...
bool  IsDisposed [get]
True if the pipeline has been disposed More...
IReadOnlyList< IFlowElement >  FlowElements [get]
Get a read only list of the flow elements that are part of this pipeline. More...
IReadOnlyDictionary< string, IReadOnlyDictionary< string, IElementPropertyMetaData > >  ElementAvailableProperties [get]
Get the dictionary of available properties for an IFlowElement.ElementDataKey. More...

Properties inherited from FiftyOne.Pipeline.Core.FlowElements.IPipeline

IEvidenceKeyFilter  EvidenceKeyFilter [get]
Get a filter that will only include the evidence keys that can be used by at least one IFlowElement within this pipeline. More...
bool  IsConcurrent [get]
True if any of the IFlowElements in this pipeline will create multiple threads and execute in parallel. More...
bool  IsDisposed [get]
True if the pipeline has been disposed More...
bool  SuppressProcessExceptions [get]
Control field that indicates if the Pipeline will throw an aggregate exception during processing or suppress it and ignore the exceptions added to IFlowData.Errors. More...
IReadOnlyList< IFlowElement >  FlowElements [get]
Get a read only list of the flow elements that are part of this pipeline. More...
IReadOnlyDictionary< string, IReadOnlyDictionary< string, IElementPropertyMetaData > >  ElementAvailableProperties [get]
Get the dictionary of available properties for an IFlowElement.ElementDataKey. More...

Member Function Documentation

◆ Dispose() [1/2]

virtual void FiftyOne.Pipeline.Core.FlowElements.Pipeline.Dispose ( bool   disposing )
protected virtual

Dispose of any resources.

Parameters
disposing - True if Dispose is being called 'correctly' from the Dispose method. False if Dispose is being called by the finalizer.

◆ Dispose() [2/2]

void FiftyOne.Pipeline.Core.FlowElements.Pipeline.Dispose ( )

Dispose

◆ GetElement< TElement >()

TElement FiftyOne.Pipeline.Core.FlowElements.Pipeline.GetElement< TElement > ( )

Get the specified element from the pipeline.

If the pipeline contains multiple elements of the requested type, this method will return null.

Template Parameters
TElement - The type of the IFlowElement to get
Returns
An instance of the specified IFlowElement if the pipeline contains one. Null is returned if there is no such instance or there are multiple instances of that type.

Implements FiftyOne.Pipeline.Core.FlowElements.IPipeline.

Type Constraints
TElement :class 
TElement :IFlowElement 

◆ GetMetaDataForProperty()

IElementPropertyMetaData FiftyOne.Pipeline.Core.FlowElements.Pipeline.GetMetaDataForProperty ( string   propertyName )

Get the meta data for the specified property name.

If there are no properties with that name or multiple properties on different elements then an exception will be thrown.

Parameters
propertyName - The property name to find the meta data for
Returns
The meta data associated with the specified property name
Exceptions
PipelineDataException - Thrown if the property name is associated with zero or multiple elements.

Implements FiftyOne.Pipeline.Core.FlowElements.IPipelineInternal.

◆ HasExpectedElementAfter< TElement, TExpectedElement >()

bool FiftyOne.Pipeline.Core.FlowElements.Pipeline.HasExpectedElementAfter< TElement, TExpectedElement > ( )

Check if the pipeline contains an instance of TExpectedElement that will be executed after TElement .

Template Parameters
TElement - The type of the element to check.
TExpectedElement - The type of the element that should come after TElement .
Returns
True if TExpectedElement is present in the pipeline and will be executed after TElement

Implements FiftyOne.Pipeline.Core.FlowElements.IPipeline.

Type Constraints
TElement :IFlowElement 
TExpectedElement :IFlowElement 

◆ Process()

void FiftyOne.Pipeline.Core.FlowElements.Pipeline.Process ( IFlowData   data )

Process the given IFlowData using the IFlowElements in the pipeline.

Parameters
data - The IFlowData that contains the evidence and will allow the user to access the results.
Exceptions
ArgumentNullException - Thrown if a required parameter is null.
AggregateException - Thrown if an error occurred during processing, unless is true.

Implements FiftyOne.Pipeline.Core.FlowElements.IPipelineInternal.

Member Data Documentation

◆ SuppressProcessExceptions

bool FiftyOne.Pipeline.Core.FlowElements.Pipeline.SuppressProcessExceptions => _suppressProcessExceptions

Control field that indicates if the Pipeline will throw an aggregate exception during processing or suppress it and ignore the exceptions added to IFlowData.Errors.

Property Documentation

◆ ElementAvailableProperties

IReadOnlyDictionary<string, IReadOnlyDictionary<string, IElementPropertyMetaData> > FiftyOne.Pipeline.Core.FlowElements.Pipeline.ElementAvailableProperties
get

Get the dictionary of available properties for an IFlowElement.ElementDataKey.

The dictionary returned contains the IElementPropertyMetaDatas keyed on the name field.

◆ EvidenceKeyFilter

IEvidenceKeyFilter FiftyOne.Pipeline.Core.FlowElements.Pipeline.EvidenceKeyFilter
get

Get a filter that will only include the evidence keys that can be used by at least one IFlowElement within this pipeline.

◆ FlowElements

IReadOnlyList<IFlowElement> FiftyOne.Pipeline.Core.FlowElements.Pipeline.FlowElements
get

Get a read only list of the flow elements that are part of this pipeline.

◆ IsConcurrent

bool FiftyOne.Pipeline.Core.FlowElements.Pipeline.IsConcurrent
get

True if multiple IFlowElement instances will run concurrently within this pipeline.

False otherwise.

◆ IsDisposed

bool FiftyOne.Pipeline.Core.FlowElements.Pipeline.IsDisposed
get

True if the pipeline has been disposed