smalltalk
/
osmo-st-gsm
Archived
1
0
Fork 0

streams: Switch BSSAP to use streams.

This commit is contained in:
Holger Hans Peter Freyther 2012-03-25 21:50:02 +02:00
parent 7b43f3eed2
commit 8bdb0be6dc
3 changed files with 15 additions and 15 deletions

View File

@ -1,5 +1,5 @@
"
(C) 2010 by Holger Hans Peter Freyther
(C) 2010-2012 by Holger Hans Peter Freyther
All Rights Reserved
This program is free software: you can redistribute it and/or modify
@ -49,14 +49,14 @@ Object subclass: BSSAPHelper [
Object subclass: BSSAPMessage [
<category: 'OsmoGSM'>
BSSAPMessage class >> decode: bssap [
BSSAPMessage class >> decode: aStream [
| type |
type := bssap at: 1.
type := aStream next.
BSSAPMessage allSubclassesDo: [:each |
each msgType = type
ifTrue: [
^ each parseFrom: bssap.
^ each parseFrom: aStream.
]
].
@ -76,10 +76,10 @@ BSSAPMessage subclass: BSSAPManagement [
yourself.
]
BSSAPMessage class >> parseFrom: aByteArray [
BSSAPMessage class >> parseFrom: aStream [
| size data |
size := aByteArray at: 2.
data := aByteArray copyFrom: 3 to: 2 + size.
size := aStream next.
data := aStream next: size.
^ BSSAPManagement initWith: data.
]
@ -115,11 +115,11 @@ BSSAPMessage subclass: BSSAPDTAP [
yourself
]
BSSAPDTAP class >> parseFrom: aByteArray [
BSSAPDTAP class >> parseFrom: aStream [
| li size dat |
li := aByteArray at: 2.
size := aByteArray at: 3.
dat := aByteArray copyFrom: 4 to: 4 + size - 1.
li := aStream next.
size := aStream next.
dat := aStream next: size.
^ BSSAPDTAP initWith: dat linkIdentifier: li.
]

View File

@ -334,15 +334,15 @@ Object subclass: MSGParser [
sccp := Osmo.SCCPMessage decode: aByteArray.
(sccp respondsTo: #data)
ifTrue: [
sccp data: (self decodeBSSAP: sccp data).
sccp data: (self decodeBSSAP: sccp data readStream).
].
^ sccp
]
MSGParser class >> decodeBSSAP: aData [
MSGParser class >> decodeBSSAP: aStream [
| bssap |
bssap := BSSAPMessage decode: aData.
bssap := BSSAPMessage decode: aStream.
bssap class msgType = BSSAPDTAP msgType
ifTrue: [
bssap data: (GSM48MSG decode: bssap data)

View File

@ -144,7 +144,7 @@ TestCase subclass: BSSAPTest [
testParseManagement [
| man |
man := BSSAPMessage decode: #(0 3 1 2 3) asByteArray.
man := BSSAPMessage decode: #(0 3 1 2 3) asByteArray readStream.
self assert: (man isKindOf: BSSAPManagement).
self assert: man data = #(1 2 3) asByteArray.
]