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

gsm48: Use the gsmName pragma to set the default variable name

This is killing most of the increase in linesize when switching
to the TLVDescription. There will be some follow up cleanups.
This commit is contained in:
Holger Hans Peter Freyther 2012-08-24 14:17:20 +02:00
parent 7daf9816a6
commit 202fcda0d5
1 changed files with 59 additions and 246 deletions

305
GSM48.st
View File

@ -54,6 +54,13 @@ IEBase subclass: GSM48IE [
<category: 'gsm-pragma'>
^ gsmElementId
]
GSM48IE class >> asTLVDescription [
<category: 'parsing'>
^ Osmo.TLVDescription new
tag: gsmElementId; parseClass: self;
instVarName: gsmName; yourself
]
]
GSM48IE subclass: GSM48SimpleTag [
@ -75,9 +82,7 @@ GSM48IE subclass: GSM48SimpleTag [
GSM48SimpleTag class >> asTLVDescription [
<category: 'parsing'>
^ Osmo.TLVDescription new
parseClass: self; beTagOnly; valueSize: 0;
yourself
^ super asTLVDescription beTagOnly; valueSize: 0; yourself
]
value: aValue [
@ -109,10 +114,9 @@ GSM48IE subclass: GSM48DataHolder [
GSM48DataHolder class >> asTLVDescription [
<category: 'parsing'>
^ Osmo.TLVDescription new
parseClass: self; beTLV;
^ super asTLVDescription
beTLV;
minSize: self validSizes first maxSize: self validSizes last;
instVarName: gsmName;
yourself
]
@ -191,9 +195,8 @@ GSM48IE subclass: GSM48SimpleData [
GSM48SimpleData class >> asTLVDescription [
<category: 'parsing'>
^ Osmo.TLVDescription new
valueSize: self length; beTV;
instVarName: gsmName; parseClass: self; yourself
^ super asTLVDescription
valueSize: self length; beTV; yourself
]
GSM48SimpleData class >> initWithData: aData [
@ -339,11 +342,7 @@ GSM48SimpleData subclass: GSM48KeySeqLuType [
<category: 'OsmoGSM'>
<comment: 'This byte is shared for two things'>
GSM48KeySeqLuType class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #luType; yourself.
]
<gsmName: 'luType'>
GSM48KeySeqLuType class >> createDefault [
<category: 'creation'>
@ -371,11 +370,11 @@ GSM48IE subclass: GSM48Lai [
| lai lac |
<category: 'OsmoGSM'>
<gsmName: 'lai'>
GSM48Lai class >> asTLVDescription [
<category: 'parsing'>
^ Osmo.TLVDescription new
parseClass: self; instVarName: #lai;
^ super asTLVDescription
valueSize: 5; beTV; yourself
]
@ -420,10 +419,11 @@ GSM48IE subclass: GSM48Classmark1 [
<category: 'OsmoGSM'>
<gsmName: 'cm1'>
GSM48Classmark1 class >> asTLVDescription [
<category: 'parsing'>
^ Osmo.TLVDescription new
parseClass: self; instVarName: #cm1;
^ super asTLVDescription
valueSize: 1; beTV; yourself
]
@ -458,11 +458,7 @@ GSM48DataHolder subclass: GSM48Classmark2 [
<category: 'OsmoGSM'>
<comment: 'I am CM2 of 10.5.1.6'>
GSM48Classmark2 class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #cm2; yourself
]
<gsmName: 'cm2'>
GSM48Classmark2 class >> createDefault [
^ self new
@ -483,6 +479,7 @@ GSM48IE subclass: GSM48MIdentity [
<category: 'OsmoGSM'>
<gsmElementId: 23>
<gsmName: 'mi'>
GSM48MIdentity class >> miIMSI [ <category: 'spec'> ^ 16r1 ]
GSM48MIdentity class >> miIMEI [ <category: 'spec'> ^ 16r2 ]
@ -497,8 +494,7 @@ GSM48IE subclass: GSM48MIdentity [
]
GSM48MIdentity class >> asTLVDescription [
^ Osmo.TLVDescription new
parseClass: self; instVarName: #mi;
^ super asTLVDescription
beTLV; yourself
]
@ -597,11 +593,7 @@ GSM48IE subclass: GSM48MIdentity [
GSM48SimpleData subclass: GSM48RejectCause [
<category: 'OsmoGSM'>
GSM48RejectCause class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #prio; yourself
]
<gsmName: 'prio'>
GSM48RejectCause class >> createDefault [
<category: 'creation'>
@ -627,11 +619,7 @@ GSM48SimpleData subclass: GSM48AuthRand [
<category: 'OsmoGSM'>
<comment: 'I represent the 10.5.3.1 Authentication parameter RAND'>
GSM48AuthRand class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #auth; yourself
]
<gsmName: 'auth'>
GSM48AuthRand class >> length [ ^ 16 ]
]
@ -640,11 +628,7 @@ GSM48SimpleData subclass: GSM48AuthSRES [
<category: 'OsmoGSM'>
<comment: 'I represent the 10.5.3.2 Auth. parameter SRES'>
GSM48AuthSRES class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #sres; yourself
]
<gsmName: 'sres'>
GSM48AuthSRES class >> length [ ^ 4 ]
]
@ -655,12 +639,7 @@ GSM48SimpleTag subclass: GSM48FollowOn [
<gsmIeMask: 16rFF>
<gsmElementId: 16rA1>
GSM48FollowOn class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #follow; yourself
]
<gsmName: 'follow'>
]
GSM48SimpleTag subclass: GSM48CTSPermission [
@ -669,13 +648,7 @@ GSM48SimpleTag subclass: GSM48CTSPermission [
<gsmIeMask: 16rFF>
<gsmElementId: 16rA2>
GSM48CTSPermission class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #cts; yourself
]
<gsmName: 'cts'>
]
GSM48SimpleData subclass: GSM48IdentityType [
@ -683,11 +656,7 @@ GSM48SimpleData subclass: GSM48IdentityType [
<comment: 'I represent the 10.5.3.4. Identity Type'>
"Ignore the spare values"
GSM48IdentityType class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #idType; yourself
]
<gsmName: 'idType'>
GSM48IdentityType class >> typeIMSI [ ^ 1 ]
GSM48IdentityType class >> typeIMEI [ ^ 2 ]
@ -709,26 +678,14 @@ GSM48SimpleTag subclass: GSMRepeatInd [
<category: 'OsmoGSM'>
<gsmElementId: 16rD0>
GSMRepeatInd class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #repeatInd; yourself
]
<gsmName: 'repeatInd'>
]
GSM48SimpleTag subclass: GSMPriorityLevel [
<category: 'OsmoGSM'>
<gsmElementId: 16r80>
GSMPriorityLevel class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #prio; yourself
]
<gsmName: 'prio'>
]
Object subclass: GSMBitField [
@ -977,17 +934,11 @@ GSM48DataHolder subclass: GSMBearerCap [
<comment: '10.5.4.5'>
<gsmElementId: 16r04>
GSMBearerCap class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #bearer; yourself
]
<gsmName: 'bearer'>
GSMBearerCap class >> validSizes [ ^ 1 to: 13 ]
"GSM 04.08 Table 10.5.102. Strings depend on other attributes"
]
GSM48DataHolder subclass: GSMFacility [
@ -995,12 +946,7 @@ GSM48DataHolder subclass: GSMFacility [
<comment: '10.5.4.15'>
<gsmElementId: 16r1C>
GSMFacility class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #facility; yourself
]
<gsmName: 'facility'>
GSMFacility class >> validSizes [ ^ 1 to: 254 ]
]
@ -1010,6 +956,7 @@ GSM48DataHolder subclass: GSMProgress [
<comment: '10.5.4.21 Progress indicator'>
<gsmElementId: 16r1E>
<gsmName: 'progress'>
GSMProgress class [
codingStandardMask [ <category: 'Coding standard'> ^ 2r11 ]
@ -1032,12 +979,6 @@ GSM48DataHolder subclass: GSMProgress [
progressQueueing [ <category: 'Progress'> ^ 2r1000000 ]
]
GSMProgress class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #progress; yourself
]
GSMProgress class >> createDefault [
^ self new
data: #(2r11101010 2r10000001) asByteArray;
@ -1096,12 +1037,7 @@ GSM48SimpleData subclass: GSMSignal [
<category: 'OsmoGSM'>
<gsmElementId: 16r34>
GSMSignal class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #signal; yourself
]
<gsmName: 'signal'>
GSMSignal class >> length [ ^ 1 ]
]
@ -1230,12 +1166,7 @@ GSM48DataHolder subclass: GSMCalledBCDNumber [
<comment: '10.5.4.7'>
<gsmElementId: 16r5E>
GSMCalledBCDNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #called; yourself
]
<gsmName: 'called'>
GSMCalledBCDNumber class >> validSizes [
"For PCS1900 it is 19 in total, in theory up to 43. It
@ -1293,12 +1224,7 @@ GSM48DataHolder subclass: GSMCalledSubBCDNumber [
<comment: '10.5.4.8'>
<gsmElementId: 16r6D>
GSMCalledSubBCDNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #calledSub; yourself
]
<gsmName: 'calledSub'>
GSMCalledSubBCDNumber class >> validSizes [ ^ 0 to: 21 ]
]
@ -1308,12 +1234,7 @@ GSM48DataHolder subclass: GSMCallingBCDNumber [
<comment: '10.5.4.9'>
<gsmElementId: 16r5C>
GSMCallingBCDNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #calling; yourself
]
<gsmName: 'calling'>
GSMCallingBCDNumber class >> validSizes [ ^ 1 to: 12 ]
]
@ -1323,12 +1244,7 @@ GSM48DataHolder subclass: GSMCallingSubBCDNumber [
<comment: '10.5.4.10'>
<gsmElementId: 16r5D>
GSMCallingSubBCDNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #callingSub; yourself
]
<gsmName: 'callingSub'>
GSMCallingSubBCDNumber class >> validSizes [ ^ 0 to: 21 ]
]
@ -1338,12 +1254,7 @@ GSM48DataHolder subclass: GSMRedirectingBCDNumber [
<comment: '10.5.4.21a'>
<gsmElementId: 16r74>
GSMRedirectingBCDNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #redirect; yourself
]
<gsmName: 'redirect'>
GSMRedirectingBCDNumber class >> validSizes [ ^ 1 to: 17 ]
]
@ -1353,12 +1264,7 @@ GSM48DataHolder subclass: GSMRedirectingSubBCDNumber [
<comment: '10.5.4.21b'>
<gsmElementId: 16r75>
GSMRedirectingSubBCDNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #redirectSub; yourself
]
<gsmName: 'redirectSub'>
GSMRedirectingSubBCDNumber class >> validSizes [ ^ 1 to: 21 ]
]
@ -1385,12 +1291,7 @@ GSM48DataHolder subclass: GSMUserUser [
<comment: '10.5.4.25'>
<gsmElementId: 16r7E>
GSMUserUser class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #useruser; yourself
]
<gsmName: 'useruser'>
GSMUserUser class >> validSizes [ ^ 1 to: 33 ]
]
@ -1400,12 +1301,7 @@ GSM48DataHolder subclass: GSMSSVersionInd [
<comment: '10.5.4.24'>
<gsmElementId: 16r7F>
GSMSSVersionInd class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #ssVersion; yourself
]
<gsmName: 'ssVersion'>
GSMSSVersionInd class >> validSizes [ ^ 0 to: 1 ]
]
@ -1415,13 +1311,7 @@ GSM48SimpleTag subclass: GSMClirSuppression [
<gsmIeMask: 16rFF>
<gsmElementId: 16rA1>
GSMClirSuppression class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #clirSuppr; yourself
]
<gsmName: 'clirSuppr'>
]
GSM48SimpleTag subclass: GSMClirInvocation [
@ -1429,12 +1319,7 @@ GSM48SimpleTag subclass: GSMClirInvocation [
<gsmIeMask: 16rFF>
<gsmElementId: 16rA2>
GSMClirInvocation class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #clirInvoc; yourself
]
<gsmName: 'clirInvoc'>
]
GSM48DataHolder subclass: GSMCCCapabilities [
@ -1442,12 +1327,7 @@ GSM48DataHolder subclass: GSMCCCapabilities [
<comment: '10.5.4.5a'>
<gsmElementId: 16r15>
GSMCCCapabilities class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #ccCapabil; yourself
]
<gsmName: 'ccCapabil'>
GSMCCCapabilities class >> validSizes [ ^ 1 to: 2 ]
@ -1462,12 +1342,7 @@ GSM48DataHolder subclass: GSMConnectedNumber [
<comment: '10.5.4.13'>
<gsmElementId: 16r4C>
GSMConnectedNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #connected; yourself
]
<gsmName: 'connected'>
GSMConnectedNumber class >> validSizes [ ^ 1 to: 12 ]
]
@ -1477,12 +1352,7 @@ GSM48DataHolder subclass: GSMConnectedSubNumber [
<comment: '10.5.4.14'>
<gsmElementId: 16r4D>
GSMConnectedSubNumber class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #connectedSub; yourself
]
<gsmName: 'connectedSub'>
GSMConnectedSubNumber class >> validSizes [ ^ 0 to: 21 ]
]
@ -1492,12 +1362,7 @@ GSM48DataHolder subclass: GSMAllowedActions [
<comment: '10.5.4.27'>
<gsmElementId: 16r7B>
GSMAllowedActions class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #allowedActions; yourself
]
<gsmName: 'allowedActions'>
GSMAllowedActions class >> validSizes [ ^ 1 to: 1 ]
]
@ -1507,11 +1372,7 @@ GSM48DataHolder subclass: GSM48Cause [
<comment: '10.5.4.11'>
<gsmElementId: 16r8>
GSM48Cause class >> asTLVDescription [
^ super asTLVDescription
instVarName: #cause; yourself.
]
<gsmName: 'cause'>
GSM48Cause class >> validSizes [ ^ 2 to: 30 ]
]
@ -1521,12 +1382,7 @@ GSM48DataHolder subclass: GSMAlertingPattern [
<comment: '10.5.4.26'>
<gsmElementId: 16r19>
GSMAlertingPattern class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #alert; yourself
]
<gsmName: 'alert'>
GSMAlertingPattern class >> validSizes [ ^ 1 to: 1 ]
]
@ -1535,11 +1391,7 @@ GSM48SimpleData subclass: GSM48Callstate [
<category: 'OsmoGSM'>
<comment: '10.5.4.6'>
GSM48Callstate class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #callState; yourself
]
<gsmName: 'callState'>
GSM48Callstate class >> length [ <category: 'length'> ^ 1]
]
@ -1549,12 +1401,7 @@ GSM48DataHolder subclass: GSM48AuxillaryStates [
<comment: '10.5.4.4'>
<gsmElementId: 16r24>
GSM48AuxillaryStates class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #auxStates; yourself
]
<gsmName: 'auxStates'>
GSM48AuxillaryStates class >> validSizes [ <category: 'id'> ^ 1 to: 1]
]
@ -1563,6 +1410,8 @@ GSM48SimpleData subclass: GSMRRCause [
<category: 'OsmoGSM'>
<comment: '10.5.2.31'>
<gsmName: 'cause'>
GSMRRCause class >> causeNormalEvent [ <category: 'cause'> ^ 2r00000000 ]
GSMRRCause class >> causeAbnormalRelUnspec [ <category: 'cause'> ^ 2r00000001 ]
GSMRRCause class >> causeAbnormalRelUnacc [ <category: 'cause'> ^ 2r00000010 ]
@ -1581,12 +1430,6 @@ GSM48SimpleData subclass: GSMRRCause [
GSMRRCause class >> causeNoCellAllocAvail [ <category: 'cause'> ^ 2r01100101 ]
GSMRRCause class >> causeProtocolErrorUnspec [ <category: 'cause'> ^ 2r01101111 ]
GSMRRCause class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #cause; yourself
]
GSMRRCause class >> defaultValue [
<category: 'default'>
^ 0
@ -1603,12 +1446,7 @@ GSM48SimpleData subclass: GSMStreamIdentifier [
<comment: '10.5.4.28'>
<gsmElementId: 16r19>
GSMStreamIdentifier class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #streamIdentifier; yourself
]
<gsmName: 'streamIdentifier'>
GSMStreamIdentifier class >> length [ ^ 1 ]
]
@ -1618,12 +1456,7 @@ GSM48DataHolder subclass: GSMSupportedCodecs [
<comment: '10.5.4.32'>
<gsmElementId: 16r40>
GSMSupportedCodecs class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #supportedCodecs; yourself
]
<gsmName: 'supportedCodecs'>
GSMSupportedCodecs class >> validSizes [ ^ 3 to: 254 ]
]
@ -1634,12 +1467,7 @@ GSM48SimpleTag subclass: GSMRedial [
<gsmIeMask: 16rFF>
<gsmElementId: 16rA3>
GSMRedial class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #redial; yourself
]
<gsmName: 'redial'>
]
GSM48SimpleData subclass: GSMNetworkCallControlCap [
@ -1647,12 +1475,7 @@ GSM48SimpleData subclass: GSMNetworkCallControlCap [
<comment: '10.5.4.29'>
<gsmElementId: 16r2F>
GSMNetworkCallControlCap class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #networkCallControlCaps; yourself
]
<gsmName: 'networkCallControlCaps'>
GSMNetworkCallControlCap class >> length [ ^ 1 ]
]
@ -1662,12 +1485,7 @@ GSM48SimpleData subclass: GSMCauseNoCLI [
<comment: '10.5.4.30'>
<gsmElementId: 16r3A>
GSMCauseNoCLI class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #causeNoCLI; yourself
]
<gsmName: 'causeNoCLI'>
GSMCauseNoCLI class >> length [ ^ 1 ]
]
@ -1677,12 +1495,7 @@ GSM48DataHolder subclass: GSMBackupBearerCapability [
<comment: '10.5.4.4a'>
<gsmElementId: 16r41>
GSMBackupBearerCapability class >> asTLVDescription [
<category: 'parsing'>
^ super asTLVDescription
instVarName: #backupBearerCap; yourself
]
<gsmName: 'backupBearerCap'>
GSMBackupBearerCapability class >> validSizes [ ^ 1 to: 13 ]
]