add method
Adds a data event to the sink.
Must not be called on a closed sink.
Implementation
@override
Future<void> add(Uint8List data) async {
if (streamType == StreamType.unidirectionalRemote) {
throw StateError('UDXStream ($id): Cannot write to a receive-only unidirectional stream');
}
if (!_connected) throw StateError('UDXStream ($id): Stream is not connected');
if (_socket == null) throw StateError('UDXStream ($id): Stream is not connected to a socket');
if (_localWriteClosed) throw StateError('UDXStream ($id): Cannot write after closeWrite() has been called');
if (remoteId == null || remoteHost == null || remotePort == null) {
throw StateError('UDXStream ($id): Remote peer details not set');
}
if (data.isEmpty) return;
final fragments = _fragmentData(data);
for (final fragment in fragments) {
await _sendFragment(fragment);
}
emit('send', data);
}