38 Waits for a new playhead position on the given topic, then loads the message at that position and notifies the view threads. 40 One thread per topic. Maintains a cache of recently loaded messages. 43 threading.Thread.__init__(self)
65 cv = self.timeline._playhead_positions_cvs[self.
topic]
71 playhead_position = self.timeline._playhead_positions[self.
topic]
76 if not self.timeline.has_listeners(self.
topic):
80 if playhead_position
is None:
86 messages_cv = self.timeline._messages_cvs[self.
topic]
88 self.timeline._messages[self.
topic] = msg_data
89 messages_cv.notify_all()
96 msg_data = self.timeline.read_message(self.
topic, position)
99 self._message_cache_keys.append(key)
104 self._message_cache_keys.remove(oldest_key)
110 cv = self.timeline._playhead_positions_cvs[self.
topic]
def __init__(self, timeline, topic)
def _get_message(self, position)