1 interface inheriting from ITargetBlock
System.Threading.Tasks.Dataflow (1)
Base\IPropagatorBlock.cs (1)
18public interface IPropagatorBlock<in TInput, out TOutput> : ITargetBlock<TInput>, ISourceBlock<TOutput>
7 implementations of ITargetBlock
System.Threading.Tasks.Dataflow (7)
Base\DataflowBlock.cs (4)
1103private sealed class ReceiveTarget<T> : TaskCompletionSource<T>, ITargetBlock<T>, IDebuggerDisplay 1452private sealed class OutputAvailableAsyncTarget<T> : TaskCompletionSource<bool>, ITargetBlock<T>, IDebuggerDisplay 2061private sealed class ChooseTarget<T> : TaskCompletionSource<T>, ITargetBlock<T>, IDebuggerDisplay 2602private sealed class NullTargetBlock<TInput> : ITargetBlock<TInput>
Blocks\ActionBlock.cs (1)
25public sealed class ActionBlock<TInput> : ITargetBlock<TInput>, IDebuggerDisplay
Blocks\BatchedJoinBlock.cs (1)
527internal sealed class BatchedJoinBlockTarget<T> : ITargetBlock<T>, IDebuggerDisplay
Blocks\JoinBlock.cs (1)
474internal sealed class JoinBlockTarget<T> : JoinBlockTargetBase, ITargetBlock<T>, IDebuggerDisplay
184 references to ITargetBlock
System.Threading.Tasks.Dataflow (184)
Base\DataflowBlock.cs (46)
27/// <summary>Links the <see cref="ISourceBlock{TOutput}"/> to the specified <see cref="ITargetBlock{TOutput}"/>.</summary> 29/// <param name="target">The <see cref="ITargetBlock{TOutput}"/> to which to connect the source.</param> 35ITargetBlock<TOutput> target) 45/// <summary>Links the <see cref="ISourceBlock{TOutput}"/> to the specified <see cref="ITargetBlock{TOutput}"/> using the specified filter.</summary> 47/// <param name="target">The <see cref="ITargetBlock{TOutput}"/> to which to connect the source.</param> 55ITargetBlock<TOutput> target, 62/// <summary>Links the <see cref="ISourceBlock{TOutput}"/> to the specified <see cref="ITargetBlock{TOutput}"/> using the specified filter.</summary> 64/// <param name="target">The <see cref="ITargetBlock{TOutput}"/> to which to connect the source.</param> 74ITargetBlock<TOutput> target, 98private readonly ITargetBlock<T> _target; 106internal FilteredLinkPropagator(ISourceBlock<T> source, ITargetBlock<T> target, Predicate<T> predicate) 130DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 151T? ISourceBlock<T>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target, out bool messageConsumed) 160bool ISourceBlock<T>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 169void ISourceBlock<T>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 185IDisposable ISourceBlock<T>.LinkTo(ITargetBlock<T> target, DataflowLinkOptions linkOptions) { throw new NotSupportedException(SR.NotSupported_MemberNotNeeded); } 215public ITargetBlock<T> LinkedTarget { get { return _filter._target; } } 221/// <summary>Posts an item to the <see cref="System.Threading.Tasks.Dataflow.ITargetBlock{T}"/>.</summary> 233/// <see cref="System.Threading.Tasks.Dataflow.DataflowBlock.SendAsync{TInput}(ITargetBlock{TInput}, TInput)">SendAsync</see>, 237public static bool Post<TInput>(this ITargetBlock<TInput> target, TInput item) 259public static Task<bool> SendAsync<TInput>(this ITargetBlock<TInput> target, TInput item) 286public static Task<bool> SendAsync<TInput>(this ITargetBlock<TInput> target, TInput item, CancellationToken cancellationToken) 348private readonly ITargetBlock<TOutput> _target; 388internal SendAsyncSource(ITargetBlock<TOutput> target, TOutput messageValue, CancellationToken cancellationToken) 618TOutput? ISourceBlock<TOutput>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed) 663bool ISourceBlock<TOutput>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 680void ISourceBlock<TOutput>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 712IDisposable ISourceBlock<TOutput>.LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions) { throw new NotSupportedException(SR.NotSupported_MemberNotNeeded); } 745public ITargetBlock<TOutput> Target { get { return _source._target; } } 1146DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 1460DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 1507ITargetBlock<TInput> target, ISourceBlock<TOutput> source) 1521private readonly ITargetBlock<TInput> _target; 1525public EncapsulatingPropagator(ITargetBlock<TInput> target, ISourceBlock<TOutput> source) 1556public IDisposable LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions) 1582public TOutput? ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed) 1588public bool ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 1594public void ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 1627public ITargetBlock<TInput> Target { get { return _propagator._target; } } 2515/// <summary>Creates a new <see cref="System.IObserver{TInput}"/> abstraction over the <see cref="ITargetBlock{TInput}"/>.</summary> 2519public static IObserver<TInput> AsObserver<TInput>(this ITargetBlock<TInput> target) 2531private readonly ITargetBlock<TInput> _target; 2535internal TargetObserver(ITargetBlock<TInput> target) 2592/// <returns>A <see cref="System.Threading.Tasks.Dataflow.ITargetBlock{T}"/> that accepts and subsequently drops all offered messages.</returns> 2593public static ITargetBlock<TInput> NullTarget<TInput>() 2607DataflowMessageStatus ITargetBlock<TInput>.OfferMessage(DataflowMessageHeader messageHeader, TInput messageValue, ISourceBlock<TInput>? source, bool consumeToAccept)
Base\DataflowMessageStatus.cs (6)
19/// Indicates that the <see cref="ITargetBlock{TInput}"/> accepted the message. Once a target has accepted a message, 25/// Indicates that the <see cref="ITargetBlock{TInput}"/> declined the message. The <see cref="ISourceBlock{TOutput}"/> still owns the message. 30/// Indicates that the <see cref="ITargetBlock{TInput}"/> postponed the message for potential consumption at a later time. 36/// Indicates that the <see cref="ITargetBlock{TInput}"/> tried to accept the message from the <see cref="ISourceBlock{TOutput}"/>, but the 42/// Indicates that the <see cref="ITargetBlock{TInput}"/> declined the message. The <see cref="ISourceBlock{TOutput}"/> still owns the message. 43/// Additionally, the <see cref="ITargetBlock{TInput}"/> will decline all future messages sent by the source.
Base\ISourceBlock.cs (4)
25IDisposable LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions); 30TOutput? ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed); 33bool ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target); 36void ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target);
Base\ITargetBlock.cs (1)
16/// <typeparam name="TInput">Specifies the type of data accepted by the <see cref="ITargetBlock{TInput}"/>.</typeparam>
Blocks\ActionBlock.cs (3)
253/// <summary>Posts an item to the <see cref="System.Threading.Tasks.Dataflow.ITargetBlock{T}"/>.</summary> 263/// <see cref="System.Threading.Tasks.Dataflow.DataflowBlock.SendAsync{TInput}(ITargetBlock{TInput}, TInput)">SendAsync</see>, 281DataflowMessageStatus ITargetBlock<TInput>.OfferMessage(DataflowMessageHeader messageHeader, TInput messageValue, ISourceBlock<TInput>? source, bool consumeToAccept)
Blocks\BatchBlock.cs (6)
121public IDisposable LinkTo(ITargetBlock<T[]> target, DataflowLinkOptions linkOptions) 149DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 155T[]? ISourceBlock<T[]>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<T[]> target, out bool messageConsumed) 161bool ISourceBlock<T[]>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<T[]> target) 167void ISourceBlock<T[]>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<T[]> target) 233public ITargetBlock<T[]>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } }
Blocks\BatchedJoinBlock.cs (20)
120public ITargetBlock<T1> Target1 { get { return _target1; } } 123public ITargetBlock<T2> Target2 { get { return _target2; } } 126public IDisposable LinkTo(ITargetBlock<Tuple<IList<T1>, IList<T2>>> target, DataflowLinkOptions linkOptions) 174DataflowMessageHeader messageHeader, ITargetBlock<Tuple<IList<T1>, IList<T2>>> target, out bool messageConsumed) 181DataflowMessageHeader messageHeader, ITargetBlock<Tuple<IList<T1>, IList<T2>>> target) 188DataflowMessageHeader messageHeader, ITargetBlock<Tuple<IList<T1>, IList<T2>>> target) 242public ITargetBlock<T1> Target1 { get { return _batchedJoinBlock._target1; } } 244public ITargetBlock<T2> Target2 { get { return _batchedJoinBlock._target2; } } 259public ITargetBlock<Tuple<IList<T1>, IList<T2>>>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } } 369public ITargetBlock<T1> Target1 { get { return _target1; } } 372public ITargetBlock<T2> Target2 { get { return _target2; } } 375public ITargetBlock<T3> Target3 { get { return _target3; } } 378public IDisposable LinkTo(ITargetBlock<Tuple<IList<T1>, IList<T2>, IList<T3>>> target, DataflowLinkOptions linkOptions) 428DataflowMessageHeader messageHeader, ITargetBlock<Tuple<IList<T1>, IList<T2>, IList<T3>>> target, out bool messageConsumed) 435DataflowMessageHeader messageHeader, ITargetBlock<Tuple<IList<T1>, IList<T2>, IList<T3>>> target) 442DataflowMessageHeader messageHeader, ITargetBlock<Tuple<IList<T1>, IList<T2>, IList<T3>>> target) 497public ITargetBlock<T1> Target1 { get { return _batchedJoinBlock._target1; } } 499public ITargetBlock<T2> Target2 { get { return _batchedJoinBlock._target2; } } 501public ITargetBlock<T3> Target3 { get { return _batchedJoinBlock._target3; } } 516public ITargetBlock<Tuple<IList<T1>, IList<T2>, IList<T3>>>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } }
Blocks\BroadcastBlock.cs (15)
148public IDisposable LinkTo(ITargetBlock<T> target, DataflowLinkOptions linkOptions) { return _source.LinkTo(target, linkOptions); } 160DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 415T? ISourceBlock<T>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target, out bool messageConsumed) 421bool ISourceBlock<T>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 427void ISourceBlock<T>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 485public ITargetBlock<T>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } } 522private ITargetBlock<TOutput>? _nextMessageReservedFor; 666private void OfferCurrentMessageToNewTarget(ITargetBlock<TOutput> target) 767ITargetBlock<TOutput> target = cur.Target; 782private void OfferMessageToTarget(DataflowMessageHeader header, TOutput message, ITargetBlock<TOutput> target) 1003internal IDisposable LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions) 1032internal TOutput? ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed) 1072internal bool ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 1099internal void ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 1220public ITargetBlock<TOutput>? NextMessageReservedFor { get { return _source._nextMessageReservedFor; } }
Blocks\BufferBlock.cs (6)
88DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 183public IDisposable LinkTo(ITargetBlock<T> target, DataflowLinkOptions linkOptions) { return _source.LinkTo(target, linkOptions); } 198T? ISourceBlock<T>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target, out bool messageConsumed) 204bool ISourceBlock<T>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 210void ISourceBlock<T>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 473public ITargetBlock<T>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } }
Blocks\JoinBlock.cs (21)
110public IDisposable LinkTo(ITargetBlock<Tuple<T1, T2>> target, DataflowLinkOptions linkOptions) 157public ITargetBlock<T1> Target1 { get { return _target1; } } 160public ITargetBlock<T2> Target2 { get { return _target2; } } 163Tuple<T1, T2>? ISourceBlock<Tuple<T1, T2>>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<Tuple<T1, T2>> target, out bool messageConsumed) 169bool ISourceBlock<Tuple<T1, T2>>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<Tuple<T1, T2>> target) 175void ISourceBlock<Tuple<T1, T2>>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<Tuple<T1, T2>> target) 230public ITargetBlock<T1> Target1 { get { return _joinBlock._target1; } } 232public ITargetBlock<T2> Target2 { get { return _joinBlock._target2; } } 237public ITargetBlock<Tuple<T1, T2>>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } } 329public IDisposable LinkTo(ITargetBlock<Tuple<T1, T2, T3>> target, DataflowLinkOptions linkOptions) 378public ITargetBlock<T1> Target1 { get { return _target1; } } 381public ITargetBlock<T2> Target2 { get { return _target2; } } 384public ITargetBlock<T3> Target3 { get { return _target3; } } 387Tuple<T1, T2, T3>? ISourceBlock<Tuple<T1, T2, T3>>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<Tuple<T1, T2, T3>> target, out bool messageConsumed) 393bool ISourceBlock<Tuple<T1, T2, T3>>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<Tuple<T1, T2, T3>> target) 399void ISourceBlock<Tuple<T1, T2, T3>>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<Tuple<T1, T2, T3>> target) 454public ITargetBlock<T1> Target1 { get { return _joinBlock._target1; } } 456public ITargetBlock<T2> Target2 { get { return _joinBlock._target2; } } 458public ITargetBlock<T3> Target3 { get { return _joinBlock._target3; } } 463public ITargetBlock<Tuple<T1, T2, T3>>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } } 814DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept)
Blocks\TransformBlock.cs (6)
341public IDisposable LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions) 365DataflowMessageStatus ITargetBlock<TInput>.OfferMessage(DataflowMessageHeader messageHeader, TInput messageValue, ISourceBlock<TInput>? source, bool consumeToAccept) 371TOutput? ISourceBlock<TOutput>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed) 377bool ISourceBlock<TOutput>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 383void ISourceBlock<TOutput>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 447public ITargetBlock<TOutput>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } }
Blocks\TransformManyBlock.cs (6)
556public IDisposable LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions) { return _source.LinkTo(target, linkOptions); } 574DataflowMessageStatus ITargetBlock<TInput>.OfferMessage(DataflowMessageHeader messageHeader, TInput messageValue, ISourceBlock<TInput>? source, bool consumeToAccept) 580TOutput? ISourceBlock<TOutput>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed) 586bool ISourceBlock<TOutput>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 592void ISourceBlock<TOutput>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 656public ITargetBlock<TOutput>? NextMessageReservedFor { get { return _sourceDebuggingInformation.NextMessageReservedFor; } }
Blocks\WriteOnceBlock.cs (6)
297public IDisposable LinkTo(ITargetBlock<T> target, DataflowLinkOptions linkOptions) 335DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 375T? ISourceBlock<T>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target, out bool messageConsumed) 396bool ISourceBlock<T>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 409void ISourceBlock<T>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 455ITargetBlock<T> target = cur.Target;
Internal\Common.cs (3)
405internal static IDisposable CreateUnlinker<TOutput>(object outgoingLock, TargetRegistry<TOutput> targetRegistry, ITargetBlock<TOutput> targetBlock) 497internal static void ReleaseAllPostponedMessages<T>(ITargetBlock<T> target, 601internal static readonly Action<object, TargetRegistry<T>, ITargetBlock<T>> CreateUnlinkerShimAction =
Internal\DataflowEtwProvider.cs (2)
179internal void DataflowBlockLinking<T>(ISourceBlock<T> source, ITargetBlock<T> target) 201internal void DataflowBlockUnlinking<T>(ISourceBlock<T> source, ITargetBlock<T> target)
Internal\SourceCore.cs (8)
83private ITargetBlock<TOutput>? _nextMessageReservedFor; // protected by OutgoingLock 124internal IDisposable LinkTo(ITargetBlock<TOutput> target, DataflowLinkOptions linkOptions) 157internal TOutput? ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target, out bool messageConsumed) 213internal bool ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 240internal void ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<TOutput> target) 535private bool OfferToTargets(ITargetBlock<TOutput>? linkToTarget = null) 664DataflowMessageHeader header, TOutput message, ITargetBlock<TOutput> target, 1016internal ITargetBlock<TOutput>? NextMessageReservedFor { get { return _source._nextMessageReservedFor; } }
Internal\SpscTargetCore.cs (3)
40/// Provides a core implementation of <see cref="ITargetBlock{TInput}"/> for use when there's only a single producer posting data. 47private readonly ITargetBlock<TInput> _owningTarget; 75ITargetBlock<TInput> owningTarget, Action<TInput> action, ExecutionDataflowBlockOptions dataflowBlockOptions)
Internal\TargetCore.cs (3)
43/// Provides a core implementation of <see cref="ITargetBlock{TInput}"/>.</summary> 63private readonly ITargetBlock<TInput> _owningTarget; 107ITargetBlock<TInput> owningTarget,
Internal\TargetRegistry.cs (19)
35internal LinkedTargetInfo(ITargetBlock<T> target, DataflowLinkOptions linkOptions) 46internal readonly ITargetBlock<T> Target; 62private readonly Dictionary<ITargetBlock<T>, LinkedTargetInfo> _targetInformation; 77_targetInformation = new Dictionary<ITargetBlock<T>, LinkedTargetInfo>(); 83internal void Add(ref ITargetBlock<T> target, DataflowLinkOptions linkOptions) 109internal bool Contains(ITargetBlock<T> target) 119internal void Remove(ITargetBlock<T> target, bool onlyIfReachedMaxMessages = false) 136private void Remove_Slow(ITargetBlock<T> target, bool onlyIfReachedMaxMessages) 280private ITargetBlock<T>[] TargetsForDebugger 284var targets = new ITargetBlock<T>[Count]; 305private readonly ITargetBlock<T> _target; 310internal NopLinkPropagator(ISourceBlock<T> owningSource, ITargetBlock<T> target) 321DataflowMessageStatus ITargetBlock<T>.OfferMessage(DataflowMessageHeader messageHeader, T messageValue, ISourceBlock<T>? source, bool consumeToAccept) 328T? ISourceBlock<T>.ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target, out bool messageConsumed) 334bool ISourceBlock<T>.ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 340void ISourceBlock<T>.ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock<T> target) 353IDisposable ISourceBlock<T>.LinkTo(ITargetBlock<T> target, DataflowLinkOptions linkOptions) { throw new NotSupportedException(SR.NotSupported_MemberNotNeeded); } 383public ITargetBlock<T> LinkedTarget { get { return _passthrough._target; } } 404public ITargetBlock<T>[] Targets { get { return _registry.TargetsForDebugger; } }