[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82
Michael 'Mickey' Lauer
mickey at vanille-media.de
Mon Feb 2 18:51:40 UTC 2009
The following commit has been merged in the master branch:
commit 083dbfe0154968f46727bf5eff467d320e5df711
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Thu Dec 18 09:55:32 2008 +0100
ogsmd: pdp: make singleton handling more consistent with CallHandler
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index 20b0726..778cebd 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -24,8 +24,6 @@ TODO:
__version__ = "0.9.11.0"
MODULE_NAME = "ogsmd.modems.abstract.mediator"
-from .calling import CallHandler
-
from ogsmd.gsm import error, const, convert
from ogsmd.gsm.decor import logged
from ogsmd.helpers import safesplit
@@ -261,6 +259,12 @@ class DebugMediator( AbstractMediator, AbstractYieldSupport ):
AbstractYieldSupport.__init__( self, *args, **kwargs )
#
+# import singletons
+#
+from .calling import CallHandler
+from .pdp import Pdp
+
+#
# Device Mediators
#
@@ -1364,9 +1368,6 @@ class CallHoldActive( CallMediator ):
# PDP Mediators
#
-from .pdp import Pdp
-pdpConnection = None
-
#=========================================================================#
class PdpListAvailableGprsClasses( PdpMediator ): # as
#=========================================================================#
@@ -1430,9 +1431,7 @@ class PdpGetNetworkStatus( PdpMediator ):
class PdpActivateContext( PdpMediator ):
#=========================================================================#
def trigger( self ):
- global pdpConnection
- if pdpConnection is None:
- pdpConnection = Pdp( self._object )
+ pdpConnection = Pdp.getInstance( self._object )
if pdpConnection.isActive():
self._ok()
else:
@@ -1447,8 +1446,8 @@ class PdpDeactivateContext( PdpMediator ):
# the right way... leading to a hanging pppd :(
#self._commchannel.enqueue( '+CGACT=0', self.responseFromChannel, self.errorFromChannel )
# the workaround
- global pdpConnection
- if pdpConnection is not None and pdpConnection.isActive():
+ pdpConnection = Pdp.getInstance( self._object )
+ if pdpConnection.isActive():
pdpConnection.deactivate()
self._ok()
diff --git a/framework/subsystems/ogsmd/modems/abstract/pdp.py b/framework/subsystems/ogsmd/modems/abstract/pdp.py
index 260e245..d18b3e3 100644
--- a/framework/subsystems/ogsmd/modems/abstract/pdp.py
+++ b/framework/subsystems/ogsmd/modems/abstract/pdp.py
@@ -13,7 +13,7 @@ Module: pdp
"""
-__version__ = "0.1.2"
+__version__ = "0.1.3"
from .mediator import AbstractMediator
from .overlay import OverlayFile
@@ -31,6 +31,14 @@ class Pdp( AbstractMediator ):
Encapsulates the state of (all) PDP connections on a modem
"""
+ _instance = None
+
+ @classmethod
+ def getInstance( klass, dbus_object=None ):
+ if klass._instance is None and dbus_object is not None:
+ klass._instance = Pdp( dbus_object )
+ return klass._instance
+
def __init__( self, dbus_object, **kwargs ):
AbstractMediator.__init__( self, dbus_object, None, None, **kwargs )
self._callchannel = self._object.modem.communicationChannel( "PdpMediator" )
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list