sclass SourceTriggeredStream extends Meta { DoneFlag ended = new(true); volatile A lastElement; new AtomicLong elementCount; event newElement(A a) { lastElement.set(a); inc(elementCount); } BufferedImage get() { ret lastElement; } long elementCount() { ret elementCount!; } void end { ended.raise(); } bool ended() { ret ended.isUp(); } }