sessiontools.py (1085B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\util\sessiontools.py 2 from gametime import GetSimTime 3 from logging import getLogger 4 from uthread2 import Sleep 5 logger = getLogger(__name__) 6 7 def wait_for_session_ready(attempts_before_timeout = 20): 8 for i in xrange(attempts_before_timeout): 9 if _is_session_change_finished() and session.IsItSafe(): 10 break 11 Sleep(1.0) 12 logger.info('Waiting for session to be ready (attempt {}/{})'.format(i, attempts_before_timeout)) 13 else: 14 raise TimedOutWaitingForSession(attempts_before_timeout) 15 16 17 def _is_session_change_finished(): 18 return not session.nextSessionChange or session.nextSessionChange - GetSimTime() < 0 19 20 21 class TimedOutWaitingForSession(RuntimeError): 22 23 def __init__(self, attempts_before_timeout): 24 self.message = 'Timed out waiting for session to be ready after {} attempts'.format(attempts_before_timeout) 25 super(TimedOutWaitingForSession, self).__init__(self.message) 26 27 def __str__(self): 28 return self.message