[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