[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:28 UTC 2009
The following commit has been merged in the master branch:
commit 9e3fd27960b1aaa22136910f92c39c8958ca2449
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Sun Nov 30 12:40:30 2008 +0100
ogsmd: refactor modem creation logic into modem factory method
diff --git a/framework/subsystems/ogsmd/device.py b/framework/subsystems/ogsmd/device.py
index e07b119..00511cb 100644
--- a/framework/subsystems/ogsmd/device.py
+++ b/framework/subsystems/ogsmd/device.py
@@ -14,7 +14,7 @@ MODULE_NAME = "ogsmd.device"
__version__ = "0.9.5"
from framework import resource
-from modems import allModems
+from modems import modemFactory, allModems
import dbus
import dbus.service
@@ -70,42 +70,15 @@ class Device( resource.Resource ):
"""
Enable (inherited from Resource)
"""
- if self.modemtype not in allModems():
+
+ Modem, mediator = modemFactory( self.modemtype )
+ if Modem is None:
estring = "Modem %s not in available modems: %s" % ( self.modemtype, allModems() )
logger.error( estring )
on_error( resource.ResourceError( estring ) )
- return
-
- if self.modemtype == "singleline":
- from modems.singleline.modem import SingleLine as Modem
- global mediator
- import modems.singleline.mediator as mediator
- elif self.modemtype == "muxed4line":
- from modems.muxed4line.modem import Muxed4Line as Modem
- global mediator
- import modems.muxed4line.mediator as mediator
- elif self.modemtype == "ti_calypso":
- from modems.ti_calypso.modem import TiCalypso as Modem
- global mediator
- import modems.ti_calypso.mediator as mediator
- elif self.modemtype == "freescale_neptune":
- from modems.freescale_neptune.modem import FreescaleNeptune as Modem
- global mediator
- import modems.freescale_neptune.mediator as mediator
- elif self.modemtype == "sierra":
- from modems.sierra.modem import Sierra as Modem
- global mediator
- import modems.sierra.mediator as mediator
- elif self.modemtype == "option":
- from modems.option.modem import Option as Modem
- global mediator
- import modems.option.mediator as mediator
else:
- assert False, "must never reach this"
- sys.exit( -1 )
-
- self.modem = Modem( self, self.bus )
- self.modem.open( on_ok, on_error )
+ self.modem = Modem( self, self.bus )
+ self.modem.open( on_ok, on_error )
def _disable( self, on_ok, on_error ):
"""
diff --git a/framework/subsystems/ogsmd/modems/__init__.py b/framework/subsystems/ogsmd/modems/__init__.py
index 77c692b..f841c64 100644
--- a/framework/subsystems/ogsmd/modems/__init__.py
+++ b/framework/subsystems/ogsmd/modems/__init__.py
@@ -9,18 +9,55 @@ GPLv2 or later
Package: ogsmd.modems
"""
-import os
+import sys
import logging
logger = logging.getLogger( "ogsmd.modems" )
+theModem = None
+theMediator = None
+
modemmap = { \
"freescale_neptune": "FreescaleNeptune",
"muxed4line": "Muxed4Line",
"option": "Option",
"sierra": "Sierra",
- "singleline": "SingleLine",
+ "singleline": "SingleLine",
"ti_calypso": "TiCalypso",
}
allModems = modemmap.keys
+
+def modemFactory( modemtype ):
+ logger.debug( "requested to build modem '%s'" % modemtype )
+ if modemtype not in modemmap:
+ return None, None
+
+ if modemtype == "singleline":
+ from singleline.modem import SingleLine as Modem
+ import singleline.mediator as mediator
+ elif modemtype == "muxed4line":
+ from muxed4line.modem import Muxed4Line as Modem
+ import muxed4line.mediator as mediator
+ elif modemtype == "ti_calypso":
+ from ti_calypso.modem import TiCalypso as Modem
+ import ti_calypso.mediator as mediator
+ elif modemtype == "freescale_neptune":
+ from freescale_neptune.modem import FreescaleNeptune as Modem
+ import freescale_neptune.mediator as mediator
+ elif modemtype == "sierra":
+ from sierra.modem import Sierra as Modem
+ import sierra.mediator as mediator
+ elif modemtype == "option":
+ from option.modem import Option as Modem
+ import option.mediator as mediator
+ else:
+ assert False, "must never reach this"
+ sys.exit( -1 )
+
+ global theMediator
+ global theModem
+ theModem = Modem
+ theMediator = mediator
+
+ return theModem, theMediator
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list