blob: 6bdf08cb459940dce2d167d0f062bb60c1b3ab5a [file] [log] [blame]
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// @assertion StreamController.broadcast({void onListen(), void onCancel(),
/// bool sync: false})
/// A controller where stream can be listened to more than once.
/// The Stream returned by stream is a broadcast stream. It can be listened to
/// more than once.
/// The controller distributes any events to all currently subscribed listeners
/// at the time when add, addError or close is called.
/// @description Checks that property stream implements Stream interface
/// @author
import "dart:async";
import "../Stream/allTests_A02.lib.dart";
Stream<T> create<T>(
Iterable<T> data, {bool isError(T element)?, T? defaultValue}) {
StreamController<T>? sc;
sc = new StreamController<T>.broadcast(
onListen:() {
for (T e in data) {
if (isError != null && isError(e)) {
sc?.addError(e as Object);
} else {
new Future(() => sc?.close());
onCancel: () {
main() {