commit 38bca78f5b96d4ea1f6a69d58f788e8fabe0a442 Author: Holger Hans Peter Freyther Date: Thu Apr 24 20:25:36 2014 +0200 Begin with OsmoSMPP a small SMPP codec library for Smalltalk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..45d62d8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.sw? diff --git a/codec/SMPPPDUHeader.st b/codec/SMPPPDUHeader.st new file mode 100644 index 0000000..39089b1 --- /dev/null +++ b/codec/SMPPPDUHeader.st @@ -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 . +" + +Object subclass: SMPPPDUHeader [ + | commandId commandStatus sequenceNumber | + + + + 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 [ + + ^commandId + ] + + commandStatus [ + + ^commandStatus + ] + + sequenceNumber [ + + ^sequenceNumber + ] + + commandId: anId [ + commandId := anId + ] + + commandStatus: aStatus [ + commandStatus := aStatus + ] + + sequenceNumber: aNumber [ + sequenceNumber := aNumber + ] +] diff --git a/package.xml b/package.xml new file mode 100644 index 0000000..771a444 --- /dev/null +++ b/package.xml @@ -0,0 +1,12 @@ + + OsmoSMPP + Osmo + OsmoNetwork + + codec/SMPPPDUHeader.st + + + Osmo.SMPPPDUHeaderTest + test/SMPPPDUHeaderTest.st + + diff --git a/test/SMPPPDUHeaderTest.st b/test/SMPPPDUHeaderTest.st new file mode 100644 index 0000000..5938c08 --- /dev/null +++ b/test/SMPPPDUHeaderTest.st @@ -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 . +" + +TestCase subclass: SMPPPDUHeaderTest [ + + + + 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. + ] +]