[Pharo-project] peek and friends
hi Igor finally should I integrate http://bugs.squeak.org/view.php?id=7446 ? I was waiting because you said you were confused Stef
On 29 January 2010 23:09, stephane ducasse <stephane.ducasse@free.fr> wrote:
hi Igor
finally should I integrate     http://bugs.squeak.org/view.php?id=7446 ? I was waiting because you said you were confused
Yes, integrate that, since it deals with issue that #peek should answer the same byte as following #next. We turned discussion into other issues, not related to this _bug_ (but related to #peek behavior), concerning what will happen if timeout appear. Here the last version(s) of both peek and next which taking care about it: !SocketStream methodsFor: 'stream in' stamp: 'Igor.Stasenko 1/15/2010 02:02'! next "Return next byte, if inBuffer is empty we recieve some more data and try again." [self isDataAvailable] whileFalse: [ self receiveData. self atEnd ifTrue: [ ^ nil ]]. ^inBuffer at: (lastRead := lastRead + 1) ! ! !SocketStream methodsFor: 'stream in' stamp: 'Igor.Stasenko 1/15/2010 01:33'! peek "Return next byte, if inBuffer is empty we recieve some more data and try again. Do not consume the byte." [self isDataAvailable] whileFalse: [ self receiveData. self atEnd ifTrue: [ ^ nil ]]. ^inBuffer at: lastRead +1! ! As you can see, the only difference between peek and next is that one advancing the buffer pointer, while other not.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
thanks! On Jan 30, 2010, at 9:23 AM, Igor Stasenko wrote:
On 29 January 2010 23:09, stephane ducasse <stephane.ducasse@free.fr> wrote:
hi Igor
finally should I integrate http://bugs.squeak.org/view.php?id=7446 ? I was waiting because you said you were confused
Yes, integrate that, since it deals with issue that #peek should answer the same byte as following #next.
We turned discussion into other issues, not related to this _bug_ (but related to #peek behavior), concerning what will happen if timeout appear. Here the last version(s) of both peek and next which taking care about it:
!SocketStream methodsFor: 'stream in' stamp: 'Igor.Stasenko 1/15/2010 02:02'! next "Return next byte, if inBuffer is empty we recieve some more data and try again."
[self isDataAvailable] whileFalse: [ self receiveData. self atEnd ifTrue: [ ^ nil ]].
^inBuffer at: (lastRead := lastRead + 1) ! !
!SocketStream methodsFor: 'stream in' stamp: 'Igor.Stasenko 1/15/2010 01:33'! peek "Return next byte, if inBuffer is empty we recieve some more data and try again. Do not consume the byte."
[self isDataAvailable] whileFalse: [ self receiveData. self atEnd ifTrue: [ ^ nil ]].
^inBuffer at: lastRead +1! !
As you can see, the only difference between peek and next is that one advancing the buffer pointer, while other not.
Stef
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Best regards, Igor Stasenko AKA sig.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (3)
-
Igor Stasenko -
stephane ducasse -
Stéphane Ducasse