"{ Package: 'stx:libbasic2' }"
Stream subclass:#LoggingStream
instanceVariableNames:'loggedStream logger'
classVariableNames:''
poolDictionaries:''
category:'Streams-Misc'
!
!LoggingStream class methodsFor:'documentation'!
documentation
"
useful for debugging - stream operations are logged on logger
unfinished - may need more protocol to be intercepted.
[author:]
cg
[instance variables:]
[class variables:]
[see also:]
"
! !
!LoggingStream class methodsFor:'instance creation'!
on:aStream logger:aLogger
"Create & return a new instance for arg."
^ self basicNew initializeOn:aStream logger:aLogger
! !
!LoggingStream methodsFor:'accessing'!
loggedStream
^ loggedStream
!
loggedStream:something
loggedStream := something.
!
logger
^ logger
!
logger:something
logger := something.
! !
!LoggingStream methodsFor:'initialization'!
initializeOn:aStream logger:aLogger
loggedStream := aStream.
logger := aLogger.
! !
!LoggingStream methodsFor:'stream protocol'!
next
|el|
el := loggedStream next.
logger nextPutAll:'<<< '; nextPutLine:el storeString.
^ el
!
next:n
|els|
els := loggedStream next:n.
logger nextPutAll:'<<< '; nextPutLine:els storeString.
^ els
!
nextPut:something
logger nextPutAll:'>>> '; nextPutLine:something storeString.
loggedStream nextPut:something.
!
nextPutAll:aCollection
logger nextPutAll:'>>> '; nextPutLine:aCollection storeString.
loggedStream nextPutAll:aCollection.
!
upToEnd
|els|
els := loggedStream upToEnd.
logger nextPutAll:'<<< '; nextPutLine:els storeString.
^ els
! !
!LoggingStream class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libbasic2/LoggingStream.st,v 1.2 2013-03-19 19:53:54 cg Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/libbasic2/LoggingStream.st,v 1.2 2013-03-19 19:53:54 cg Exp $'
! !