from abc import ABC from msg_container import MsgContainer from msg_listener import MsgListener class MsgTalker(ABC): def __init__(self): self.sinks = [] def register_listener(self, sink: MsgListener): self.sinks.append(sink) def call_listener(self, msg: MsgContainer): for sink in self.sinks: if sink.is_msg(msg): sink.on_recv(msg)