-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.py
34 lines (25 loc) · 1.56 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from .vendor import Qt
from clacks.core.server import ServerBase
# ----------------------------------------------------------------------------------------------------------------------
class QtServerBase(Qt.QtCore.QObject, ServerBase):
RespondRequested = Qt.QtCore.Signal(object, object, object, object, object)
# ------------------------------------------------------------------------------------------------------------------
def __init__(self, identifier, **kwargs):
Qt.QtCore.QObject.__init__(self)
ServerBase.__init__(
self,
identifier=identifier,
start_queue=False,
threaded_digest=False,
)
# -- Qt redirect to prevent methods from being executed off the main thread.
self.RespondRequested.connect(self._qt_respond)
self.start_queue()
# ------------------------------------------------------------------------------------------------------------------
def _qt_respond(self, handler, connection, transaction_id, header_data, data):
# type: (BaseRequestHandler, socket.socket, str, dict, dict) -> None
ServerBase.__respond(self, handler, connection, transaction_id, header_data, data)
# ------------------------------------------------------------------------------------------------------------------
def __respond(self, handler, connection, transaction_id, header_data, data):
# type: (BaseRequestHandler, socket.socket, str, dict, dict) -> None
self.RespondRequested.emit(handler, connection, transaction_id, header_data, data)