123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- // Copyright 2015 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- /**
- * @fileoverview the API spec for the closure polyfill of Node stream.Readable.
- *
- * Node streams API is specified at https://nodejs.org/api/stream.html
- *
- * Only a subset of Node streams API (under the object mode) will be supported.
- *
- * It's our belief that Node and whatwg streams will eventually
- * converge. As it happens, we will add a whatwg streams polyfill too.
- * (https://github.com/whatwg/streams)
- *
- * This API requires no special server-side support other than the standard
- * HTTP semantics. Message framing only relies on MIME types such as JSON
- * to support atomic message delivery (e.g. elements of a JSON array).
- * Other streaming-related features such as cancellation and keep-alive are
- * exposed/constrained by the Node streams API semantics.
- *
- * Flow-control support is limited due to the underlying use of XHR. That is,
- * this version will assume the "flowing mode", and the read method is not
- * provided.
- *
- */
- goog.provide('goog.net.streams.NodeReadableStream');
- /**
- * This interface represents a readable stream.
- *
- * @interface
- */
- goog.net.streams.NodeReadableStream = function() {};
- /**
- * Read events for the stream.
- * @enum {string}
- */
- goog.net.streams.NodeReadableStream.EventType = {
- READABLE: 'readable',
- DATA: 'data',
- END: 'end',
- CLOSE: 'close',
- ERROR: 'error'
- };
- /**
- * Register a callback to handle I/O events.
- *
- * See https://iojs.org/api/events.html
- *
- * Note that under the object mode, an event of DATA will deliver a message
- * of 1) JSON compliant JS object, including arrays; or 2) an ArrayBuffer.
- *
- * Ordering: messages will be delivered to callbacks in their registration
- * order. There is no ordering between on() and once() callbacks.
- *
- * Exceptions from callbacks will be caught and ignored.
- *
- * @param {string} eventType The event type
- * @param {function(!Object=)} callback The call back to handle the event with
- * an optional input object
- * @return {goog.net.streams.NodeReadableStream} this object
- */
- goog.net.streams.NodeReadableStream.prototype.on = goog.abstractMethod;
- /**
- * Register a callback to handle I/O events. This is an alias to on().
- *
- * @param {string} eventType The event type
- * @param {function(!Object=)} callback The call back to handle the event with
- * an optional input object
- * @return {goog.net.streams.NodeReadableStream} this object
- */
- goog.net.streams.NodeReadableStream.prototype.addListener = goog.abstractMethod;
- /**
- * Unregister an existing callback, including one-time callbacks.
- *
- * @param {string} eventType The event type
- * @param {function(!Object=)} callback The call back to unregister
- * @return {goog.net.streams.NodeReadableStream} this object
- */
- goog.net.streams.NodeReadableStream.prototype.removeListener =
- goog.abstractMethod;
- /**
- * Register a one-time callback to handle I/O events.
- *
- * @param {string} eventType The event type
- * @param {function(!Object=)} callback The call back to handle the event with
- * an optional input object
- * @return {goog.net.streams.NodeReadableStream} this object
- */
- goog.net.streams.NodeReadableStream.prototype.once = goog.abstractMethod;
|