NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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')