public Pipeline(string name, IElementProcessor elementProcessor, IBrowsableElementStore elementStore, IFetchPolicy fetchPolicy) { _name = name; _elementStore = elementStore; _demultiplexer = new Demultiplexer(); _demultiplexer.EventDemultiplexed += OnDemultiplexed; _processor = new PipelineProcessor(elementProcessor); _processor.EventProcessed += OnEventProcessed; _fetcher = new ElementFetcher(fetchPolicy, _elementStore, name); _fetcher.ElementFetched += OnElementFetched; _fetchTimer = new Timer(x => EvaluateFetchPolicy(), null, TimeSpan.Zero, TimeSpan.FromSeconds(1)); }