equal
deleted
inserted
replaced
12 |
12 |
13 'From Smalltalk/X, Version:3.1.9 on 31-aug-1997 at 8:08:34 pm' ! |
13 'From Smalltalk/X, Version:3.1.9 on 31-aug-1997 at 8:08:34 pm' ! |
14 |
14 |
15 PeekableStream subclass:#PositionableStream |
15 PeekableStream subclass:#PositionableStream |
16 instanceVariableNames:'collection position readLimit writeLimit' |
16 instanceVariableNames:'collection position readLimit writeLimit' |
17 classVariableNames:'ErrorDuringFileInSignal ChunkSeparator' |
17 classVariableNames:'InvalidPositionErrorSignal ErrorDuringFileInSignal ChunkSeparator' |
18 poolDictionaries:'' |
18 poolDictionaries:'' |
19 category:'Streams' |
19 category:'Streams' |
20 ! |
20 ! |
21 |
21 |
22 !PositionableStream class methodsFor:'documentation'! |
22 !PositionableStream class methodsFor:'documentation'! |
55 ErrorDuringFileInSignal isNil ifTrue:[ |
55 ErrorDuringFileInSignal isNil ifTrue:[ |
56 ErrorDuringFileInSignal := ErrorSignal newSignalMayProceed:true. |
56 ErrorDuringFileInSignal := ErrorSignal newSignalMayProceed:true. |
57 ErrorDuringFileInSignal nameClass:self message:#errorDuringFileInSignal. |
57 ErrorDuringFileInSignal nameClass:self message:#errorDuringFileInSignal. |
58 ErrorDuringFileInSignal notifierString:'error during fileIn'. |
58 ErrorDuringFileInSignal notifierString:'error during fileIn'. |
59 |
59 |
|
60 InvalidPositionErrorSignal := PositionErrorSignal newSignalMayProceed:true. |
|
61 InvalidPositionErrorSignal nameClass:self message:#invalidPositionErrorSignal. |
|
62 InvalidPositionErrorSignal notifierString:'invalid position'. |
|
63 |
60 ChunkSeparator := $!! |
64 ChunkSeparator := $!! |
61 ] |
65 ] |
|
66 ! ! |
|
67 |
|
68 !PositionableStream class methodsFor:'Signal constants'! |
|
69 |
|
70 invalidPositionErrorSignal |
|
71 "return the signal raised if positioning is attempted to an |
|
72 invalid position (i.e. before the begin of the stream or after |
|
73 the end)" |
|
74 |
|
75 ^ InvalidPositionErrorSignal |
62 ! ! |
76 ! ! |
63 |
77 |
64 !PositionableStream class methodsFor:'instance creation'! |
78 !PositionableStream class methodsFor:'instance creation'! |
65 |
79 |
66 on:aCollection |
80 on:aCollection |
670 ! |
684 ! |
671 |
685 |
672 positionError |
686 positionError |
673 "{ Pragma: +optSpace }" |
687 "{ Pragma: +optSpace }" |
674 |
688 |
675 "report an error when positioning past the end" |
689 "report an error when positioning past the end |
676 |
690 or before the beginning." |
677 ^ self error:'cannot position past end of collection' |
691 |
|
692 ^ InvalidPositionErrorSignal raiseIn:thisContext sender |
678 ! |
693 ! |
679 |
694 |
680 with:aCollection |
695 with:aCollection |
681 "setup for streaming to the end of aCollection" |
696 "setup for streaming to the end of aCollection" |
682 |
697 |
707 ! ! |
722 ! ! |
708 |
723 |
709 !PositionableStream class methodsFor:'documentation'! |
724 !PositionableStream class methodsFor:'documentation'! |
710 |
725 |
711 version |
726 version |
712 ^ '$Header: /cvs/stx/stx/libbasic/Attic/PosStream.st,v 1.57 1997-09-02 17:40:11 cg Exp $' |
727 ^ '$Header: /cvs/stx/stx/libbasic/Attic/PosStream.st,v 1.58 1997-09-22 19:05:41 cg Exp $' |
713 ! ! |
728 ! ! |
714 PositionableStream initialize! |
729 PositionableStream initialize! |