/// <summary> /// The SameValueFilterArrow will not allow to send two /// consecutive identical messages twice. /// </summary> /// <param name="ArrowSender">The sender of the messages/objects.</param> /// <param name="Recipient">A recipient of the processed messages.</param> /// <param name="Recipients">Further recipients of the processed messages.</param> public static SameValueFilterArrow <TMessage> SameValueFilter <TMessage>(this IArrowSender <TMessage> ArrowSender, IArrowReceiver <TMessage> Recipient, params IArrowReceiver <TMessage>[] Recipients) where TMessage : IEquatable <TMessage> { var _SameValueFilterArrow = new SameValueFilterArrow <TMessage>(Recipient, Recipients); ArrowSender.OnMessageAvailable += _SameValueFilterArrow.ReceiveMessage; return(_SameValueFilterArrow); }
/// <summary> /// The SameValueFilterArrow will not allow to send two /// consecutive identical messages twice. /// </summary> /// <param name="ArrowSender">The sender of the messages/objects.</param> /// <param name="LastMessage">Sets the initial value of LastMessage.</param> public static SameValueFilterArrow <TMessage> SameValueFilter <TMessage>(this IArrowSender <TMessage> ArrowSender, TMessage LastMessage) where TMessage : IEquatable <TMessage> { var _SameValueFilterArrow = new SameValueFilterArrow <TMessage>(LastMessage); ArrowSender.OnMessageAvailable += _SameValueFilterArrow.ReceiveMessage; return(_SameValueFilterArrow); }