Add a DelegatingStreamChannel class. R=rnystrom@google.com Review URL: https://codereview.chromium.org//1617483003 .
diff --git a/pkgs/stream_channel/lib/src/delegating_stream_channel.dart b/pkgs/stream_channel/lib/src/delegating_stream_channel.dart new file mode 100644 index 0000000..9d6ad90 --- /dev/null +++ b/pkgs/stream_channel/lib/src/delegating_stream_channel.dart
@@ -0,0 +1,17 @@ +// Copyright (c) 2016, 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. + +/// A simple delegating wrapper around [StreamChannel]. +/// +/// Subclasses can override individual methods, or use this to expose only +/// [StreamChannel] methods. +class StreamChannelView<T> extends StreamChannelMixin<T> { + /// The inner channel to which methods are forwarded. + final StreamChannel<T> _inner; + + Stream<T> get stream => _inner.stream; + StreamSink<T> get sink => _inner.sink; + + StreamChannelView(this._inner); +}
diff --git a/pkgs/stream_channel/lib/stream_channel.dart b/pkgs/stream_channel/lib/stream_channel.dart index c4e28a0..a8c9a09 100644 --- a/pkgs/stream_channel/lib/stream_channel.dart +++ b/pkgs/stream_channel/lib/stream_channel.dart
@@ -4,6 +4,7 @@ import 'dart:async'; +export 'src/delegating_stream_channel.dart'; export 'src/multi_channel.dart'; /// An abstract class representing a two-way communication channel.