package org.stagemonitor.tracing;
import org.stagemonitor.tracing.reporter.SpanReporter;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
public class SpanCapturingReporter extends SpanReporter {
private final BlockingQueue<SpanContextInformation> spans = new LinkedBlockingQueue<>();
@Override
public void report(SpanContextInformation spanContext) throws Exception {
spans.add(spanContext);
}
@Override
public boolean isActive(SpanContextInformation spanContext) {
return true;
}
public SpanContextInformation get() throws InterruptedException {
return spans.poll(500, TimeUnit.MILLISECONDS);
}
}