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());
}
}