16 lines
333 B
Python
16 lines
333 B
Python
from abc import ABC
|
|
from msg_container import MsgContainer
|
|
from msg_sink import MsgSink
|
|
|
|
class MsgSource(ABC):
|
|
def __init__(self):
|
|
self.sinks = []
|
|
|
|
def register_recv(self, sink: MsgSink):
|
|
self.sinks.append(sink)
|
|
|
|
def call_sinks(self, msg: MsgContainer):
|
|
for sink in self.sinks:
|
|
if sink.is_msg(msg):
|
|
sink.on_recv(msg)
|