reprocessingsvc.py (2569B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\reprocessingsvc.py 2 import carbon.client.script.util.lg as lg 3 import uthread 4 from carbon.common.script.sys.service import Service 5 from carbonui.uicore import uicore 6 from eve.common.script.net import eveMoniker 7 8 class ReprocessingSvc(Service): 9 __exportedcalls__ = {'ReprocessDlg': [], 10 'GetReprocessingSvc': []} 11 __guid__ = 'svc.reprocessing' 12 __notifyevents__ = ['ProcessSessionChange', 'DoSessionChanging'] 13 __servicename__ = 'reprocessing' 14 __displayname__ = 'Reprocessing Service' 15 __dependencies__ = ['settings'] 16 17 def __init__(self): 18 Service.__init__(self) 19 self.optionsByItemType = {} 20 self.crits = {} 21 self.oreEfficiency = None 22 self.efficiency = None 23 24 def LogInfo(self, *args): 25 lg.Info(self.__guid__, *args) 26 27 def Run(self, memStream = None): 28 self.LogInfo('Starting Reprocessing Service') 29 self.ReleaseReprocessingSvc() 30 31 def Stop(self, memStream = None): 32 self.ReleaseReprocessingSvc() 33 34 def __EnterCriticalSection(self, k, v = None): 35 if (k, v) not in self.crits: 36 self.crits[k, v] = uthread.CriticalSection((k, v)) 37 self.crits[k, v].acquire() 38 39 def __LeaveCriticalSection(self, k, v = None): 40 self.crits[k, v].release() 41 if (k, v) in self.crits and self.crits[k, v].IsCool(): 42 del self.crits[k, v] 43 44 def ProcessSessionChange(self, isremote, session, change): 45 if 'charid' in change or 'stationid' in change or 'structureid' in change: 46 self.ReleaseReprocessingSvc() 47 48 def DoSessionChanging(self, isRemote, session, change): 49 if 'charid' in change or 'stationid' in change or 'structureID' in change: 50 sm.StopService(self.__guid__[4:]) 51 52 def GetReprocessingSvc(self): 53 if hasattr(self, 'moniker') and self.moniker is not None: 54 return self.moniker 55 self.moniker = eveMoniker.GetReprocessingManager() 56 return self.moniker 57 58 def ReleaseReprocessingSvc(self): 59 if hasattr(self, 'moniker') and self.moniker is not None: 60 self.moniker = None 61 62 def ReprocessDlg(self, items = None): 63 uthread.new(self.uthread_ReprocessDlg, items) 64 65 def uthread_ReprocessDlg(self, items): 66 self.__EnterCriticalSection('reprocessingDlg') 67 try: 68 uicore.cmd.GetCommandAndExecute('OpenReprocessingPlant', items) 69 finally: 70 self.__LeaveCriticalSection('reprocessingDlg')