public RealtimeRecordDelayFilterConfig(final InitialElementProducer<IMonitoringRecord> recordProducer, final Counter<IMonitoringRecord> preDelayCounter, final RealtimeRecordDelayFilter delayFilter, final Clock clock, final AnalysisThroughputFilter throughputStage, final Counter<IMonitoringRecord> postDelayCounter, final CollectorSink<IMonitoringRecord> recordCollectorSink, final CollectorSink<Long> throughputCollectorSink) { this.connectPorts(recordProducer.getOutputPort(), preDelayCounter.getInputPort()); this.connectPorts(preDelayCounter.getOutputPort(), delayFilter.getInputPort()); this.connectPorts(delayFilter.getOutputPort(), postDelayCounter.getInputPort()); this.connectPorts(postDelayCounter.getOutputPort(), throughputStage.getRecordsInputPort()); this.connectPorts(throughputStage.getRecordsOutputPort(), recordCollectorSink.getInputPort()); this.connectPorts(clock.getOutputPort(), throughputStage.getTimestampsInputPort()); this.connectPorts(throughputStage.getRecordsCountOutputPort(), throughputCollectorSink.getInputPort()); } }