aboutsummaryrefslogtreecommitdiffstats
path: root/Messages.st
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-03-25 18:28:29 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-03-25 18:38:52 +0200
commit73f8b9a05cc3d40169877f450b943db340cf7653 (patch)
tree53edf233f2d273698045292a614eddf22d0ae27f /Messages.st
parent59741ad281bd17fad2c6deba9c7238a50f1ad30e (diff)
streams: Take streams in IEMessage class>>#findIE:from:on:
Diffstat (limited to 'Messages.st')
-rw-r--r--Messages.st9
1 files changed, 4 insertions, 5 deletions
diff --git a/Messages.st b/Messages.st
index 1124f77..a85d940 100644
--- a/Messages.st
+++ b/Messages.st
@@ -49,17 +49,16 @@ Object subclass: IEMessage [
yourself
]
- IEMessage class >> findIE: data from: aIEBase on: aMsg [
+ IEMessage class >> findIE: stream from: aIEBase on: aMsg [
"TODO: This needs to move some basic dispatch class"
"Find the IE that handles the type specified"
| type |
- type := data at: 1.
+ type := stream next.
aIEBase allSubclassesDo: [:each |
each elementId = type
ifTrue: [
- | enc size stream |
- stream := (data copyFrom: 2) readStream.
+ | enc size |
size := each length: stream.
aMsg addIe: (each parseFrom: stream).
^ 1 + size
@@ -76,7 +75,7 @@ Object subclass: IEMessage [
dat := aByteArray copyFrom: 2.
[dat isEmpty not] whileTrue: [
| consumed |
- consumed := self findIE: dat from: aIEBase on: msg.
+ consumed := self findIE: dat readStream from: aIEBase on: msg.
dat := dat copyFrom: consumed + 1.
].