2020-10-04 10:30:52 -04:00
|
|
|
# Copyright 2020 (c) Anna Schumaker.
|
|
|
|
|
|
|
|
class Publisher:
|
|
|
|
def __init__(self):
|
|
|
|
self.subscribers = set()
|
|
|
|
|
|
|
|
def publish(self, *args):
|
2020-11-15 17:43:07 -05:00
|
|
|
funcs = self.subscribers.copy()
|
|
|
|
for func in funcs:
|
2020-10-04 10:30:52 -04:00
|
|
|
func(*args)
|
|
|
|
|
|
|
|
def register(self, func):
|
|
|
|
self.subscribers.add(func)
|
|
|
|
|
|
|
|
def reset(self):
|
|
|
|
self.subscribers.clear()
|
|
|
|
|
|
|
|
def unregister(self, func):
|
|
|
|
self.subscribers.discard(func)
|