51Degrees Pipeline .NET  4.1

51Degrees Pipeline for .NET

FiftyOne.Pipeline.Engines.FlowElements.AspectEngineBase< T, TMeta > Class Template Reference abstract

Detailed Description

Base class for 51Degrees aspect engines.

Template Parameters
T - The type of data that the engine will return. Must implement IAspectData.
TMeta - The type of meta data that the flow element will supply about the properties it populates.
Type Constraints
T :IAspectData 
TMeta :IAspectPropertyMetaData 

Inheritance diagram for FiftyOne.Pipeline.Engines.FlowElements.AspectEngineBase< T, TMeta >:

[legend]

Collaboration diagram for FiftyOne.Pipeline.Engines.FlowElements.AspectEngineBase< T, TMeta >:

[legend]

Public Member Functions

 AspectEngineBase (ILogger< AspectEngineBase< T, TMeta >> logger, Func< IPipeline, FlowElementBase< T, TMeta >, T > aspectDataFactory)
Constructor More...
virtual void  SetCache (IFlowCache cache)
Set the results cache. More...
virtual void  SetLazyLoading (LazyLoadingConfiguration configuration)
Configure lazy loading of results. More...

Public Member Functions inherited from FiftyOne.Pipeline.Core.FlowElements.FlowElementBase< T, TMeta >

 FlowElementBase (ILogger< FlowElementBase< T, TMeta >> logger)
Constructor More...
 FlowElementBase (ILogger< FlowElementBase< T, TMeta >> logger, Func< IPipeline, FlowElementBase< T, TMeta >, T > elementDataFactory)
Constructor More...
virtual void  Process (IFlowData data)
Process the given IFlowData with this FlowElement. More...
virtual void  AddPipeline (IPipeline pipeline)
Called when this element is added to a pipeline. More...
void  Dispose ()
Dispose More...

Protected Member Functions

abstract void  ProcessEngine (IFlowData data, T aspectData)
Extending classes must implement this method. More...
sealed override void  ProcessInternal (IFlowData data)
Implementation of method from the base class FlowElementBase<T, TMeta>. More...
override void  ManagedResourcesCleanup ()
Called by the base class when this instance is disposed. More...

Protected Member Functions inherited from FiftyOne.Pipeline.Core.FlowElements.FlowElementBase< T, TMeta >

virtual T  CreateElementData (IPipeline pipeline)
Method used to create element data instances that are populated by this flow element More...
abstract void  UnmanagedResourcesCleanup ()
Cleanup any unmanaged resources that the element is using More...
virtual void  Dispose (bool disposing)
Dispose of any resources. More...

Properties

abstract string  DataSourceTier [get]
The tier to which the current data source belongs. More...
LazyLoadingConfiguration  LazyLoadingConfiguration [get]
The lazy loading configuration to use. More...

Properties inherited from FiftyOne.Pipeline.Core.FlowElements.FlowElementBase< T, TMeta >

ILogger< FlowElementBase< T, TMeta > >  Logger [get]
The logger for this instance More...
IReadOnlyList< IPipeline >  Pipelines [get]
Get a read only list of the pipelines that this element has been added to. More...
abstract string  ElementDataKey [get]
The string name of the key used to access the data populated by this element in the IFlowData. More...
abstract IEvidenceKeyFilter  EvidenceKeyFilter [get]
A list of all the evidence keys that this Flow Element can make use of. More...
abstract IList< TMeta >  Properties [get]
Details of the properties that this engine can populate More...
virtual bool  Asynchronous [get]
True if the element can be run totally asynchronously, false otherwise. More...
virtual bool  IsConcurrent [get]
True if the element starts multiple threads. More...
bool  IsDisposed [get]
True if the element has been disposed More...
ITypedKey< T >  ElementDataKeyTyped [get]
Get the key used to access the data populated by this element in the IFlowData. More...

Constructor & Destructor Documentation

Member Function Documentation

◆ ProcessEngine()

abstract void FiftyOne.Pipeline.Engines.FlowElements.AspectEngineBase< T, TMeta >.ProcessEngine ( IFlowData   data,
T   aspectData  
)
protected pure virtual

Extending classes must implement this method.

It should perform the required processing and update the specified aspect data instance.

Parameters
data - The IFlowData instance that provides the evidence.
aspectData - The IAspectData instance to populate with the results of processing.

◆ ProcessInternal()

sealed override void FiftyOne.Pipeline.Engines.FlowElements.AspectEngineBase< T, TMeta >.ProcessInternal ( IFlowData   data )
protected virtual

Implementation of method from the base class FlowElementBase<T, TMeta>.

This exists to centralize the results caching logic.

Parameters
data - The IFlowData instance that provides the evidence and holds the result.
Exceptions
ArgumentNullException - Thrown if the parameter is null

Implements FiftyOne.Pipeline.Core.FlowElements.FlowElementBase< T, TMeta >.

◆ SetCache()

virtual void FiftyOne.Pipeline.Engines.FlowElements.AspectEngineBase< T, TMeta >.SetCache ( IFlowCache   cache )
virtual

Set the results cache.

This is used to store the results of queries against the evidence that was provided. If the same evidence is provided again then the cached response is returned without needing to call the engine itself.

Parameters
cache - The cache.
Exceptions
ArgumentNullException - Thrown if the parameter is null

Property Documentation