NPExtStr.st
author claus
Mon, 20 Dec 1993 18:32:29 +0100
changeset 27 d98f9dd437f7
parent 10 4f1f9a91e406
child 44 b262907c93ea
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
10
claus
parents: 5
diff changeset
     3
              All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
a27a279701f8 Initial revision
claus
parents:
diff changeset
    13
ExternalStream subclass:#NonPositionableExternalStream
a27a279701f8 Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'typeIfStandard'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    17
       category:'Streams-External'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    18
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
NonPositionableExternalStream comment:'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    21
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
    22
COPYRIGHT (c) 1989 by Claus Gittinger
10
claus
parents: 5
diff changeset
    23
              All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    24
a27a279701f8 Initial revision
claus
parents:
diff changeset
    25
this one stands all non-positionable external streams; there are
a27a279701f8 Initial revision
claus
parents:
diff changeset
    26
terminal streams, pipe streams etc.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    27
10
claus
parents: 5
diff changeset
    28
$Header: /cvs/stx/stx/libbasic/Attic/NPExtStr.st,v 1.5 1993-11-08 02:31:05 claus Exp $
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    29
'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    30
a27a279701f8 Initial revision
claus
parents:
diff changeset
    31
%{
a27a279701f8 Initial revision
claus
parents:
diff changeset
    32
#include <stdio.h>
a27a279701f8 Initial revision
claus
parents:
diff changeset
    33
%}
a27a279701f8 Initial revision
claus
parents:
diff changeset
    34
a27a279701f8 Initial revision
claus
parents:
diff changeset
    35
!NonPositionableExternalStream class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    36
a27a279701f8 Initial revision
claus
parents:
diff changeset
    37
forStdin
a27a279701f8 Initial revision
claus
parents:
diff changeset
    38
    ^ self basicNew initializeForStdin
a27a279701f8 Initial revision
claus
parents:
diff changeset
    39
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    40
a27a279701f8 Initial revision
claus
parents:
diff changeset
    41
forStdout
a27a279701f8 Initial revision
claus
parents:
diff changeset
    42
    ^ self basicNew initializeForStdout
a27a279701f8 Initial revision
claus
parents:
diff changeset
    43
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    44
a27a279701f8 Initial revision
claus
parents:
diff changeset
    45
forStderr
a27a279701f8 Initial revision
claus
parents:
diff changeset
    46
    ^ self basicNew initializeForStderr
a27a279701f8 Initial revision
claus
parents:
diff changeset
    47
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    48
a27a279701f8 Initial revision
claus
parents:
diff changeset
    49
!NonPositionableExternalStream methodsFor:'private'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    50
a27a279701f8 Initial revision
claus
parents:
diff changeset
    51
initializeForStdin
a27a279701f8 Initial revision
claus
parents:
diff changeset
    52
    mode := #readonly.
10
claus
parents: 5
diff changeset
    53
    buffered := true.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    54
    typeIfStandard := #Stdin.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    55
%{
a27a279701f8 Initial revision
claus
parents:
diff changeset
    56
    _INST(filePointer) = MKOBJ(stdin);
a27a279701f8 Initial revision
claus
parents:
diff changeset
    57
%}
a27a279701f8 Initial revision
claus
parents:
diff changeset
    58
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    59
a27a279701f8 Initial revision
claus
parents:
diff changeset
    60
initializeForStdout
a27a279701f8 Initial revision
claus
parents:
diff changeset
    61
    mode := #readwrite.
10
claus
parents: 5
diff changeset
    62
    buffered := false.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    63
    typeIfStandard := #Stdout.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    64
%{
a27a279701f8 Initial revision
claus
parents:
diff changeset
    65
    _INST(filePointer) = MKOBJ(stdout);
a27a279701f8 Initial revision
claus
parents:
diff changeset
    66
%}
a27a279701f8 Initial revision
claus
parents:
diff changeset
    67
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    68
a27a279701f8 Initial revision
claus
parents:
diff changeset
    69
initializeForStderr
a27a279701f8 Initial revision
claus
parents:
diff changeset
    70
    mode := #readwrite.
10
claus
parents: 5
diff changeset
    71
    buffered := false.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    72
    typeIfStandard := #Stderr.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    73
%{
a27a279701f8 Initial revision
claus
parents:
diff changeset
    74
    _INST(filePointer) = MKOBJ(stderr);
a27a279701f8 Initial revision
claus
parents:
diff changeset
    75
%}
a27a279701f8 Initial revision
claus
parents:
diff changeset
    76
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    77
a27a279701f8 Initial revision
claus
parents:
diff changeset
    78
reOpen
a27a279701f8 Initial revision
claus
parents:
diff changeset
    79
    "if I am one of the standard streams, reopen is easy"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    80
a27a279701f8 Initial revision
claus
parents:
diff changeset
    81
    (typeIfStandard == #Stdin) ifTrue:[
10
claus
parents: 5
diff changeset
    82
        ^ self initializeForStdin
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    83
    ].
a27a279701f8 Initial revision
claus
parents:
diff changeset
    84
    (typeIfStandard == #Stdout) ifTrue:[
10
claus
parents: 5
diff changeset
    85
        ^ self initializeForStdout
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    86
    ].
a27a279701f8 Initial revision
claus
parents:
diff changeset
    87
    (typeIfStandard == #Stderr) ifTrue:[
10
claus
parents: 5
diff changeset
    88
        ^ self initializeForStderr
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    89
    ].
a27a279701f8 Initial revision
claus
parents:
diff changeset
    90
    ^ super reOpen
a27a279701f8 Initial revision
claus
parents:
diff changeset
    91
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    92
10
claus
parents: 5
diff changeset
    93
!NonPositionableExternalStream methodsFor:'redefind basic'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    94
10
claus
parents: 5
diff changeset
    95
size
claus
parents: 5
diff changeset
    96
    "report an error that this stream has no concept of size"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    97
10
claus
parents: 5
diff changeset
    98
    self shouldNotImplement
claus
parents: 5
diff changeset
    99
!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   100
a27a279701f8 Initial revision
claus
parents:
diff changeset
   101
position
10
claus
parents: 5
diff changeset
   102
    "report an error that this stream has no concept of position"
claus
parents: 5
diff changeset
   103
claus
parents: 5
diff changeset
   104
    self shouldNotImplement
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   105
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   106
a27a279701f8 Initial revision
claus
parents:
diff changeset
   107
position:anInteger
10
claus
parents: 5
diff changeset
   108
    "report an error that this stream has no concept of position"
claus
parents: 5
diff changeset
   109
claus
parents: 5
diff changeset
   110
    self shouldNotImplement
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   111
! !