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