Class AsyncMapBase
The shared base of the two parts of a MapAsync pipeline: the strategy ( AsyncConcurrencyStrategy<TInput, TState>) and the engine that runs it ( SodaFlow.Async.AsyncMapExecutionManager<TInput, TResult, TStrategyInput>). Its only purpose is to hold the small data types that the two parts send to each other: AsyncMapBase.AsyncQueuedItem<TInput>, AsyncMapBase.AsyncToStart<TInput> , AsyncMapBase.AsyncOutcome<TResult>, and AsyncMapBase.AsyncStrategyResult<TInput>. They are nested types here, and not public top-level types. One class is not a subtype of the other. Without this shared base, one part or the two parts must make these types fully public to name them. With this base, the two parts get them through usual inheritance, and the types stay off the public surface of the library. Only code in this assembly, and code that subclasses AsyncConcurrencyStrategy<TInput, TState> to write a custom strategy, can see them. This base is not generic, because TInput and TResult belong to the nested types that use them, and not to each user of this base.
[PublicAPI]
public abstract class AsyncMapBase
- Inheritance
-
AsyncMapBase
- Derived
- Inherited Members
- Extension Methods