package se.l4.vibe.internal;
import se.l4.vibe.probes.AbstractSampler;
import se.l4.vibe.probes.Probe;
import se.l4.vibe.probes.SampleListener;
import se.l4.vibe.probes.SampledProbe;
import se.l4.vibe.probes.Sampler;
import se.l4.vibe.trigger.On;
/**
* Implementation of {@link Sampler} for use {@link On}.
*
* @author Andreas Holstenson
*
* @param <T>
*/
public class SamplerForMergedTrigger<T>
extends AbstractSampler<T>
{
public <In> SamplerForMergedTrigger(Sampler<In> input, final Probe<T> probe)
{
input.addListener(new SampleListener<In>()
{
@Override
public void sampleAcquired(SampledProbe<In> probe0, Entry<In> entry)
{
SampleListener<T>[] listeners0 = listeners;
Entry<T> newEntry = createEntry(entry.getTime(), probe.read());
for(SampleListener<T> l : listeners0)
{
l.sampleAcquired(null, newEntry);
}
}
});
}
@Override
public SampledProbe<T> getProbe()
{
return null;
}
}