6[DebuggerDisplay(
"Count={Count}")]
30 [DebuggerDisplay(
"{DebuggerDisplayContent,nq}")]
58 return $"{Common.GetNameForDebugger(this)} Source=\"{((debuggerDisplay != null) ? debuggerDisplay.Content : _owningSource)}\", Target=\"{((debuggerDisplay2 != null) ? debuggerDisplay2.Content : _target)}\"";
191 if (
value.RemainingMessages == 0)
201 else if (
value.RemainingMessages > 0)
203 value.RemainingMessages--;
237 _lastTarget.Next =
node;
243 _firstTarget.Previous =
node;
252 if (
node.Previous !=
null)
254 node.Previous.Next = next;
255 node.Previous =
null;
257 if (
node.Next !=
null)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static string NotSupported_MemberNotNeeded
static readonly Action< Exception > AsyncExceptionHandler
static void PropagateCompletion(Task sourceCompletionTask, IDataflowBlock target, Action< Exception > exceptionHandler)
static readonly DataflowEtwProvider Log
ITargetBlock< T >[] Targets
readonly TargetRegistry< T > _registry
DebugView(TargetRegistry< T > registry)
LinkedTargetInfo(ITargetBlock< T > target, DataflowLinkOptions linkOptions)
readonly bool PropagateCompletion
readonly ITargetBlock< T > Target
LinkedTargetInfo Previous
readonly NopLinkPropagator _passthrough
DebugView(NopLinkPropagator passthrough)
ITargetBlock< T > LinkedTarget
object DebuggerDisplayContent
readonly ISourceBlock< T > _owningSource
NopLinkPropagator(ISourceBlock< T > owningSource, ITargetBlock< T > target)
readonly ITargetBlock< T > _target
ITargetBlock< T >[] TargetsForDebugger
LinkedTargetInfo _lastTarget
LinkedTargetInfo FirstTargetNode
TargetRegistry(ISourceBlock< T > owningSource)
void PropagateCompletion(LinkedTargetInfo firstTarget)
LinkedTargetInfo ClearEntryPoints()
void Remove(ITargetBlock< T > target, bool onlyIfReachedMaxMessages=false)
void AddToList(LinkedTargetInfo node, bool append)
LinkedTargetInfo _firstTarget
void RemoveFromList(LinkedTargetInfo node)
void Add(ref ITargetBlock< T > target, DataflowLinkOptions linkOptions)
readonly ISourceBlock< T > _owningSource
readonly Dictionary< ITargetBlock< T >, LinkedTargetInfo > _targetInformation
int _linksWithRemainingMessages
void Remove_Slow(ITargetBlock< T > target, bool onlyIfReachedMaxMessages)
void Fault(Exception exception)
bool ReserveMessage(DataflowMessageHeader messageHeader, ITargetBlock< TOutput > target)
void ReleaseReservation(DataflowMessageHeader messageHeader, ITargetBlock< TOutput > target)
TOutput? ConsumeMessage(DataflowMessageHeader messageHeader, ITargetBlock< TOutput > target, out bool messageConsumed)
DataflowMessageStatus OfferMessage(DataflowMessageHeader messageHeader, TInput messageValue, ISourceBlock< TInput >? source, bool consumeToAccept)