From ab1e1890870692fa173f135ad5b96911e9c4b3b1 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 24 Jun 2011 10:09:12 +0200 Subject: [PATCH] callagent: Add state transitions to the MGCPEndpoint --- callagent/MGCPEndpoint.st | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/callagent/MGCPEndpoint.st b/callagent/MGCPEndpoint.st index a5ac215..a3b909d 100644 --- a/callagent/MGCPEndpoint.st +++ b/callagent/MGCPEndpoint.st @@ -67,4 +67,64 @@ Object subclass: MGCPEndpoint [ ^ state = self class stateUsed. ] + + reserve [ + + state = self class stateUnused ifFalse: [ + ^ self error: 'MGCPEndpoint(%1) not unused.' + % {self endpointName} area: #mgcp. + ]. + + state := self class stateReserved. + ] + + used [ + + state = self class stateReserved ifFalse: [ + ^ self error: 'MGCPEndpoint(%1) not reserved.' + % {self endpointName} area: #mgcp. + ]. + + state := self class stateUsed. + ] + + free [ + + state = self class stateUsed ifFalse: [ + ^ self error: 'MGCPEndpoint(%1) not used.' + % {self endpointName} area: #mgcp. + ]. + + state := self class stateUnused. + ] + + tryBlock [ + + state = self class stateUnused ifTrue: [ + state := self class stateBlocked. + ^ true + ]. + + ^ false + ] + + unblock [ + + state = self class stateBlocked ifFalse: [ + ^ self error: 'MGCPEndpoint(%1) not blocked.' + % {self endpointName} area: #mgcp. + ]. + + state := self class stateUnused. + ] + + sdp [ + + ^ sdp + ] + + sdp: aSdp [ + + sdp := aSdp. + ] ]