FilteringStream.st
author Claus Gittinger <cg@exept.de>
Fri, 10 Jan 1997 21:51:24 +0100
changeset 472 33f423823933
parent 401 f97488701314
child 474 61cb199537b5
permissions -rw-r--r--
commentary & doc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     1
"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     2
 COPYRIGHT (c) 1996 by Claus Gittinger
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     3
              All Rights Reserved
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     4
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     5
 This software is furnished under a license and may be used
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     6
 only in accordance with the terms of that license and with the
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     8
 be provided or otherwise made available to, or used by, any
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
     9
 other person.  No title to or ownership of the software is
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    10
 hereby transferred.
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    11
"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    12
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    13
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
Stream subclass:#FilteringStream
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	instanceVariableNames:'inputStream outputStream filter unbound'
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'Streams'
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    21
!FilteringStream class methodsFor:'documentation'!
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    22
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    23
copyright
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    24
"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    25
 COPYRIGHT (c) 1996 by Claus Gittinger
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    26
              All Rights Reserved
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    27
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    28
 This software is furnished under a license and may be used
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    29
 only in accordance with the terms of that license and with the
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    31
 be provided or otherwise made available to, or used by, any
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    32
 other person.  No title to or ownership of the software is
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    33
 hereby transferred.
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    34
"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    35
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    36
!
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    37
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    38
documentation
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    39
"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    40
    A FilteringStream can be connected to some input
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    41
    (from which elements are read via the ReadStream protocol),
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    42
    and/or to some output (to which elements are written via
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    43
    the WriteStream protocol.
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    44
    The FilteringStream itself performs some filtering/processing
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    45
    on the elements as they arrive.
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    46
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    47
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    48
    [instance variables:]
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    49
        inputStream     <Stream>  the stream from which elements are read
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    50
        outputStream    <Stream>  the stream to which elements are written
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    51
        filter          <Block>   the filter block;
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    52
        unbound         <Boolean> if true, the stream is unbound.
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    53
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    54
    [author:]
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    55
        Claus Gittinger
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    56
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    57
    [See also:]
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    58
        ReadStream WriteStream
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    59
"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    60
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    61
!
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
examples
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
  filter random numbers:
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    66
                                                                [exBegin]
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    |in filter|
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    in := Random new.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    filter := FilteringLineStream basicNew.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    filter inputStream:in.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    filter filter:[:num | ((num >= 0.5) and:[num <= 0.6]) ifTrue:[num] ifFalse:[nil]].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    20 timesRepeat:[
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
        Transcript showCR:(filter next printString).
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    ]
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    78
                                                                [exEnd]
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
  filtering prime numbers:
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
    81
                                                                [exBegin]
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    |num generator primeFilter addFilter|
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    num := 1.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    generator := Plug new.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    generator respondTo:#next
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
                   with:[num := num + 1. num].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    generator respondTo:#atEnd
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
                   with:[false].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    addFilter := [:prime | |newFilter|
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
        newFilter := FilteringLineStream basicNew.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
        newFilter filter:[:num | (num \\ prime) == 0 ifTrue:[
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
                                    nil
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
                                 ] ifFalse:[
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
                                    num
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
                                 ]
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
                         ].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
        newFilter inputStream:primeFilter.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
        primeFilter := newFilter
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    ].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    addFilter value:2.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    primeFilter inputStream:generator.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   106
    10000 timesRepeat:[
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
        |nextPrime|
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
        nextPrime := primeFilter next.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
        addFilter value:nextPrime.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
        Transcript showCR:nextPrime.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    ]
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   113
                                                                [exEnd]
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
! !
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
!FilteringStream methodsFor:'access - pull-reading'!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
filterUpToEnd
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    "pull input from inputStream up to the end,
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
     push it filtered into the outputStream"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    [inputStream atEnd] whileFalse:[
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
        self nextPut:(inputStream next)
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    ].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    "Modified: 2.7.1996 / 21:02:49 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
next
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    "pull input from inputStream and
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
     push it filtered into the outputStream"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    |input output|
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    [inputStream atEnd] whileFalse:[
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   141
        "/ get an element
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
        input := inputStream next.
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   143
        "/ filter it - this may return nil, to eat it
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
        output := filter value:input.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
        output notNil ifTrue:[
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   146
            "/ good - output it
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
            ^ output.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
        ].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    ].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    ^ nil
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    "Created: 2.7.1996 / 21:09:58 / cg"
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   153
    "Modified: 10.1.1997 / 20:23:36 / cg"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
! !
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
!FilteringStream methodsFor:'access - push-writing'!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
nextPut:something
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    "push something through the filter"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    |output|
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   163
    "/ filter it
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    output := filter value:something.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    output notNil ifTrue:[
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
        outputStream nextPut:output
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    ]
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    "Created: 2.7.1996 / 21:07:58 / cg"
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   170
    "Modified: 10.1.1997 / 20:23:56 / cg"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
! !
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
!FilteringStream methodsFor:'accessing'!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
filter
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
    "return the filter"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    ^ filter
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    "Modified: 2.7.1996 / 21:03:36 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
filter:something
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    "set the filter"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    filter := something.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    "Modified: 2.7.1996 / 21:03:40 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
inputStream
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    "return the inputStream"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    ^ inputStream
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    "Modified: 2.7.1996 / 21:03:43 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
inputStream:something
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    "set the inputStream"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    inputStream := something.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    "Modified: 2.7.1996 / 21:03:46 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
outputStream
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    "return the outputStream"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    ^ outputStream
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    "Modified: 2.7.1996 / 21:03:49 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
outputStream:something
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    "set the outputStream"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    outputStream := something.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    "Modified: 2.7.1996 / 21:03:52 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    "Created: 2.7.1996 / 21:06:42 / cg"
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
unbound
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   230
    "return the unbound flag"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    ^ unbound
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
    "Created: 2.7.1996 / 21:25:40 / cg"
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   235
    "Modified: 10.1.1997 / 20:21:53 / cg"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
unbound:something
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   239
    "set the unbound flag"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    unbound := something.
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    "Created: 2.7.1996 / 21:25:40 / cg"
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   244
    "Modified: 10.1.1997 / 20:21:59 / cg"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
! !
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
!FilteringStream methodsFor:'queries'!
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
atEnd
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   250
    "return true, if the receiver stream is at the end"
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   251
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    unbound ifTrue:[^ false].
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    ^ inputStream atEnd
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    "Created: 2.7.1996 / 21:19:51 / cg"
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   256
    "Modified: 10.1.1997 / 20:22:20 / cg"
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
! !
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   259
!FilteringStream class methodsFor:'documentation'!
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
version
472
33f423823933 commentary & doc
Claus Gittinger <cg@exept.de>
parents: 401
diff changeset
   262
    ^ '$Header: /cvs/stx/stx/libbasic2/FilteringStream.st,v 1.2 1997-01-10 20:51:24 cg Exp $'
401
f97488701314 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
! !