add method

  1. @override
void add(
  1. List<int> data
)
override

Adds a data event to the sink.

Must not be called on a closed sink.

Implementation

@override
void add(List<int> data) {
  if (_isClosed && isBuffered) {
    throw ResponseContext.closed();
  } else if (!isBuffered) {
    if (!_isClosed) {
      if (_streamInitialized) {
        _write(data);
      } else if (_finalizing != null || hasPendingFinalizers) {
        // Headers wait for the finalizers; send this data after them.
        _queued.add(data);
        _commit().catchError((Object e, StackTrace st) {
          _finalizerError ??= e;
          _finalizerStackTrace ??= st;
        });
      } else {
        _openStream();
        _write(data);
      }
    }
  } else {
    buffer!.add(data);
  }
}