Add docstrings to InterceptAllBusClient
parent
cf355360ad
commit
4b66fb1dd1
|
@ -38,6 +38,10 @@ def create_voight_kampff_logger():
|
||||||
|
|
||||||
|
|
||||||
class InterceptAllBusClient(MessageBusClient):
|
class InterceptAllBusClient(MessageBusClient):
|
||||||
|
"""Bus Client storing all messages recieved.
|
||||||
|
|
||||||
|
This allows readback of older messages and non-event-driven operation.
|
||||||
|
"""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.messages = []
|
self.messages = []
|
||||||
|
@ -46,12 +50,23 @@ class InterceptAllBusClient(MessageBusClient):
|
||||||
self._processed_messages = 0
|
self._processed_messages = 0
|
||||||
|
|
||||||
def on_message(self, message):
|
def on_message(self, message):
|
||||||
|
"""Extends normal operation by storing the recieved message.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
message (Message): message from the Mycroft bus
|
||||||
|
"""
|
||||||
with self.message_lock:
|
with self.message_lock:
|
||||||
self.messages.append(Message.deserialize(message))
|
self.messages.append(Message.deserialize(message))
|
||||||
self.new_message_available.set()
|
self.new_message_available.set()
|
||||||
super().on_message(message)
|
super().on_message(message)
|
||||||
|
|
||||||
def get_messages(self, msg_type):
|
def get_messages(self, msg_type):
|
||||||
|
"""Get messages from received list of messages.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
msg_type (None,str): string filter for messagetype to extract.
|
||||||
|
if None all messages will be returned.
|
||||||
|
"""
|
||||||
with self.message_lock:
|
with self.message_lock:
|
||||||
self._processed_messages = len(self.messages)
|
self._processed_messages = len(self.messages)
|
||||||
if msg_type is None:
|
if msg_type is None:
|
||||||
|
@ -60,6 +75,11 @@ class InterceptAllBusClient(MessageBusClient):
|
||||||
return [m for m in self.messages if m.msg_type == msg_type]
|
return [m for m in self.messages if m.msg_type == msg_type]
|
||||||
|
|
||||||
def remove_message(self, msg):
|
def remove_message(self, msg):
|
||||||
|
"""Remove a specific message from the list of messages.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
msg (Message): message to remove from the list
|
||||||
|
"""
|
||||||
with self.message_lock:
|
with self.message_lock:
|
||||||
if msg not in self.messages:
|
if msg not in self.messages:
|
||||||
raise ValueError(f'{msg} was not found in '
|
raise ValueError(f'{msg} was not found in '
|
||||||
|
@ -71,11 +91,13 @@ class InterceptAllBusClient(MessageBusClient):
|
||||||
self.messages.remove(msg)
|
self.messages.remove(msg)
|
||||||
|
|
||||||
def clear_messages(self):
|
def clear_messages(self):
|
||||||
|
"""Clear all messages that has been fetched atleast once."""
|
||||||
with self.message_lock:
|
with self.message_lock:
|
||||||
self.messages = self.messages[:self._processed_messages]
|
self.messages = self.messages[:self._processed_messages]
|
||||||
self._processed_messages = 0
|
self._processed_messages = 0
|
||||||
|
|
||||||
def clear_all_messages(self):
|
def clear_all_messages(self):
|
||||||
|
"""Clear all messages."""
|
||||||
with self.message_lock:
|
with self.message_lock:
|
||||||
self.messages = []
|
self.messages = []
|
||||||
self._processed_messages = 0
|
self._processed_messages = 0
|
||||||
|
|
Loading…
Reference in New Issue