78 lines
1.9 KiB
Smalltalk
78 lines
1.9 KiB
Smalltalk
"
|
|
(C) 2011 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: SIPParam [
|
|
| data |
|
|
|
|
asFoldedString [
|
|
<category: 'compat'>
|
|
^ data
|
|
]
|
|
|
|
nextPutAllOn: astream [
|
|
^ data nextPutAllOn: astream
|
|
]
|
|
]
|
|
|
|
SIPParam subclass: SIPVia [
|
|
| branch |
|
|
|
|
SIPVia class >> findBranch: aData [
|
|
<category: 'creation'>
|
|
aData do: [:each |
|
|
each first = 'branch' ifTrue: [^each third]].
|
|
|
|
^ nil.
|
|
]
|
|
|
|
SIPVia class >> parseFrom: aParseDict [
|
|
<category: 'creation'>
|
|
^ self new
|
|
instVarNamed: #data put: aParseDict asFoldedString;
|
|
instVarNamed: #branch put: (self findBranch: (aParseDict at: 8) first);
|
|
yourself
|
|
]
|
|
|
|
branch [
|
|
^ branch
|
|
]
|
|
]
|
|
|
|
SIPParam subclass: SIPCSeq [
|
|
| number method |
|
|
|
|
SIPCSeq class >> parseFrom: aParseDict [
|
|
<category: 'creation'>
|
|
^ self new
|
|
instVarNamed: #data put: aParseDict asFoldedString;
|
|
instVarNamed: #number put: aParseDict first asInteger;
|
|
instVarNamed: #method put: aParseDict third;
|
|
yourself
|
|
]
|
|
|
|
number [
|
|
<category: 'accessing'>
|
|
^ number
|
|
]
|
|
|
|
method [
|
|
<category: 'accessing'>
|
|
^ method
|
|
]
|
|
]
|