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

settings.py (1438B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dynamicresources\client\ess\settings.py
      2 import datetime
      3 import locks
      4 import threadutils
      5 import uthread2
      6 UNCACHED = object()
      7 
      8 class EssSettings(object):
      9 
     10     def __init__(self, service_manager):
     11         self._service_manager = service_manager
     12         self._is_version_checking = False
     13         self._reserve_bank_pulse_interval = UNCACHED
     14 
     15     @property
     16     def reserve_bank_pulse_interval(self):
     17         self._version_check(self._reserve_bank_pulse_interval)
     18         return self._reserve_bank_pulse_interval
     19 
     20     @locks.SingletonCall
     21     def prime(self):
     22         cache = self._service_manager.RemoteSvc('dynamicResourceCacheMgr')
     23         data = cache.GetDynamicResourceSettings()
     24         self._update_from_cache_data(data)
     25 
     26     def _version_check(self, value):
     27         if value is UNCACHED:
     28             self.prime()
     29         else:
     30             self._perform_async_version_check()
     31 
     32     @uthread2.debounce(leading=True, max_wait=10.0)
     33     @threadutils.threaded
     34     def _perform_async_version_check(self):
     35         if self._is_version_checking:
     36             return
     37         self._is_version_checking = True
     38         try:
     39             self.prime()
     40         finally:
     41             self._is_version_checking = False
     42 
     43     def _update_from_cache_data(self, data):
     44         self._reserve_bank_pulse_interval = datetime.timedelta(seconds=data['reservePulseIntervalSeconds'])