Skip to content
Snippets Groups Projects
Commit d523dfdb authored by jkerdreu's avatar jkerdreu
Browse files

Drop the Engine singleton, i'm not a big fan of monkeys

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/fork@1523 b32b6428-25c9-4566-ad07-03861ab6144f
parent b62474c6
Branches
No related tags found
No related merge requests found
......@@ -22,28 +22,23 @@ from xaal.lib import tools
import sys
import json
import time
from .ansi2 import term
def usage():
print("usage..")
print("xaal-info xxxx-xxxx-xxxx : display information about a given device")
class InfoDumper:
def __init__(self):
def __init__(self,engine):
self.eng = engine
self.eng.handle_rx_msg = self.parse_answer
# new fake device
self.addr = tools.get_random_uuid()
self.start()
def start(self):
""" start engine & register a fake device """
dev = Device("cli.experimental",self.addr)
eng = Engine()
eng.handle_rx_msg = self.parse_answer
eng.add_device(dev)
eng.start()
self.eng = eng
self.dev = dev
self.dev = Device("cli.experimental",self.addr)
self.eng.add_device(self.dev)
print("xAAL Info dumper [%s]" % self.addr)
......@@ -94,9 +89,10 @@ def main():
if len(sys.argv) == 2:
addr = sys.argv[1]
if tools.is_valid_addr(addr):
import time
t0 = time.time()
dev = InfoDumper()
eng = Engine()
eng.start()
dev = InfoDumper(eng)
dev.query(addr)
print("Time : %0.3f sec" % (time.time() -t0))
else:
......@@ -105,11 +101,6 @@ def main():
else:
usage()
def search(addr):
if tools.is_valid_addr(addr):
dev = InfoDumper()
dev.query(addr)
if __name__ == '__main__':
main()
......@@ -25,21 +25,15 @@ import time
logger = tools.get_logger("isalive",'DEBUG')
class Scanner:
def __init__(self):
def __init__(self,engine):
self.eng = engine
self.eng.handle_rx_msg = self.parse_answer
# new fake device
self.addr = tools.get_random_uuid()
self.start()
self.dev = Device("cli.experimental",self.addr)
self.eng.add_device(self.dev)
def start(self):
""" start engine & register a fake device """
dev = Device("cli.experimental",self.addr)
eng = Engine()
eng.handle_rx_msg = self.parse_answer
eng.add_devices([dev,])
eng.start()
self.eng = eng
self.dev = dev
def query(self,devtype='any.any'):
def query(self,devtype):
self.devtype = devtype
self.seen = []
......@@ -78,17 +72,18 @@ class Scanner:
def run():
""" run the isalive scanner from cmdline"""
scan = Scanner()
eng = Engine()
scan = Scanner(eng)
eng.start()
devtype = 'any.any'
if len(sys.argv) == 2:
devtype = sys.argv[1]
scan.query(devtype)
else:
scan.query()
def search(devtype='any.any'):
def search(engine,devtype='any.any'):
""" send request and return list of xaal-addr"""
scan = Scanner()
scan = Scanner(engine)
scan.query(devtype)
return scan.seen
......
......@@ -9,15 +9,6 @@ import sys
import xaal.lib
"""
here a little hack. We want to have a single Engine() instance for both
isalive & info script. So we create a Engine singleton & monkey patch
the lib to put EngineSingleton in place
"""
@xaal.lib.tools.singleton
class EngineSingleton(xaal.lib.Engine):pass
xaal.lib.Engine = EngineSingleton
from . import info
from . import isalive
......@@ -26,12 +17,14 @@ from . import isalive
def main():
""" search for alive devices and gather informations about this device"""
eng = xaal.lib.Engine()
eng.start()
devtype = 'any.any'
if len(sys.argv) == 2:
devtype = sys.argv[1]
devs = isalive.search(devtype)
devs = isalive.search(eng,devtype)
print()
dumper = info.InfoDumper()
dumper = info.InfoDumper(eng)
for k in devs:
dumper.query(k)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment