sendDataAt method
sendData for a sample that came from somewhere else: sourceClock is
the time its origin stamped it with, in seconds on the origin's clock,
and travels in place of this node's send time.
Receivers read it through upstream, so set that first.
Implementation
@override
Future<void> sendDataAt(double sourceClock, Iterable<dynamic> data) async {
if (!started) throw StateError('Stream not started');
config.validateSample(data);
publishSample(data.toList(growable: false), sourceClock: sourceClock);
}