import time from msg.listener import MsgListener from msg.talker import MsgTalker from msg.container import MsgContainer class ReplayPacer(MsgListener, MsgTalker): """Sits between a packetizer and its listeners; sleeps after each complete frame so file replay runs at a controlled rate.""" def __init__(self, delay: float = 1.0): MsgListener.__init__(self) MsgTalker.__init__(self) self.delay = delay def is_msg(self, msg: MsgContainer) -> bool: return True def on_recv(self, msg: MsgContainer): if self.delay > 0: time.sleep(self.delay) self.call_listener(msg)