terminals/Xtreams__PointerReadStream.st
changeset 98 bd334e72464f
parent 96 85e395d8e3d7
child 100 bd080ca99f68
equal deleted inserted replaced
97:2a7827f4dce2 98:bd334e72464f
    41 	position := position + 1.
    41 	position := position + 1.
    42 	^object
    42 	^object
    43 !
    43 !
    44 
    44 
    45 read: anInteger into: aSequenceableCollection at: startIndex
    45 read: anInteger into: aSequenceableCollection at: startIndex
    46 	
    46         
    47 	| count |
    47         | count available |
    48 	count := self available ifNil: [ anInteger ] ifNotNil: [ :available | available min: anInteger ].
    48         count := (available := self available) isNil ifTrue: [ anInteger ] ifFalse: [ available min: anInteger ].
    49 	source type referentType = UnsignedChar
    49         self breakPoint: #jv.
    50 		ifTrue: [ source copyAt: position to: aSequenceableCollection size: anInteger startingAt: startIndex. ]
    50         self breakPoint: #mk.
    51 		ifFalse: [ startIndex to: startIndex + count - 1 do: [ :i | aSequenceableCollection at: i put: self get ] ].
    51         "There is no UnsignedChar here..."
    52 	position := position + count.
    52         source type referentType = UnsignedChar
    53 	^count < anInteger
    53                 ifTrue: [ source copyAt: position to: aSequenceableCollection size: anInteger startingAt: startIndex. ]
    54 		ifTrue: [ (Incomplete on: aSequenceableCollection count: count at: startIndex) raise ]
    54                 ifFalse: [ startIndex to: startIndex + count - 1 do: [ :i | aSequenceableCollection at: i put: self get ] ].
    55 		ifFalse: [ count ]
    55         position := position + count.
       
    56         ^count < anInteger
       
    57                 ifTrue: [ (Incomplete on: aSequenceableCollection count: count at: startIndex) raise ]
       
    58                 ifFalse: [ count ]
       
    59 
       
    60     "Modified: / 01-02-2012 / 00:37:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    56 ! !
    61 ! !
    57 
    62 
    58 !PointerReadStream methodsFor:'initialize-release'!
    63 !PointerReadStream methodsFor:'initialize-release'!
    59 
    64 
    60 close
    65 close