NapiStream<T, S extends Object> constructor
NapiStream<T, S extends Object> (
- Stream<
T> source, { - required S snapshot(
- T
- void releaseSnapshot(
- S
- required List<
Object?> roots, - ResourceOperation? operation,
- List<
AbortSignal> signals = const [], - int capacity = 64,
Implementation
NapiStream(
Stream<T> source, {
required this._snapshot,
this._releaseSnapshot,
required List<Object?> roots,
ResourceOperation? operation,
List<AbortSignal> signals = const [],
this.capacity = 64,
}) : _source = source,
retainedInputs = List<Object?>.of(roots),
_operation = operation {
if (capacity < 1) throw ArgumentError.value(capacity, 'capacity');
// Observe only this private Dart completion, never a public JS Promise.
_cancelled.future.then<void>(
(_) => _didCancel(),
onError: (Object error, StackTrace stack) => _didCancel(error, stack),
);
operation?.attachStream(this, _closeStream);
if (signals.isNotEmpty && !_terminated) {
try {
_attachSignals(signals);
} catch (_) {
finishCreation(false);
rethrow;
}
}
}