Begin with OsmoSMPP a small SMPP codec library for Smalltalk
This commit is contained in:
commit
38bca78f5b
|
@ -0,0 +1 @@
|
||||||
|
*.sw?
|
|
@ -0,0 +1,60 @@
|
||||||
|
"
|
||||||
|
(C) 2014 by Holger Hans Peter Freyther
|
||||||
|
All Rights Reserved
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation, either version 3 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
"
|
||||||
|
|
||||||
|
Object subclass: SMPPPDUHeader [
|
||||||
|
| commandId commandStatus sequenceNumber |
|
||||||
|
<category: 'OsmoSMPP-Codec'>
|
||||||
|
<comment: 'I represent a SMPPv3.4 SMPP PDU Header. E.g.
|
||||||
|
3.2 of the SMPPv3.4 specification. The four byte lengths
|
||||||
|
need to be written/read by someone else.'>
|
||||||
|
|
||||||
|
SMPPPDUHeader class >> readFrom: aStream [
|
||||||
|
^self new
|
||||||
|
commandId: ((aStream next: 4) uintAt: 1) swap32;
|
||||||
|
commandStatus: ((aStream next: 4) uintAt: 1) swap32;
|
||||||
|
sequenceNumber: ((aStream next: 4) uintAt: 1) swap32;
|
||||||
|
yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
commandId [
|
||||||
|
<category: 'accessing'>
|
||||||
|
^commandId
|
||||||
|
]
|
||||||
|
|
||||||
|
commandStatus [
|
||||||
|
<category: 'accessing'>
|
||||||
|
^commandStatus
|
||||||
|
]
|
||||||
|
|
||||||
|
sequenceNumber [
|
||||||
|
<category: 'accessing'>
|
||||||
|
^sequenceNumber
|
||||||
|
]
|
||||||
|
|
||||||
|
commandId: anId [
|
||||||
|
commandId := anId
|
||||||
|
]
|
||||||
|
|
||||||
|
commandStatus: aStatus [
|
||||||
|
commandStatus := aStatus
|
||||||
|
]
|
||||||
|
|
||||||
|
sequenceNumber: aNumber [
|
||||||
|
sequenceNumber := aNumber
|
||||||
|
]
|
||||||
|
]
|
|
@ -0,0 +1,12 @@
|
||||||
|
<package>
|
||||||
|
<name>OsmoSMPP</name>
|
||||||
|
<namespace>Osmo</namespace>
|
||||||
|
<prereq>OsmoNetwork</prereq>
|
||||||
|
|
||||||
|
<filein>codec/SMPPPDUHeader.st</filein>
|
||||||
|
|
||||||
|
<test>
|
||||||
|
<sunit>Osmo.SMPPPDUHeaderTest</sunit>
|
||||||
|
<filein>test/SMPPPDUHeaderTest.st</filein>
|
||||||
|
</test>
|
||||||
|
</package>
|
|
@ -0,0 +1,30 @@
|
||||||
|
"
|
||||||
|
(C) 2014 by Holger Hans Peter Freyther
|
||||||
|
All Rights Reserved
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation, either version 3 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
"
|
||||||
|
|
||||||
|
TestCase subclass: SMPPPDUHeaderTest [
|
||||||
|
<category: 'OsmoSMPP-Test'>
|
||||||
|
<comment: 'I test reading and writing most of the SMPP header.'>
|
||||||
|
|
||||||
|
testParse [
|
||||||
|
| hdr |
|
||||||
|
hdr := SMPPPDUHeader readFrom: #[0 0 0 2 0 0 0 0 0 0 0 1] readStream.
|
||||||
|
self assert: hdr commandId equals: 2.
|
||||||
|
self assert: hdr commandStatus equals: 0.
|
||||||
|
self assert: hdr sequenceNumber equals: 1.
|
||||||
|
]
|
||||||
|
]
|
Reference in New Issue