mirror of
https://github.com/avatao-content/baseimage-tutorial-framework
synced 2025-06-28 07:35:13 +00:00
@ -6,11 +6,7 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FSMAware:
|
||||
keys = ['fsm_update']
|
||||
"""
|
||||
Base class for stuff that has to be aware of the framework FSM.
|
||||
This is done by processing 'fsm_update' messages.
|
||||
"""
|
||||
keys = ['fsm.update']
|
||||
def __init__(self):
|
||||
self.fsm_state = None
|
||||
self.fsm_in_accepted_state = False
|
||||
@ -18,7 +14,7 @@ class FSMAware:
|
||||
self._auth_key = KeyManager().auth_key
|
||||
|
||||
def process_message(self, message):
|
||||
if message['key'] == 'fsm_update':
|
||||
if message['key'] == 'fsm.update':
|
||||
if verify_message(self._auth_key, message):
|
||||
self._handle_fsm_update(message)
|
||||
|
||||
|
@ -15,8 +15,6 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
class ZMQDownlinkConnector:
|
||||
def __init__(self, connect_addr):
|
||||
self.keys = []
|
||||
self._on_recv_callback = None
|
||||
self._zmq_sub_socket = zmq.Context.instance().socket(zmq.SUB)
|
||||
self._zmq_sub_socket.setsockopt(zmq.RCVHWM, 0)
|
||||
self._zmq_sub_socket.connect(connect_addr)
|
||||
@ -25,19 +23,14 @@ class ZMQDownlinkConnector:
|
||||
def subscribe(self, *keys):
|
||||
for key in keys:
|
||||
self._zmq_sub_socket.setsockopt_string(zmq.SUBSCRIBE, key)
|
||||
self.keys.append(key)
|
||||
|
||||
def unsubscribe(self, *keys):
|
||||
for key in keys:
|
||||
self._zmq_sub_socket.setsockopt_string(zmq.UNSUBSCRIBE, key)
|
||||
self.keys.remove(key)
|
||||
|
||||
def register_callback(self, callback):
|
||||
if callback:
|
||||
self._on_recv_callback = callback
|
||||
self._zmq_sub_stream.on_recv(with_deserialize_tfw_msg(self._on_recv))
|
||||
else:
|
||||
self._zmq_sub_stream.on_recv(None)
|
||||
callback = with_deserialize_tfw_msg(callback) if callback else None
|
||||
self._zmq_sub_stream.on_recv(callback)
|
||||
|
||||
def recv_message(self, *, block=True):
|
||||
if self._zmq_sub_stream.receiving():
|
||||
@ -48,11 +41,6 @@ class ZMQDownlinkConnector:
|
||||
except zmq.ZMQError:
|
||||
raise IOError("No data available to recv!")
|
||||
|
||||
def _on_recv(self, message):
|
||||
key = message['key']
|
||||
if key in self.keys or '' in self.keys:
|
||||
self._on_recv_callback(message)
|
||||
|
||||
def close(self):
|
||||
self._zmq_sub_stream.close()
|
||||
|
||||
|
Reference in New Issue
Block a user