From a4fde578e7af8162aac3d3d70c667b7d91ceeb0c Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Thu, 28 Oct 2010 18:54:33 +0200 Subject: [PATCH] Add a shipBrowserWorkerThread --- service/fit.py | 1 + service/market.py | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/service/fit.py b/service/fit.py index 8589466da..0aa76ac24 100644 --- a/service/fit.py +++ b/service/fit.py @@ -23,6 +23,7 @@ from eos.types import State, Slot import copy from service.damagePattern import DamagePattern + class Fit(object): instance = None @classmethod diff --git a/service/market.py b/service/market.py index e5fc4837a..6c2eac222 100644 --- a/service/market.py +++ b/service/market.py @@ -26,6 +26,26 @@ from sqlalchemy.orm.exc import NoResultFound import Queue import traceback +class ShipBrowserWorkerThread(threading.Thread): + def run(self): + self.queue = Queue.Queue() + self.processRequests() + + def processRequests(self): + queue = self.queue + sMarket = Market.getInstance() + while True: + try: + callback, id = queue.get() + wx.CallAfter(callback, sMarket.getShipList(id)) + except: + pass + finally: + try: + queue.task_done() + except: + pass + class PriceWorkerThread(threading.Thread): def run(self): self.queue = Queue.Queue() @@ -120,6 +140,10 @@ class Market(): self.searchWorkerThread.daemon = True self.searchWorkerThread.start() + self.shipBrowserWorkerThread = ShipBrowserWorkerThread() + self.shipBrowserWorkerThread.daemon = True + self.shipBrowserWorkerThread.start() + def getChildren(self, id): """ Get the children of the group or marketGroup with the passed id. @@ -153,6 +177,9 @@ class Market(): return ships + def getShipListDelayed(self, id, callback): + self.shipBrowserWorkerThread.queue.put((id, callback)) + def searchShips(self, name): results = eos.db.searchItems(name) ships = []