From 03348c1e8d7a309cbd8ec01a1c1003cd79a60684 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 24 Jun 2011 10:15:22 +0200 Subject: [PATCH] callagent: Create a shared routine to verify the state transition --- callagent/MGCPEndpoint.st | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/callagent/MGCPEndpoint.st b/callagent/MGCPEndpoint.st index a3b909d..4a0920e 100644 --- a/callagent/MGCPEndpoint.st +++ b/callagent/MGCPEndpoint.st @@ -68,34 +68,30 @@ Object subclass: MGCPEndpoint [ ^ state = self class stateUsed. ] + requireState: aState [ + + state = aState ifFalse: [ + ^ self error: 'MGCPEndpoint(%1) not %2.' + % {self endpointName. aState} area: #mgcp. + ]. + ] + reserve [ - state = self class stateUnused ifFalse: [ - ^ self error: 'MGCPEndpoint(%1) not unused.' - % {self endpointName} area: #mgcp. - ]. - + self requireState: self class stateUnused. state := self class stateReserved. ] used [ - state = self class stateReserved ifFalse: [ - ^ self error: 'MGCPEndpoint(%1) not reserved.' - % {self endpointName} area: #mgcp. - ]. - + self requireState: self class stateReserved. state := self class stateUsed. ] free [ - state = self class stateUsed ifFalse: [ - ^ self error: 'MGCPEndpoint(%1) not used.' - % {self endpointName} area: #mgcp. - ]. - - state := self class stateUnused. + self requireState: self class stateUsed. + state := self class stateUsed. ] tryBlock [ @@ -110,11 +106,7 @@ Object subclass: MGCPEndpoint [ unblock [ - state = self class stateBlocked ifFalse: [ - ^ self error: 'MGCPEndpoint(%1) not blocked.' - % {self endpointName} area: #mgcp. - ]. - + self requireState: self class stateBlocked. state := self class stateUnused. ]