/// <summary> /// Initializes a new instance of the <see cref="LogMessageCollectionFilteringAccessor{TMessage}"/> class. /// </summary> /// <param name="collection">The unfiltered collection the accessor should work on.</param> /// <param name="filter"> /// The filter the accessor should apply (<c>null</c> to create an accessor without filtering capabilities). /// </param> internal LogMessageCollectionFilteringAccessor( LogMessageCollection <TMessage> collection, ILogMessageCollectionFilter <TMessage> filter) { mCollection = collection ?? throw new ArgumentNullException(nameof(collection)); mFilter = filter; }
/// <summary> /// Gets a collection providing the message set that pass the specified filter. /// </summary> /// <param name="filter">Filter to apply.</param> /// <returns>The filtered message collection.</returns> public FilteredLogMessageCollection <TMessage> GetFilteredCollection(ILogMessageCollectionFilter <TMessage> filter) { var collection = new FilteredLogMessageCollection <TMessage>(this, filter); mFilteredCollections.Add(new WeakReference <FilteredLogMessageCollection <TMessage> >(collection)); return(collection); }
/// <summary> /// Initializes a new instance of the <see cref="LogMessageCollection{TMessage}"/> class. /// </summary> /// <param name="unfiltered">Collection containing the unfiltered message set.</param> /// <param name="filter">Filter to apply to the unfiltered message set.</param> internal FilteredLogMessageCollection( LogMessageCollection <TMessage> unfiltered, ILogMessageCollectionFilter <TMessage> filter) : base(unfiltered) { Filter = filter ?? throw new ArgumentNullException(nameof(filter)); }
/// <summary> /// Gets a filtering accessor that matches log messages using the specified filter. /// </summary> /// <param name="filter">Filter to use.</param> /// <returns>The filtering accessor.</returns> public LogMessageCollectionFilteringAccessor <TMessage> GetFilteringAccessor(ILogMessageCollectionFilter <TMessage> filter) { return(new LogMessageCollectionFilteringAccessor <TMessage>(this, filter)); }