| Index: pkg/http_server/lib/src/http_body_impl.dart
|
| diff --git a/pkg/http_server/lib/src/http_body_impl.dart b/pkg/http_server/lib/src/http_body_impl.dart
|
| index f3ffa9e7252d7d7a2c1d8c826e5ab7e2cdcb0566..3c4a5fae66b79622be6cee22eacdf4b5bb230d7d 100644
|
| --- a/pkg/http_server/lib/src/http_body_impl.dart
|
| +++ b/pkg/http_server/lib/src/http_body_impl.dart
|
| @@ -5,14 +5,33 @@
|
| part of http_server;
|
|
|
| class _HttpBodyHandlerTransformer
|
| - extends StreamEventTransformer<HttpRequest, HttpRequestBody> {
|
| + implements StreamTransformer<HttpRequest, HttpRequestBody> {
|
| final Encoding _defaultEncoding;
|
| - _HttpBodyHandlerTransformer(this._defaultEncoding);
|
|
|
| - void handleData(HttpRequest request, EventSink<HttpRequestBody> sink) {
|
| + const _HttpBodyHandlerTransformer(this._defaultEncoding);
|
| +
|
| + Stream<HttpRequestBody> bind(Stream<HttpRequest> stream) {
|
| + return new Stream<HttpRequestBody>.eventTransformed(
|
| + stream,
|
| + (EventSink<HttpRequestBody> sink) =>
|
| + new _HttpBodyHandlerTransformerSink(_defaultEncoding, sink));
|
| + }
|
| +}
|
| +
|
| +class _HttpBodyHandlerTransformerSink implements EventSink<HttpRequest> {
|
| + final Encoding _defaultEncoding;
|
| + final EventSink<HttpRequestBody> _outSink;
|
| +
|
| + _HttpBodyHandlerTransformerSink(this._defaultEncoding, this._outSink);
|
| +
|
| + void add(HttpRequest request) {
|
| _HttpBodyHandler.processRequest(request, _defaultEncoding)
|
| - .then(sink.add, onError: sink.addError);
|
| + .then(_outSink.add, onError: _outSink.addError);
|
| + }
|
| + void addError(Object error, [StackTrace stackTrace]) {
|
| + _outSink.addError(error, stackTrace);
|
| }
|
| + void close() => _outSink.close();
|
| }
|
|
|
| class _HttpBodyHandler {
|
|
|