- From: Aymeric Vitte <vitteaymeric@gmail.com>
- Date: Tue, 12 Nov 2013 09:20:14 +0100
- To: Takeshi Yoshino <tyoshino@google.com>
- CC: "Web Applications Working Group WG (public-webapps@w3.org)" <public-webapps@w3.org>
- Message-ID: <5281E4BE.3060508@gmail.com>
Takeshi, See discussion here too: https://github.com/whatwg/streams/issues/33 The problem with stop again is that I need to handle myself the clone operations, the advantage of stop-eof is: - clone the operation - close it - restart from the clone And as I mentioned before this would work for any operation that has unresolved bytes (TextDecoder, etc) without the need of modifying the operation API for explicit clones or options. Regards Aymeric Le 08/11/2013 14:31, Takeshi Yoshino a e'crit : > On Fri, Nov 8, 2013 at 8:54 PM, Aymeric Vitte <vitteaymeric@gmail.com > <mailto:vitteaymeric@gmail.com>> wrote: > > I would expect "Poc" (stop, keep 0xd1 for the next data) and "ΣΙΡ" > > It can be seen a bit different indeed, while with crypto you > expect the finalization of the operation since the begining (but > only by computing the latest bytes), here you can not expect the > string since the begining of course. > > It just depends how the "Operation" (here TextDecoder) handles > stop but I find it very similar, TextEncoder closes the operation > with the bytes it has and "clone" its state (ie do nothing here > except clearing resolved bytes and keeping unresolved ones for > data to come). > > > I'd say more generally that stop() is kinda in-band control signal > that is inserted between elements of the stream and distinguishable > from the elements. As you said, interpretation of the stop() symbol > depends on what the destination is. > > One thing I'm still not sure is that I think you can just add stop() > equivalent method to the destination, and > - pipe() data until the point you were calling stop() > - call the stop() equivalent on e.g. hash > - restart pipe() > > At least our spec allows for this. Of course, it's convenient that > Stream can carry such a signal. But there's trade-off between the > convenience and API size. Similar to decision whether we include > abort() to WritableByteStream or not. > > Extremely, abort(), close() and stop() can be merged into one method > (unless abort() method has a functionality to abandon already written > data). They're all signal inserting methods. > > close() -> signal(FIN) > stop(info) -> signal(CONTROL, info) > abort(error) -> signal(ABORT, error) > > and the signal is packed and inserted into the stream's internal buffer. -- Peersm : http://www.peersm.com node-Tor : https://www.github.com/Ayms/node-Tor GitHub : https://www.github.com/Ayms
Received on Tuesday, 12 November 2013 08:20:49 UTC