1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-05-29 06:39:32 +03:00

CAPI: Create response queue in companion.Session

No need to create in callers and then use setter.
This commit is contained in:
Athanasius 2021-08-25 11:50:56 +01:00
parent 69d0d03b9b
commit e1c6a0e9f8
No known key found for this signature in database
GPG Key ID: AE3E527847057C7D
3 changed files with 5 additions and 15 deletions

View File

@ -10,7 +10,6 @@ import queue
import re
import sys
from os.path import getmtime, join
from queue import Queue
from time import sleep, time
from typing import TYPE_CHECKING, Any, List, Optional
@ -272,10 +271,6 @@ sys.path: {sys.path}'''
companion.session.login(monitor.cmdr, monitor.is_beta)
# Set up the response queue
capi_response_queue: Queue = Queue()
companion.session.set_capi_response_queue(capi_response_queue)
# Initiate CAPI queries
querytime = int(time())
companion.session.station(query_time=querytime)
@ -283,7 +278,9 @@ sys.path: {sys.path}'''
# Wait for the response
_capi_request_timeout = 60
try:
capi_response = capi_response_queue.get(block=True, timeout=_capi_request_timeout)
capi_response = companion.session.capi_response_queue.get(
block=True, timeout=_capi_request_timeout
)
except queue.Empty:
logger.error(f'CAPI requests timed out after {_capi_request_timeout} seconds')

View File

@ -385,8 +385,6 @@ class AppWindow(object):
def __init__(self, master: tk.Tk): # noqa: C901, CCR001 # TODO - can possibly factor something out
self.capi_query_holdoff_time = config.get_int('querytime', default=0) + companion.capi_query_cooldown
self.capi_response_queue: queue.Queue = queue.Queue()
companion.session.set_capi_response_queue(self.capi_response_queue)
self.w = master
self.w.title(applongname)
@ -950,7 +948,7 @@ class AppWindow(object):
capi_response: Union[companion.EDMCCAPIFailedRequest, companion.EDMCCAPIResponse]
try:
logger.trace_if('capi.worker', 'Pulling answer off queue')
capi_response = self.capi_response_queue.get(block=False)
capi_response = companion.session.capi_response_queue.get(block=False)
if isinstance(capi_response, companion.EDMCCAPIFailedRequest):
logger.trace_if('capi.worker', f'Failed Request: {capi_response.message}')
if capi_response.exception:

View File

@ -602,8 +602,7 @@ class Session(object):
# queries back to the requesting code (technically anything checking
# this queue, but it should be either EDMarketConnector.AppWindow or
# EDMC.py). Items may be EDMCCAPIResponse or EDMCCAPIFailedRequest.
# NB: This is created by the caller and set using self.set_capi_response_queue().
self.capi_response_queue: Queue
self.capi_response_queue: Queue = Queue()
logger.debug('Starting CAPI queries thread...')
self.capi_query_thread = threading.Thread(
target=self.capi_query_worker,
@ -613,10 +612,6 @@ class Session(object):
self.capi_query_thread.start()
logger.debug('Done')
def set_capi_response_queue(self, capi_response_queue: Queue) -> None:
"""Set a reference to the CAPI response data queue."""
self.capi_response_queue = capi_response_queue
def set_tk_master(self, master: tk.Tk) -> None:
"""Set a reference to main UI Tk root window."""
self.tk_master = master