forked from p15670423/monkey
Common: Add internal all event types topic to PyPubSubEventQueue
This commit is contained in:
parent
7a77fd82df
commit
8da3abbb5b
|
@ -4,6 +4,8 @@ from common.events import AbstractEvent
|
|||
|
||||
from .i_event_queue import IEventQueue
|
||||
|
||||
INTERNAL_ALL_EVENT_TYPES_TOPIC = "internal_all_event_types"
|
||||
|
||||
|
||||
class PyPubSubEventQueue(IEventQueue):
|
||||
def __init__(self, pypubsub_publisher):
|
||||
|
@ -21,6 +23,11 @@ class PyPubSubEventQueue(IEventQueue):
|
|||
event_type_name = event_type.__name__
|
||||
self._pypubsub_publisher.subscribe(listener=subscriber, topicName=event_type_name)
|
||||
|
||||
def subscribe_all_event_types(self, subscriber: Callable[[AbstractEvent], None]):
|
||||
self._pypubsub_publisher.subscribe(
|
||||
listener=subscriber, topicName=INTERNAL_ALL_EVENT_TYPES_TOPIC
|
||||
)
|
||||
|
||||
def subscribe_tag(self, tag: str, subscriber: Callable[[AbstractEvent], None]):
|
||||
self._pypubsub_publisher.subscribe(listener=subscriber, topicName=tag)
|
||||
|
||||
|
@ -31,6 +38,9 @@ class PyPubSubEventQueue(IEventQueue):
|
|||
event_type_name = event.__name__
|
||||
self._pypubsub_publisher.sendMessage(event_type_name, **data)
|
||||
|
||||
# publish to all events' topic
|
||||
self._pypubsub_publisher.sendMessage(INTERNAL_ALL_EVENT_TYPES_TOPIC, **data)
|
||||
|
||||
# publish to tags' topics
|
||||
for tag in event.tags:
|
||||
self._pypubsub_publisher.sendMessage(tag, **data)
|
||||
|
|
Loading…
Reference in New Issue