controller<T> method

StreamController<T> controller<T>({
  1. bool broadcast = false,
  2. FutureOr<void> onCancel()?,
})

Creates a StreamController that is closed within dispose.

Set broadcast to true if you need a broadcasting controller as in StreamController.broadcast.

Implementation

StreamController<T> controller<T>(
    {bool broadcast = false, FutureOr<void> Function()? onCancel /*?*/
    }) {
  StreamController<T> ret;

  _sanity();

  if (broadcast) {
    ret = ControlledStreamController<T>.broadcast(onCancel: onCancel);
  } else {
    ret = ControlledStreamController<T>(onCancel: onCancel);
  }

  ret.done.then((ev) => _ctrls.remove(ret));

  _ctrls.add(ret);

  return ret;
}