/// <summary> /// Returns an observable that traces a call to OnCompleted from the specified observable /// and includes an auto-generated identifier in the trace output. /// </summary> /// <typeparam name="T">The object that provides notification information.</typeparam> /// <param name="source">The observable from which the completed notification will be traced.</param> /// <param name="message">The message to be traced for the completed notification.</param> /// <returns>An observable that traces a call to OnCompleted.</returns> public static IObservable <T> TraceIdentityOnCompleted <T>(this IObservable <T> source, string message) { Contract.Requires(source != null); Contract.Requires(message != null); Contract.Ensures(Contract.Result <IObservable <T> >() != null); return(source.Do(new IdentifiedTraceObserver <T>((a, b) => null, TraceDefaults.GetIdentityMessageOnCompleted(message)))); }
/// <summary> /// Constructs a new instance of the <see cref="IdentifiedTraceObserver{T}" /> class for tracing OnNext, OnError and /// OnCompleted calls. /// </summary> /// <param name="nextFormat">The format in which values will be traced. A single replacement token {0} is supported.</param> /// <param name="errorFormat">The format in which the error will be traced. A single replacement token {0} is supported.</param> /// <param name="completedMessage">The message to be traced for the completed notification.</param> public IdentifiedTraceObserver(string nextFormat, string errorFormat, string completedMessage) : this(TraceDefaults.GetIdentityFormatOnNext <T>(nextFormat), TraceDefaults.GetIdentityFormatOnError(errorFormat), TraceDefaults.GetIdentityMessageOnCompleted(completedMessage)) { Contract.Requires(nextFormat != null); Contract.Requires(errorFormat != null); Contract.Requires(completedMessage != null); }
public static IEnumerable <T> TraceIdentityOnCompleted <T>(this IEnumerable <T> source, TraceSource trace, string message) { Contract.Requires(source != null); Contract.Requires(trace != null); Contract.Requires(message != null); Contract.Ensures(Contract.Result <IEnumerable <T> >() != null); var enumerable = source.Do(new IdentifiedTraceObserver <T>(trace, (a, b) => null, TraceDefaults.GetIdentityMessageOnCompleted(message))); Contract.Assume(enumerable != null); return(enumerable); }