Add a shipBrowserWorkerThread

This commit is contained in:
cncfanatics
2010-10-28 18:54:33 +02:00
parent 1eba77936d
commit a4fde578e7
2 changed files with 28 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ from eos.types import State, Slot
import copy
from service.damagePattern import DamagePattern
class Fit(object):
instance = None
@classmethod

View File

@@ -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 = []