public static IObservable <T> TraceOnCompleted <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 TraceObserver <T>(_ => null, TraceDefaults.GetMessageOnCompleted(message)))); }
/// <summary> /// Constructs a new instance of the <see cref="TraceObserver{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 TraceObserver(string nextFormat, string errorFormat, string completedMessage) : this(TraceDefaults.GetFormatOnNext <T>(nextFormat), TraceDefaults.GetFormatOnError(errorFormat), TraceDefaults.GetMessageOnCompleted(completedMessage)) { Contract.Requires(nextFormat != null); Contract.Requires(errorFormat != null); Contract.Requires(completedMessage != null); }
public static IEnumerable <T> TraceOnCompleted <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 TraceObserver <T>(trace, _ => null, TraceDefaults.GetMessageOnCompleted(message))); Contract.Assume(enumerable != null); return(enumerable); }